如何配置spring cloud hystrix semaphore max concurrent

时间:2015-10-13 04:32:50

标签: spring-cloud hystrix

并发测试失败,日志显示:

com.netflix.hystrix.exception.HystrixRuntimeException:community-serviceRibbonCommand无法获取执行的信号量,也没有可用的回退。

我阅读了源代码。它似乎由executionIsolationSemaphoreMaxConcurrentRequests控制。

我的问题是如何增加executionIsolationSemaphoreMaxConcurrentRequests?

2 个答案:

答案 0 :(得分:1)

如果你使用的是Setter,你可以

    public class HystrixCommandInstance extends HystrixCommand<>        
      public HystrixCommandInstance() {
          super(Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("SomeGroupName"))
          .andCommandPropertiesDefaults(HystrixCommandProperties.Setter()
                 .withExecutionIsolationSemaphoreMaxConcurrentRequests(200)));
      }
   }

答案 1 :(得分:0)

如果您使用的是@HystrixCommand注释,则可以指定commandProperties()来配置命令。

@HystrixCommand(fallbackMethod = "fallbackMethod",
            commandProperties = {
                    @HystrixProperty(name = "execution.isolation.semaphore.maxConcurrentRequests", value = "15")
             })