Failed to get semaphore - Zuul configuration

After reading the documentation in the Spring cloud Zuul cloud, I realized that with SEMAPHORE isolation and maximum simultaneous requests of about 2, the Zuul server can easily handle about 5000 rps. With a value of about 2000, it throws the following exception and shows a 100% error rate when I tried to call the service from Jmeter.

com.netflix.hystrix.exception.HystrixRuntimeException: 
Service1 could not acquire a semaphore for execution and no fallback available.

Then I came across the number of maximum concurrent requests up to 200,000, but still chose an exception, but the error rate dropped to 10%. Could you tell me the reason for this. Is it due to a slow microservice or some configuration problem in the Zuul cloud? The following is the configuration:

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
+4
1

, :

zuul.semaphore.maxSemaphores: 30000

github. , .

+2

All Articles