至此,Spring Cloud的大多数组件都已经学习过,Spring Cloud Alibaba的组件我想新建个专栏讲解。现在大致总结下这些微服务组件。
特点:基于单体应用基于业务进行拆分,拆分出来每一个服务独立项目,独立项目独立部署,运行在自己的计算机进程里面,针对于拆分出来的微服务都是基于分布式和管理。
作用:提供了一站式微服务工具集(组件),帮助我们解决了分布式系统中各种问题(服务注册、服务间通信等等),让开发人员更专注于自己业务开发。
用来管理微服务架构中每一个服务健康状态以及服务元数据存储
Eureka(Eureka Server、Eureka Client) Netflix的组件 Consul(基于GO语言开发) zookeeper(基于java语言开发) nacos(alibaba的组件)
两种通信方式
用来解决服务雪崩
需要的组件:Hystrix(netflix) Hystrix DashBoard(已经进入维护模式) 服务雪崩问题:当调用链路中某一个服务不可用,并导致上游服务不可用,并将这种不可用逐渐放大最终导致整个系统服务不可用,这种称之为服务雪崩。 服务熔断:当服务触发异常,或者执行业务逻辑超时等待出发服务熔断,一旦触发服务熔断之后,当前服务不可用,(自动触发)。 服务降级:站在系统整体负荷角度进行系统考虑,一般都是人为干预,服务熔断属于服务降级的一种。
用来统一服务总入口(路由转发+过滤)
相关的组件:
用来将微服务的配置文件进行远端仓库统一管理。
config组件:configserver(用来获取远端仓库配置,并存入本地仓库)、configclient(根据configserver读取自身配置) bus组件:消息总线 作用:用来通过MQ将微服务的所有节点连接到一起,通过消息总线实现自动配置刷新。