一、为什么学习Spring Cloud
项目开发中,随着业务越来越多,导致功能之间耦合性高、开发效率底、系统运行缓慢、难以维护;微服务架构可以避免这些问题。而SpringCloud是微服务架构的实现。
1、系统架构演变
1.1 集中式架构
1.2 垂直拆分
1.3 分布式服务
1.4 面向服务架构 (SOA)
SOA结构图:
二、微服务架构
2.1、分析
SOA使用了ESB组件的面向服务架构。但是ESB自身实现复杂,应用服务粒度较大,所有服务之间的通信都会经过ESB,会降低通信速度;而且部署、测试ESB比较麻烦。
2.2、微服务架构的概念
2.3、微服务结构图
- 服务启动的时候,会将服务地址注册到服务治理(服务注册中心),需要使用时则从服务注册中心返回地址。
2.4、微服务的特点
2.5、与使用ESB的SOA架构的区别
2.6、小结
- 微服务架构,是一套使用小服务或者单一业务来开发单个应用的方式或途径。
- 微服务架构特点:单一职责、服务粒度小、面向服务(对外暴露REST API)、服务之间相互独立
- 与使用ESB的SOA架构的区别:微服务架构没有使用ESB,而是有服务治理注册中心。
三、服务调用方式
3.1、RPC和HTTP
(1)无论是微服务还是SOA,都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?
现在热门的Rest风格,就可以通过http协议实现。
(2)小结
- RPC:基于socket,速度快、效率高;webservice、dubbo
-
HTTP:基于TCP,封装比较臃肿;对服务方和调用方没有任何技术、语言的限定,自由灵活;RESTful、Spring Cloud