ドキュメントに記載されているように、RestTemplate クライアントが Eureka を使用してリモート サービスを検出し、Ribbon を使用して呼び出しを転送することに成功しました。基本的には、Application クラスに次の注釈を追加するだけで、残りは Spring-Boot の魔法に任せることができました。
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableDiscoveryClient
(PS: 1.0.0.M3 ではなく spring-cloud:1.0.0-SNAPSHOT-BUILD を使用していることにお気付きでしたか?しかし、これは私の問題には影響していないようです)。
2 つのサービス インスタンスが開始されると、rest-template クライアントは 2 つの間で要求の負荷を正常に分散します。ただし、Eureka ロード バランサーが通知する前に最初のインスタンスが停止した場合、クライアントは 2 番目のインスタンスにフォールバックせず、代わりに例外がスローされます。
したがって、私の質問: 最初に選択したインスタンスが使用できない場合に、別のインスタンスへの呼び出しを自動的に再試行するように RestTemplate/Ribbon/Eureka スタックを構成する方法はありますか? Zuulプロキシと偽装クライアントはこれを「すぐに」実行できるため、ライブラリには必要な機能が含まれていると思います...
アイデア/ヒントはありますか?
Thx、/ベルトラン