Hystrix 熔断降级配置

本文介绍了Hystrix的服务隔离、熔断、降级基础知识,并详细阐述了Hystrix的线程划分,特别是@HystrixCommand和@HystrixProperty注解的使用。同时,文章深入探讨了Hystrix的配置属性,包括execution、fallback、circuitBreaker和threadPool等,以及不同级别的配置优先级。最后提到了线程池隔离策略中的ThreadLocal类型和相关资源。
摘要由CSDN通过智能技术生成

1. 基础知识

1.1 服务隔离

img

​ 说明:把每个依赖或调用的服务都隔离开来,防止级联失败引起整体服务不可用

​ Hystrix 隔离策略的区别如下:
img

1.2 熔断
说明:为了防止服务雪崩,类似家用电的保险丝,起到保护服务的作用

image-20211104144659799

1.3 降级
概念:接口出错时的兜底方法,以下图的4、5、6步能导致降级发生

image-20211104140236865

1.4 Hystrix 线程划分:

  1. 分组 commandGroup:代表某一个服务;如 order-server
  2. 命令名称 commandKey:代表服务的一个接口;如获取订单的接口
  3. 线程池划分:默认以分组划分,可以使线程池划分的提供粒度更小

总结:command group一般来说,可以是对应一个服务,多个command key对应这个服务的多个接口,多个接口的调用共享同一个线程池

1.5 注解:

@HystrixCommand

@HystrixProperty

例子:

@GetMapping("test")
@HystrixCommand(
    groupKey = "ConsumerControllerGroup",
    commandKey = "test",
    commandProperties = {
   
        @HystrixProperty(name = HystrixPropertiesManager.EXECUTION_TIMEOUT_ENABLED, value = "false"),
        @HystrixProperty(name = HystrixPropertiesManager.REQUEST_CACHE_ENABLED, value = "false")
    }/*, fallbackMethod = "fallBack"*/,
    threadPoolProperties = {
   
        @HystrixProperty(name = HystrixPropertiesManager.CORE_SIZE, value = "200")
    })
public String test() throws InterruptedException {
   
    System.out.println
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值