私の偽のクライアントは現在、Eureka を使用してサービス インスタンスを検出できません。私の構成には、次の注釈が含まれています。
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableDiscoveryClient
@FeignClientScan
次の依存関係を含めました (spring-cloud 1.0.0-BUILD-SNAPSHOT):
org.springframework.cloud:spring-cloud-starter-eureka
com.netflix.feign:feign-core
com.netflix.feign:feign-ribbon
私が知る限り、偽のクライアントは a を使用するため、使用可能なサービス インスタンスのアドレスを構成ファイル (プロパティ)ConfigurationBasedServerList
で明示的に指定する必要があります。ribbon.serverList
ただし、明示的に指定すると、すべてが正常に機能します。
ribbon.NIWSServerListClassName: com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList
私のテスト アプリケーションは、Eureka 対応のリボン実装を使用するように自動的に構成された Spring RestTemplate ベースのクライアントも使用します。奇妙なことは、RestTemplate が最初に呼び出された場合、Feign クライアントが正常に動作している (つまり、サービス インスタンスを見つけている) ことです。RestTemplate セットアップは、どこかでいくつかの (静的) 初期化を実行するように見えます。これは、偽のクライアントに役立ちます。
Feign サポートの設定方法に何か見落としがありますか?