一、为什么学习Spring Cloud

项目开发中,随着业务越来越多,导致功能之间耦合性高、开发效率底、系统运行缓慢、难以维护;微服务架构可以避免这些问题。而SpringCloud是微服务架构的实现。

1、系统架构演变

1.1 集中式架构

微服务 -- SpringCloud入门学习

微服务 -- SpringCloud入门学习

 

1.2 垂直拆分

微服务 -- SpringCloud入门学习

微服务 -- SpringCloud入门学习 

 

1.3 分布式服务

微服务 -- SpringCloud入门学习

微服务 -- SpringCloud入门学习

微服务 -- SpringCloud入门学习

 

1.4 面向服务架构 (SOA)

微服务 -- SpringCloud入门学习

SOA结构图:

微服务 -- SpringCloud入门学习

微服务 -- SpringCloud入门学习 微服务 -- SpringCloud入门学习

 

微服务 -- SpringCloud入门学习

 

二、微服务架构

2.1、分析

SOA使用了ESB组件的面向服务架构。但是ESB自身实现复杂,应用服务粒度较大,所有服务之间的通信都会经过ESB,会降低通信速度;而且部署、测试ESB比较麻烦。

 

2.2、微服务架构的概念

微服务 -- SpringCloud入门学习

 

2.3、微服务结构图

微服务 -- SpringCloud入门学习

  •  服务启动的时候,会将服务地址注册到服务治理(服务注册中心),需要使用时则从服务注册中心返回地址。
  • 微服务 -- SpringCloud入门学习

 

2.4、微服务的特点

微服务 -- SpringCloud入门学习

 

2.5、与使用ESB的SOA架构的区别

微服务 -- SpringCloud入门学习

 2.6、小结

  • 微服务架构,是一套使用小服务或者单一业务来开发单个应用的方式或途径。
  • 微服务架构特点:单一职责、服务粒度小、面向服务(对外暴露REST API)、服务之间相互独立
  • 与使用ESB的SOA架构的区别:微服务架构没有使用ESB,而是有服务治理注册中心。

 

三、服务调用方式

3.1、RPC和HTTP

(1)无论是微服务还是SOA,都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?

微服务 -- SpringCloud入门学习

现在热门的Rest风格,就可以通过http协议实现。

微服务 -- SpringCloud入门学习

 (2)小结

  • RPC:基于socket,速度快、效率高;webservice、dubbo
  • HTTP:基于TCP,封装比较臃肿;对服务方和调用方没有任何技术、语言的限定,自由灵活;RESTful、Spring Cloud

 

 

相关文章: