spring cloud

Spring Cloud 浅显入门理解

2022-06-21  本文已影响0人  yohim

Spring Cloud

负载均衡 Ribbon

RestTemplateSpring提供的一个访问 Http 服务的客户端类

为什么需要 Ribbon?

RibbonNetflix 公司的一个开源的负载均衡 项目,是一个客户端/进程内负载均衡器,运行在消费者端

Nginx 和 Ribbon 的对比

Nignx 是一种集中式的负载均衡器,就是将所有请求都集中起来,然后再进行负载均衡

Ribbon 的几种负载均衡算法

负载均衡,不管 Nginx 还是 Ribbon 都需要其算法的支持,如果我没记错的话 Nginx 使用的是 轮询和加权轮询算法。而在 Ribbon 中有更多的负载均衡调度算法,其默认是使用的 RoundRobinRule 轮询策略。

Open Feign

每次都调用 RestRemplateAPI 太麻烦

OpenFeign 也是运行在消费者端的,使用 Ribbon 进行负载均衡,所以 OpenFeign 直接内置了 Ribbon

Hystrix

什么是 Hystrix 之熔断和降级?

总体来说 Hystrix 就是一个能进行 熔断降级 的库,通过使用它能提高整个系统的弹性。

所谓 熔断 就是服务雪崩的一种有效解决方案。当指定时间窗内的请求失败率达到设定阈值时,系统将通过 断路器 直接将此请求链路断开。

熔断 就是指的 Hystrix 中的 断路器模式 ,你可以使用简单的 @HystrixCommand 注解来标注某个方法,这样 Hystrix 就会使用 断路器 来“包装”这个方法,每当调用时间超过指定时间时(默认为 1000ms),断路器将会中断对这个方法的调用。

降级是为了更好的用户体验,当一个方法调用异常时,通过执行另一种代码逻辑来给用户友好的回复。这也就对应着 Hystrix后备处理模式。你可以通过设置 fallbackMethod 来给一个方法设置备用的代码逻辑。

微服务网关—Zuul

网关是系统唯一对外的入口,介于客户端与服务器端之间,用于对请求进行鉴权限流路由监控等功能。

网关有的功能,Zuul 基本都有。而 Zuul 中最关键的就是 路由和过滤器

Zuul 作为网关肯定也存在 单点问题 ,如果我们要保证 Zuul 的高可用,我们就需要进行 Zuul 的集群配置,这个时候可以借助额外的一些负载均衡器比如 Nginx

配置管理—Config

既能对配置文件统一地进行管理,又能在项目运行时动态修改配置文件呢?

Spring Cloud Config 为分布式系统中的外部化配置提供服务器和客户端支持。使用 Config 服务器,可以在中心位置管理所有环境中应用程序的外部属性。

简单来说,Spring Cloud Config 就是能将各个 应用/系统/模块 的配置文件存放到 统一的地方然后进行管理(Git 或者 SVN)。

在应用运行时去更改远程配置仓库(Git)中的对应配置文件,那么依赖于这个配置文件的已启动的应用不会进行其相应配置的更改。所以会使用 Bus 消息总线 + Spring Cloud Config 进行配置的动态刷新。

Spring Cloud Bus

简单理解为 Spring Cloud Bus 的作用就是管理和广播分布式系统中的消息,也就是消息引擎系统中的广播模式。当然作为 消息总线Spring Cloud Bus 可以做很多事而不仅仅是客户端的配置刷新功能。

拥有了 Spring Cloud Bus 之后,我们只需要创建一个简单的请求,并且加上 @ResfreshScope 注解就能进行配置的动态修改

上一篇 下一篇

猜你喜欢

热点阅读