web-dev-qa-db-ja.com

Eurekaサービス、Eurekaクライアント、Eurekaインスタンス、Eurekaサーバーとは

私は この記事 を読んで春のクラウドNetflixを学んでいますが、この記事のさまざまな用語に混乱し始めました。

  1. ユーリカサービス私の理解では、それは一意のuri(つまり、uriごとに1つのサービス)で実行される通常のサービス(具体的にはマイクロサービス)です。いう localhost:12000。 Eurekaサーバーに登録できます。

  2. Eureka Client。Eurekaサービスと同じもの???

  3. Eureka Server。私の理解では、私たちが構築した一連のマイクロサービスを検査、発見、管理できるサーバーであり、通常はlocalhost:8761

  4. ユーレカインスタンス。ユーレカクライアントと同じように、それが何に言及されているか混乱していますか?

また、この記事では、eureka.client configおよびNetflix APIのEurekaClientは、同じものを参照していますか?

これら4つの用語の意味を教えてください。間違っている場合は修正してください。ありがとうございました!

================================== UPDATE =============== ===================

記事でそれは言った:

@EnableEurekaClientは、アプリをEurekaの「インスタンス」(つまり、自分自身を登録する)と「クライアント」(つまり、他のサービスを見つけるためにレジストリを照会できる)の両方にします。

そのため、EurekaインスタンスはEurekaサービスと同じように見えます。 Eureka Clientは、他のインスタンス/サービスを照会できる特別なインスタンスです。

33
OD Street

これらの用語は少しあいまいに使用されていると思いますが、記事でそれらが意味していると思います:

  • Eureka Client:動作する準備ができているマイクロサービスにすることができるため、Eurekaサーバーに自分自身を登録します。一部のアプリ、またはサーバーにアクセスして特定のマイクロサービスへの指示を要求する一部のアプリケーションのAPI。

  • Eureka Instance:マイクロサービスの単一インスタンス(負荷の増加に応じて、同じ水平サービスのインスタンスをさらに追加できます(水平スケーリング)。).

  • Eureka Service:Eureka Clientとしてマイクロサービスを登録すると、IDで登録されたEureka Serviceを取得するように見えます。

  • Eureka Server:他の人がそれらを発見できるようにマイクロサービスが自分自身を登録できるサーバー。


追加した更新について:

EurekaInstanceとEurekaServiceを混同しないでください。 EurekaServiceは、Eureka Serverに登録されたマイクロサービスインスタンスのグループを参照します同じサービスを提供します。

そのことについて @EnableEurekaClientアノテーション、フレームワークに次のことを伝えます。こんにちは、Spring、私はマイクロサービスXのインスタンスですので、ユーレカサーバーに登録してください(eureka.instance.*プロパティ)、他のサービスも検出したいので、必要な検出クライアントBeanを作成します(eureka.client.*プロパティ)。

要約すると、@ EnableEureka Clientという名前のこのアノテーションは両方のことを行います。おそらく混乱の原因です。しかし、InstanceClientは使用されているにもかかわらず、実際には異なる概念です記事では多少互換性があります。

24
ESala

定義


Eureka Server

ディスカバリーサーバー。サービスのレジストリと、サービスの登録、サービスの登録解除、および他のサービスの場所の検出に使用できるREST apiが含まれています。

ユーレカサービス

Eureka Serverのレジストリで見つけることができ、他の人が発見できるアプリケーション。サービスには、VIPと呼ばれることもあり、「サービスID」と呼ばれることもあり、同じアプリケーションの1つ以上のインスタンスを参照できる論理識別子があります。

ユーレカインスタンス

Eureka Serverに自分自身を登録し、他の人が発見するアプリケーション

Eurekaクライアント

サービスを発見できるアプリケーション

ご質問


アプリケーションはどのようにしてEurekaインスタンスとEurekaクライアントの両方になりますか?

多くの場合、アプリケーションは他のユーザーが使用できるようにする必要があり(したがって、インスタンスである)、同時に他のサービスを検出する必要があります(したがって、クライアントです)。

EurekaクライアントはEurekaインスタンスである必要がありますか?

いいえ。アプリケーションが提供するものがなく、他のサービスの呼び出し元にすぎない場合があります。設定(eureka.client.register-with-eureka=false)、自分自身をインスタンスとして登録しないように指示できます。したがって、他のサービスのみを検出するため、Eurekaクライアントのみです。

28
dustin.schultz

enter image description here

彼らはこの写真のように見えると思います。

  1. EurekaクライアントがEurekaサーバーに登録します。
  2. EurekaインスタンスはEureka Serverに登録されるため、クライアントです。
  3. Eurekaサービスは他のユーザーにapiを提供するため、他のユーザーがapiを発見できるため、インスタンスです。
4
Xian Shu

例を見てみましょう。

Spring-cloud-netflix-turbineはEurekaを使用して、個々のマイクロサービスからメトリックを集約します。クラウドでいつでも実行されているマイクロサービスの各インスタンスのアドレスを知る必要があります。インスタンスの数は増減できます。

Eureka Server: Turbineは、Eurekaサーバーに照会してレジストリにアクセスします。レジストリを使用して、参加しているすべてのマイクロサービス、到達するエンドポイントなどを決定します。

Eureka Service: Euerkaサーバーからタービン(参加者のマイクロサービスのリスト)に提供される情報がサービスです。サーバーは複数のサービスを提供できます。

Eureka Instanceメトリックの集約を必要とするすべてのマイクロサービスはEurekaインスタンスです。インスタンスは、レジストリを照会するだけでなく、登録、登録解除、登録を維持するためのハートビートの提供などもできます。

Eureka Client Turbineがクライアントです。 Micro Servicesの実行中のインスタンスを決定するのは、クエリレジストリのみです。

0