并发测试失败,日志显示:
com.netflix.hystrix.exception.HystrixRuntimeException:community-serviceRibbonCommand无法获取执行的信号量,也没有可用的回退。
我阅读了源代码。它似乎由executionIsolationSemaphoreMaxConcurrentRequests控制。
我的问题是如何增加executionIsolationSemaphoreMaxConcurrentRequests?
答案 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")
})