2016-06-29 17 views
1

Spring Cloudを使用してRESTサービスを実際にバインドするにはどうすればよいですか?私は何かが明らかに欠けているように感じる。たとえば、Spring CloudとSpring Bootで動作するように設定された2つの個別のマイクロサービスがあるとします。 2番目のサービスを呼び出すことができるように、それを一緒にバインドするにはどうすればいいですか?Spring Cloud - Binding Services Together

ユーレカはサービスレジストリとして使用できると私は理解しています。ユーレカを使用する場合、1つのサービスで別のコールを呼び出すと、コードの外観はどうなりますか?

+0

ユーレカは単にサービスのプロキシです。あなたのサービスURLを呼び出す代わりに、あなたは 'eureka-url/service-name' URLを呼び出すでしょう。私たちが実装しているマイクロサービスのためのcloudfoundryの 'bind-service'のようなものはありません。代わりに、独自のクライアントコードを記述する必要があります。例えば、 'RestTemplat'や' Apache HttpClient'や普通の 'URLConnection'コードを使うことができます。 – 11thdimension

+0

基本について知りたいことはすべて文書にありますが、これは基本的な記事です:https://spring.io/blog/2015/07/14/microservices-with-spring – Hrabosch

答えて

0

他の回答が正しいと思いますが、ここにいくつかの詳細があります。

Spring Cloud Netflixを使用してEurekaサーバーとクライアントを作成するときに、EurekaClient beanを使用してクライアントのホームページURLを取得できます。その後、RestClientを使用して、そのクライアントのAPIを呼び出すことができます。

上記以外のオプションは、Feign clientを使用することです。

0

FeignClientを使用してMicroservicesからサービスを呼び出すことができるAPIゲートウェイを使用できます。例えばマイクロサービスAおよびマイクロサービスB。ゲートウェイでは、両方のマイクロサービスのためのファインクライアントがあります。 Aでサービスを呼び出し、Bでサービスするゲートウェイにサービスを書く

もう1つの回避策は、MicroService AとFeignClientからMicroService BにResourceProcessorを持たせることです。

0

サービスディスカバリ(ユーレカ)、サーキットブレーカ(Hystrix)、インテリジェントルーティング(Zuul)、およびクライアントサイドロードバランシング(リボン)の優れたパターンに付属するSpring Cloud Netflixを使用することができます。 )は、特にマイクロサービスで構築された大規模分散システムに適しています。

また、good documentation resourceも参照してください。