2

Spring Feign をテストしたところ、即時のフェイルオーバー メカニズムがないことがわかりました。

サービス B を呼び出すサービス A があります。サービス B には 2 つのインスタンスがあり、バランスが機能することを確認しました。両方とも呼び出されました。しかし、そのうちの1つを停止したとき、サービスAを呼び出すときにしばらくの間エラーページが表示されていました.Bに接続できなかったためです.

私は、偽物にもフェイルオーバーがあることを期待していたので、問題が見つかった場合、A は自動的に他の B インスタンスで試行します。それとも、Hystrix などを使用して直接実装する必要がありますか?

4

1 に答える 1

0

Spring Cloud Netflix Feign は、 Ribbonをロード バランサーとして使用します。あなたが説明した状況は、 Feign ではなく、 Eurekaと組み合わせたRibbonに固有のものです。不正なインスタンスがデフォルトの 30 秒間キャッシュされることは正しいです。特定のメソッドを再試行するようにリボンを構成できます (これにより、残りの正常なサーバーが要求されます)。eureka/ribbon キャッシュの寿命を(30 秒ではなく 5 秒に)短縮することもできます。eureka.client.registryFetchIntervalSeconds=5

Hystrix は、障害応答に対処するためのフォールバックや、系統的な障害が発生した場合のサーキット ブレーカーとして役立ちます)。

于 2015-10-07T17:17:07.397 に答える