基于Hystrix实现限流

本文介绍了在微服务治理中,如何利用Hystrix组件进行接口保护,防止因依赖接口超时或失败导致的用户体验下降。重点讲述了Hystrix的两种降级策略——信号量和线程池,并提供了信号量降级的使用示例。
摘要由CSDN通过智能技术生成

前言

在微服务治理中,我们常常会遇到依赖接口超时或者调用失败的场景,如果没有对这些异常的场景做补偿会影响用户体验,甚至会导致应用瘫痪,影响其他业务。那如何解决呢?目前业界常用的方案就是熔断和降级两种方式。Hystrix是提供熔断降级的组件,帮助我们解决业务上的困难。下面简单介绍一些Hystrix的一些使用姿势。

hystrix的两种降级方式

  • 信号量
  • 线程池

下面是信号量降级的使用:
具体参数的含义在注释中。

        @HystrixCommand(
            groupKey = "timeline-group-rcmd",
            fallbackMethod = "callback",
            commandProperties = {
                    @HystrixProperty(name="execution.isolation.strategy", value="SEMAPHORE"), // 信号量隔离,因为业务方法用了ThreadLocal
                    @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "100"), //超时时间
                    @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold", value="50"),//触发熔断最小请求数量
       
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值