Hystrix 熔断降级配置

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
    评论
Spring Cloud Hystrix是一个开源的熔断器框架,它能够帮助开发者有效地处理服务依赖中的延迟和故障。熔断器的主要目的是在出现故障时提供一种优雅的降级机制,以避免整个系统的崩溃。 熔断降级Hystrix中两个重要的概念。 熔断(Circuit Breaker)指的是在服务出现故障或错误率过高时,自动地切换到指定的备用服务或返回事先定义好的错误结果,起到保护系统免受故障传播的影响的作用。当服务不可用或响应时间过长时,熔断器会打开,拒绝后续请求的访问,并尝试通过执行降级逻辑来快速响应客户端。一旦后续请求不再出现故障,熔断器将会进入半开状态,允许少量的请求通过以检测服务是否恢复正常。 降级(Degradation)指的是在系统资源不足或者高访问量时,服务降级会关闭一些不重要的功能,以保证系统核心功能的可用性和稳定性。降级可以通过阻止非必要的调用、减少资源的消耗以及返回默认值或缓存结果来实现。降级需要提前定义好一些备用的逻辑,一旦系统资源紧张,就可以立即启用降级逻辑来保障系统的可用性。 总而言之,熔断降级都是为了保护系统免受故障的影响。熔断主要是针对服务故障和错误率过高的情况,通过切换到备用服务或返回错误结果来保护系统。降级主要是在系统资源紧张或高访问量的情况下,关闭一些不重要的功能来保证核心功能的可用性和稳定性。两者都是通过提前定义备用逻辑来保障系统的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值