私は この記事 を読んで春のクラウドNetflixを学んでいますが、この記事のさまざまな用語に混乱し始めました。
ユーリカサービス私の理解では、それは一意のuri(つまり、uriごとに1つのサービス)で実行される通常のサービス(具体的にはマイクロサービス)です。いう localhost:12000
。 Eurekaサーバーに登録できます。
Eureka Client。Eurekaサービスと同じもの???
Eureka Server。私の理解では、私たちが構築した一連のマイクロサービスを検査、発見、管理できるサーバーであり、通常はlocalhost:8761
ユーレカインスタンス。ユーレカクライアントと同じように、それが何に言及されているか混乱していますか?
また、この記事では、eureka.client
configおよびNetflix APIのEurekaClient
は、同じものを参照していますか?
これら4つの用語の意味を教えてください。間違っている場合は修正してください。ありがとうございました!
================================== UPDATE =============== ===================
記事でそれは言った:
@EnableEurekaClient
は、アプリをEurekaの「インスタンス」(つまり、自分自身を登録する)と「クライアント」(つまり、他のサービスを見つけるためにレジストリを照会できる)の両方にします。
そのため、EurekaインスタンスはEurekaサービスと同じように見えます。 Eureka Clientは、他のインスタンス/サービスを照会できる特別なインスタンスです。
これらの用語は少しあいまいに使用されていると思いますが、記事でそれらが意味していると思います:
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という名前のこのアノテーションは両方のことを行います。おそらく混乱の原因です。しかし、InstanceとClientは使用されているにもかかわらず、実際には異なる概念です記事では多少互換性があります。
Eureka Server
ディスカバリーサーバー。サービスのレジストリと、サービスの登録、サービスの登録解除、および他のサービスの場所の検出に使用できるREST apiが含まれています。
ユーレカサービス
Eureka Serverのレジストリで見つけることができ、他の人が発見できるアプリケーション。サービスには、VIPと呼ばれることもあり、「サービスID」と呼ばれることもあり、同じアプリケーションの1つ以上のインスタンスを参照できる論理識別子があります。
ユーレカインスタンス
Eureka Serverに自分自身を登録し、他の人が発見するアプリケーション
Eurekaクライアント
サービスを発見できるアプリケーション
アプリケーションはどのようにしてEurekaインスタンスとEurekaクライアントの両方になりますか?
多くの場合、アプリケーションは他のユーザーが使用できるようにする必要があり(したがって、インスタンスである)、同時に他のサービスを検出する必要があります(したがって、クライアントです)。
EurekaクライアントはEurekaインスタンスである必要がありますか?
いいえ。アプリケーションが提供するものがなく、他のサービスの呼び出し元にすぎない場合があります。設定(eureka.client.register-with-eureka=false
)、自分自身をインスタンスとして登録しないように指示できます。したがって、他のサービスのみを検出するため、Eurekaクライアントのみです。
例を見てみましょう。
Spring-cloud-netflix-turbineはEurekaを使用して、個々のマイクロサービスからメトリックを集約します。クラウドでいつでも実行されているマイクロサービスの各インスタンスのアドレスを知る必要があります。インスタンスの数は増減できます。
Eureka Server: Turbineは、Eurekaサーバーに照会してレジストリにアクセスします。レジストリを使用して、参加しているすべてのマイクロサービス、到達するエンドポイントなどを決定します。
Eureka Service: Euerkaサーバーからタービン(参加者のマイクロサービスのリスト)に提供される情報がサービスです。サーバーは複数のサービスを提供できます。
Eureka Instanceメトリックの集約を必要とするすべてのマイクロサービスはEurekaインスタンスです。インスタンスは、レジストリを照会するだけでなく、登録、登録解除、登録を維持するためのハートビートの提供などもできます。
Eureka Client Turbineがクライアントです。 Micro Servicesの実行中のインスタンスを決定するのは、クエリレジストリのみです。