【发布时间】:2016-11-17 00:43:26
【问题描述】:
在阅读了 Spring cloud Zuul 的文档后,我了解到在 SEMAPHORE 隔离和最大并发请求数约为 2 的情况下,Zuul 服务器可以轻松处理约 5000 rps。当我尝试从 Jmeter 调用服务时,它的值约为 2000,它会引发以下异常并显示 100% 的错误率。
com.netflix.hystrix.exception.HystrixRuntimeException:
Service1 could not acquire a semaphore for execution and no fallback available.
然后我将最大并发请求数提高到 200000,但它仍然抛出异常,但错误率已下降到 10%。 你能告诉我这是什么原因吗?这是因为微服务速度慢还是 Spring cloud Zuul 中的任何配置问题?以下是配置:
ribbon:
ConnectTimeout: 20000000
ReadTimeout: 20000000
MaxTotalHttpConnections: 5000
MaxHttpConnectionsPerHost: 5000
ActiveConnectionsLimit: 4000
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 20000000
zuul.hystrix.command.default.execution.isolation.strategy: SEMAPHORE
zuul.hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests: 2000
zuul.hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests: 2000
zuul.eureka.default.semaphore.maxSemaphores: 30000
【问题讨论】:
-
遇到同样的问题,请问您解决了吗?
标签: java spring spring-cloud netflix-zuul