2017-01-20 10 views
1

私たちのプロジェクトでは、Springクラウド+ユーレカをサービスレジストリとして使用しています。 リボンクライアントを使用して内部のマイクロサービスを呼び出すと、すべてのURLがEurekaを介して解決されます...これは外部URLを呼び出す際の問題です。 外部APIとしてFeignの古風な使い方は良い選択ではないようです。eurekaを使用して他の内部マイクロサービスを呼び出すスプリングクラウドマイクロサービスから外部非REST APIを呼び出す方法はありますか?

このようなサービスから外部URLを呼び出す最良の方法は何ですか?事前に

おかげ

パトリス

答えて

0

一つの方法作業: 利用二つの構成。

このような外部サービスを呼び出すために、あなたのRestTemplate豆を宣言します。

@Primary 
@Qualifier("withoutEureka") 
@Bean 
public RestTemplate restTemplate(){ 
... 
} 

は、他の構成では

@Bean 
public MyClientForExtCall myClientForExtCall(@Qualifier("withoutEureka")RestTemplate restTemplate) 

この方法は、いつものようにrestTemplateを使用するクライアントでは、この参照を注入したが、ドン」別の修飾子を使用することを忘れないでください。

@LoadBalanced 
@Bean 
@Qualifier("withEureka") 
public RestTemplate loadBalancedEureka(){ 
... 
} 

@Bean 
public MyClientForInternal myClientForInternal(@Qualifier("withoutEureka")RestTemplate restTemplate) 

Patrice

0

ユーレカなしでリボンを使用できます。外部APIの場合、発見を抽象化するためにユーレカで設定することはできません。クライアントでURLをハードコードし、サーバーリストを構成できます。リボンクライアントは既定の構成のサーバーリストになり、次のような構成を指定できます。

stores: 
    ribbon: 
    listOfServers: example.com, google.com 
関連する問題