2017-01-13 10 views
0

私が観察すると、回路が開いているとき、通常の流れがまだ呼び出されていることで、私のテスト中hystrix回路のオープンイベント

を私はhystrixcommandのための春の側面を構成している、それが正常に動作します(オープンとクローズ回路)イベントFAILUREでは、フォールバックが呼び出されます。

私はドキュメントから理解していることは、回路が開いているとき、通常のフローは5秒(デフォルト)で1回だけチェックされることです。手動で値を20秒に設定しようとしましたが、まだ動作しませんでした。

@HystrixCommand(commandProperties = { 
      @HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds", value = "20000") 
     }, 
      fallbackMethod = "fallbackCall") 

この設定はどこで設定しますか?エラーサービスが毎回呼び出され、その後フォールバックに行くことは望ましくありません。

答えて

1

私が行っているテストでは、正しく設定されていませんでした。 SHORT_CIRCUITするには、circuitBreaker.requestVolumeThresholdが満たされている必要があります。

私の場合、デフォルト値は20で、ローリングウィンドウの失敗数は20を超えませんでした。だから短絡は起こりませんでした。以下は、私が1にcircuitBreaker.requestVolumeThresholdを設定し、期待どおりに動作するフロー応答を介して別のスタックから

within a timespan of duration metrics.rollingStats.timeInMilliseconds, the percentage of actions resulting in a handled exception exceeds errorThresholdPercentage, provided also that the number of actions through the circuit in the timespan is at least requestVolumeThreshold 

を得たドキュメントがあります。