Hystrix熔断器
为什么要有断路器?
一个简单的场景就是 家里的保险丝,当电流过大时保险丝熔断,是的家里的其他电器不至于造成大规模的损坏;
在微服务中,当大量请求到达产品微服务,这会导致其服务响应变得缓慢,或者因为内存不足等原因使得服务器出现宕机或者数据库出现问题;
另一个当一个微服务中有很多请求时,会导致他调用其他微服务的时候(正常的服务线程)造成积压,产生雪崩;
在ribbon负载均衡时 会将不能用的实例进行剔除
断路器的运作模式
有时候可以设计多层的熔断来满足不同的场景需要;
断路器的作用:
- 1,防止单个服务的故障导致器依赖和相关的服务容器的线程资源被耗尽;
- 2,减少负载,并负责通过请求的快速失败功能而不是让请求进行排队.
- 3,尽可能提供服务降级的功能,以免用户免受故障影响
- 4,使用隔离技术来限制某个服务出现问题所带来的影响
- 5,尽可能提供实时监控信息,提供监控和警报来优化发现故障的时间
- 6,允许使用配置修改相关的参数(如请求超时时可以触发熔断)
- 7,对服务调用消费者内部的故障进行保护,而不仅仅是在网络流量上进行保护降级,限流
熔断器的设计模式—>>观察者模式
熔断器的使用
我们可以针对不同的微服务有选择的开启熔断,即需要在那个微服务里开启熔断,就在以来中引入相应的依赖
依赖引入: