SpringCloud核心组件-5大神兽

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/BruceLiu_code/article/details/102594784

1.引言

SpringCloud分布式开发五大组件:

服务发现——Netflix Eureka
客服端负载均衡——Netflix Ribbon
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config

2.Eureka

由两个组件组成:Eureka服务器和Eureka客户端

Eureka Client:负责将这个服务的信息注册到Eureka Server中
Eureka Server:注册中心,里面有一个注册表,保存了各个服务所在的机器和端口号 

在这里插入图片描述
一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。
在这里插入图片描述
在这里插入图片描述Eureka详细图:
在这里插入图片描述

3.Ribbon

主要提供客户侧的软件负载均衡算法。
在这里插入图片描述

Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略:

简单轮询负载均衡
加权响应时间负载均衡
区域感知轮询负载均衡
随机负载均衡 

在这里插入图片描述
详细调用流程:
在这里插入图片描述

4.Hystrix

断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正​​,应用程序可以尝试调用操作。
在这里插入图片描述

5.Zuul

是一个网关组件。提供动态路由,监控,弹性,安全等边缘服务的框架。
在这里插入图片描述

6.Spring Cloud Config

远程配置服务,这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

远程配置是每个都必不可少的中间件,远程配置的特点一般需要:多节点主备、配置化、动态修改、配置本地化缓存、动态修改的实时推送等。

config允许配置文件放在git上或者svn上,和spring boot的集成非常容易。
在这里插入图片描述

7.总结

Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里

Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台

Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题

Zuul:如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务
在这里插入图片描述我们从整体上来看一下Spring Cloud各个组件如何来配套使用:
从上图可以看出Spring Cloud各个组件相互配合,合作支持了一套完整的微服务架构。
在这里插入图片描述

其中Eureka负责服务的注册与发现,很好将各服务连接起来
Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护。
Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示
Spring Cloud Config 提供了统一的配置中心服务
当配置文件发生变化的时候,Spring Cloud Bus 负责通知各服务去获取最新的配置信息
所有对外的请求和服务,我们都通过Zuul来进行转发,起到API网关的作用
最后我们使用Sleuth+Zipkin将所有的请求数据记录下来,方便我们进行后续分析

Spring Cloud从设计之初就考虑了绝大多数互联网公司架构演化所需的功能,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。这些功能都是以插拔的形式提供出来,方便我们系统架构演进的过程中,可以合理的选择需要的组件进行集成,从而在架构演进的过程中会更加平滑、顺利。

微服务架构是一种趋势,Spring Cloud提供了标准化的、全站式的技术方案,意义可能会堪比当前Servlet规范的诞生,有效推进服务端软件系统技术水平的进步。

猜你喜欢

转载自blog.csdn.net/BruceLiu_code/article/details/102594784