spring cloud 学习(Hystrix)熔断器

时间:2020-10-14 20:12:40   收藏:0   阅读:24

spring cloud 之 Hystrix

Hystrix 是 Netflix 开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败(雪崩)

  雪崩:一个服务失败,导致整条链路的服务都失败的情形

Hystrix  主要功能

1、Hystrix 降级

 提供方降级:

降级产生的原因有: 出现异常      服务调用超时:默认的超时时间是1s,ribbon的超时时间默认也是1s

消费方降级:

由于Feign组件已经集成了Hystrix组件 所以定义Feign调用接口实现类,复写方法,即降级方法

步骤:

 2、Hystrix 熔断

Hystrix熔断机制,用于监控微服务调用情况,当失败情况达到预定的阈值(5秒失败20次),会打开断路器,拒绝所有请求,直到服务恢复正常为止 

熔断器初始情况下是关闭的,当失败达到一定的阈值的时候(默认5s失败20次),熔断器就会打开,此时所有的请求无论是正常还是失败都会出现降级调用,熔断器开启一段时间(默认为5s),此时熔断器会是半开状态,此时会放入一个请求,如果该请求依旧失败,则将断路器状态改变为打开状态,继续上方步骤,如果调用成功,且次数达到阈值,就将断路器关闭

技术图片


这里可以对断路器进行设置

//监控时间 默认5000 毫秒
@HystrixProperty(name="circuitBreaker.sleepWindowInMilliseconds",value = "5000"),
//失败次数。默认20次
@HystrixProperty(name="circuitBreaker.requestVolumeThreshold",value = "20"),
//失败率 默认50%
@HystrixProperty(name="circuitBreaker.errorThresholdPercentage",value = "50")

 3、熔断监控

Hystrix 提供了 Hystrix-dashboard 功能,用于实时监控微服务运行状态。

但是Hystrix-dashboard只能监控一个微服务。

 Netflix 还提供了 Turbine ,进行聚合监控。

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!