前言

在微服务中,系统由许多服务单元构成,各单元的应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中进行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或者依赖服务自身问题出现调用故障或延迟,这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会因等待出现故障的依赖方响应而形成任务积压,最终导致自身服务瘫痪。

由于微服务中存在众多服务单元,若一个单元出现故障,就很容易因依赖关系而引发故障的蔓延,最终导致整个系统瘫痪。未解决这样的问题,产生了断路器等一系列服务保护机制,而 Spring Cloud Hystrix 就是其中之一。

Spring Cloud Hystrix 基于 Netflix 开源框架 Hystrix 实现,具备 服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等强大功能。

阅读全文 »

前言

在前面的文章中我们分析了SpringCloud Ribbon的源码,了解了Ribbon的特点及一些重要接口。这篇文章我们来看下Ribbon在使用时的各种配置。

正文

Ribbon的自动化配置

阅读全文 »

前言

通过上篇文章对于SpringCloud Ribbon 负载均衡器的解读,我们已经对 Ribbon 实现负载均衡器以及其中包含的服务实例过滤器、服务实例信息存储对象、区域的信息快照等有了深入的认识和理解,接下来我们来看下负载均衡的几个策略实现。

正文

Ribbon中的负载均衡选择策略通过实现IRule接口来实现。具体关系如下图:

阅读全文 »