2016-07-14 18 views
4

Springクラウド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クラウド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

spring cloudバージョンCamden.SR2とnetflix zuulバージョン1.3.0 – Mavlarn

+0

はい、私たちはzuul 1.1.2を使用しています。なぜそれが動作しないのですか?私はコードをチェックして、それ以降のバージョンの拡張機能があります。 – Joey

関連する問題