分布式微服务:
- 一、微服务:服务拆分+远程调用+服务集群
- (一)服务:1个业务=1个项目=1个服务
- (二)特征:高内聚、低耦合
- 1、单一职责:
- 2、面向服务:
- 3、自治:
- 4、隔离性强:
- (三)组件:
- 1、注册中心(维护监控结点信息):服务注册发现框架
- 2、负载均衡:进程内负载均衡器
- 3、服务远程调用映射:
- 4、流控/降级/保护:熔断器(断路器):服务降级熔断器
- 5、统一服务网关路由(入口):
- 6、统一配置中心:
- 7、消息总线:
- 8、服务链路监控
- (四)服务拆分:避免重复、数据库独立
- 1、避免重复开发:
- 2、数据库独立:
- 3、业务暴露接口:实现远程调用
- (五)远程调用:业务暴露接口、请求调用
- 1、业务暴露接口:远程调用
- 二、微服务实现:SpringCloud
- 三、微服务实现:SpringCloudAlibaba
- 四、微服务实现:Dubbo
一、微服务:服务拆分+远程调用+服务集群
定义:一种经过良好架构设计的分布式架构方案
目的:高内聚、低耦合
缺点:复杂
名词:心跳、粒度
(一)服务:1个业务=1个项目=1个服务
服务拆分粒度:应用程序的不同功能单元(服务)进行拆分????????????
(二)特征:高内聚、低耦合
1、单一职责:
1个服务对应1个业务能力
2、面向服务:
微服务对外暴露业务接口
3、自治:
团队独立、技术独立、数据独立、部署独立
4、隔离性强:
服务调用做好隔离、容错、降级,避免出现级联问题
(三)组件:
1、注册中心(维护监控结点信息):服务注册发现框架
Eureka 、Zookeeper、Consul、Nacos、Redis
2、负载均衡:进程内负载均衡器
Ribbon、Nignx、LoadBalancer
3、服务远程调用映射:
Feign(http协议) 、Open Feign、Dubbo协议
4、流控/降级/保护:熔断器(断路器):服务降级熔断器
Alibaba Sentinel、Hystrix、Resilience4j
服务监控和保护
5、统一服务网关路由(入口):
Zuul、SpringCloudGateway
服务监控和保护
6、统一配置中心:
Nacos、 SpringcloudConfig、
7、消息总线:
Nacos、Bus
服务监控和保护
8、服务链路监控
Zipkin、Sleuth
(四)服务拆分:避免重复、数据库独立
定义:功能模块拆分、一个功能模块一个服务、每个服务独立的数据库
1、避免重复开发:
不同微服务、不要重复开发相同业务
2、数据库独立:
微服务数据独立、不要访问其它微服务的数据库
3、业务暴露接口:实现远程调用
微服务可以将自己的业务暴露为接口、供其它微服务调用
(五)远程调用:业务暴露接口、请求调用
1、业务暴露接口:远程调用
微服务可以将自己的业务暴露为接口、供其它微服务调用
二、微服务实现:SpringCloud
组件:SpringCloudAlibaba
实现:SpringBoot自动装配
三、微服务实现:SpringCloudAlibaba
实质:实现部分SpringCloud——SpringCloud的组件
组件:SpringCloudAlibaba
四、微服务实现:Dubbo