一、微服务:服务拆分+远程调用+服务集群
定义:一种经过良好架构设计的分布式架构方案
目的:高内聚、低耦合
缺点:复杂
名词:心跳、粒度
(一)服务: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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75297.html