SpringCloud各个组件说明
对于SpringCloud来说,首先我们需要认识一些基本的组件,这会让我们之后的讨论和交流更有效率。
组件名字和发音
Eureka [jʊ'ri:kə]
Ribbon [ˈrɪbən]
Feign [fen]
Hystrix [hɪst'rɪks]
Zuul [zulu]
Sleuth [sluθ]
Turbine [ˈtɜ:rbaɪn]
重要组件说明
这里的说明借用网上一个很6的分类方式来说明。
润物无声类和独挑大梁类。
独挑大梁,独自启动不需要依赖其它组件。Eureka
,服务注册中心,特性有失效剔除、服务保护。(类似生活中的大堂,登记了整个项目的所有服务)Dashboard
,Hystrix
仪表盘,监控集群模式和单点模式,其中集群模式需要收集器Turbine
配合。(类似生活中的保安监控室)Zuul
,API服务网关,功能有路由分发和过滤。(类似交警叔叔,指挥道路交通)Config
,分布式配置中心,支持本地仓库、SVN
、Git
、Jar
包内配置等模式。(类似规章制度,每个人都从这里获取规定配置)
润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。Ribbon
,客户端负载均衡,特性有区域亲和、重试机制。(类似nginx
)Hystrix
,客户端容错保护,特性有服务降级、服务熔断、请求缓存、请求合并、依赖隔离。(怕访问过于频繁服务挂了,进行限流,太频繁的请求就直接拒绝)Feign
,声明式服务调用,本质上就是Ribbon
+Hystrix
。(用注解的方式进行服务调用,代码更好看了)Stream
,消息驱动,有Sink
、Source
、Processor
三种通道,特性有订阅发布、消费组、消息分区。Bus
,消息总线,配合Config
仓库修改的一种Stream
实现。(用于广播消息,一说大家都知道了啦)Sleuth
,分布式服务追踪,需要搞清楚TraceID
和SpanID
以及抽样,如何与ELK
整合。(服务多了,调用的线路就会很复杂,需要跟踪来知道你到底是怎么走的)