Прочитав документацию по Spring cloud Zuul, я понял, что с изоляцией SEMAPHORE и максимальным количеством одновременных запросов около 2 сервер Zuul может легко обрабатывать около 5000 об/с. При значении около 2000 он выдает следующее исключение и показывает частоту ошибок 100%, когда я пытался вызвать службу из Jmeter.
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