2016-07-14 2 views
4

스프링 클라우드 Zuul에 대한 문서를 읽은 후 SEMAPHORE 격리 및 약 2 개의 최대 동시 요청으로 Zuul 서버가 약 5000 rps를 쉽게 처리 할 수 ​​있음을 이해했습니다. 약 2000의 값으로 Jmeter에서 서비스를 호출하려고 할 때 다음과 같은 예외가 발생하고 오류율이 100 %로 표시됩니다. 세마포어를 취득 할 수 없음 - Zuul Configuration

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 

답변

2

, 나는 그것이 있어야 발견 :

zuul.semaphore.maxSemaphores: 30000 

그것은 GitHub의에서 the issue 다르다. 어쩌면 버전과 관련이 있습니다.

+0

테스트 할 준루 (zuul) 버전을 아는 것이 있습니까? @Mavlarn – Joey

+0

봄 구름 버전 Camden.SR2 및 netflix zuul 버전은 1.3.0입니다. – Mavlarn

+0

예, 우리는 zuul 1.1.2를 사용하고 있으므로 작동하지 않습니다. 나는 최신 버전을위한 향상된 기능이 있다는 것을 확인했다. – Joey

관련 문제