导读:随着微服务的流行,熔断作为其中一项很重要的技术也广为人知。当微服务的运行质量低于某个临界值时,启动熔断机制,暂停微服务调用一段时间,以保障后端的微服务不会因为持续过负荷而宕机。本文介绍了新一代熔断器Resilience4j如何使用。
译者注:Hystrix官方已经停止开发了,Hystrix官方推荐使用新一代熔断器作为Resilience4j。作为新一代的熔断器,Resilience4j有很多优势,比如依赖少,模块化程度较好等优势。本文是关于resilience4j的初学者指南。
resilience4j是受Hystrix启发而做的熔断器,通过管理远程调用的容错处理来帮助实现一个健壮的系统。resilience4j提供了更好用的API,并且提供了很多其他功能比如Rate Limiter(限流器),Bulkhead(舱壁隔离)。
设置Maven
添加依赖如下:
这里仅仅添加了熔断器模块,其他模块可以点击这里[1]。
熔断器
使用这部分功能,需要引入上文所述的依赖。熔断器模式可以帮助我们在远程服务出故障时防止故障级联。
在多次请求失败后,我们就认为服务不可用/超载,并且对之后的请求进行短路处理,这样我们就能节约系统资源。
我们看看resilience4j如何做到这一点。
首先需要定义使用的设置,我们先使用默认设置:
当然你也可以自定义一些参数:
这里我们设置ratethreshold为20%,最小5次重试。
然后我们创建一个熔断器对象,并调用远程服务:
通过junit进行测试,我们会调用服务10次,可以验证服务至少调用5次,如果有20%的失败的情况下ÿ