Hystrix 熔断器

别等时光非礼了梦想. 提交于 2020-03-17 01:58:28

什么是熔断器?

  • Hystrix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。
  • Hystrix熔断器,避免某个小服务宕机,导致整个系统级联宕机,从而整个系统挂掉.可以有效保护其他服务正常提供.

为什么要有熔断器?

  • 高并发领域,在分布式系统中,可能因为一个小小的功能扛不住压力宕机,导致其他服务也跟随宕机,最终导致整个系统宕机,所以SpringCloud中采用Hystrix进行处理。
  • 当服务繁忙时,如果服务出现异常,不是粗暴的直接报错,而是返回一个友好的提示,虽然拒绝了用户的访问,但是会返回一个结果。

怎么使用?

  1. 首先再服务消费者中引入依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
  1. 启动类加上注解 @EnableHystrix
  2. 在访问其他服务器的方法上声明一个失败时的回滚函数
//默认是1000毫秒,就会执行fallback函数,返回错误提示。
 @HystrixCommand(fallbackMethod = "回滚的函数名")
  1. 设定超时熔断时间
    • 熔断时间要大于Ribbon重试时间,负责先触发熔断,而不是重试其他服务器.
    • 计算方式为:熔断触发时间>Ribbon重试次数*重试时间
hystrix:
  command:
  	default:
        execution:
          isolation:
            thread:
              timeoutInMilliseconds: 6000 # 设置hystrix的超时时间为6000ms
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!