2017-09-05 10 views
0

Eurekaに登録されている同じ名前/タイプの2つのマイクロサービスインスタンスがあり、リボン間でロードバランシングが行われているとします。サービスが停止した場合に備えて、Hystrixフォールバックも設定しました。リボンは、Hystrixフォールバックが呼び出される前に、エンドポイントURLをサポートしているすべての利用可能なサービスに連絡しますか?hystrixがフォールバックを呼び出す前に、リボンはすべてのEurkea登録インスタンスを通過しますか?

答えて

1

これは設定によって異なります。

通常、ヒステリックフォールバックは以下の条件で実行されます。

  • HystrixBadRequestExceptionを除く)HystrixCommandによって実行されているあなたのコードが例外をスローした場合Hystrixは「doesnの

  • HystrixのThreadPool /セマフォ拒絶
  • Hystrix回路オープン
  • HystrixタイムアウトHystrixのタイムアウト中にリボンを再試行しないようにします。タイムアウトに達すると、Hystrixはユーザのコードを中断した後にフォールバック方式を実行します。

    リボンの再試行は、次のプロパティで調整できます。したがって、あなたのフォールバックがちょうどすべてのリボン後

    • 呼ばれる

      • ribbon.MaxAutoRetriesNextServer
      • ribbon.MaxAutoRetries
      • ribbon.ReadTimeout
      • ribbon.ConnectTimeout

      Hystrixのタイムアウトで終了した場合、再試行に失敗します。

    • または、Hystrixのタイムアウト後、リボンのすべての再試行操作がHystrixのタイムアウトまで終了していない場合。

  • 関連する問題