J'apprends le printemps printanier Netflix en lisant cet article , mais j'ai commencé à être troublé par une terminologie différente dans cet article:
Service Eureka. Si je comprends bien, il s’agit d’un service ordinaire (en particulier un microservice) fonctionnant sur un uri unique (c’est-à-dire un service par uri). Dites localhost:12000
. Il peut être enregistré sur le serveur Eureka.
Client Eureka. Même chose que le service Eureka ???
Serveur Eureka. À ma connaissance, c'est le serveur que nous pouvons inspecter, découvrir et gérer avec le lot de microservices que nous avons construits, fonctionnant normalement sur localhost:8761
Instance Eureka. Je suis dérouté par ce à quoi il est fait référence, la même chose que le client Eureka?
Également dans cet article, il est fait mention de eureka.client
dans config et de EurekaClient
dans Netflix API, font-ils référence à la même chose?
Dites-moi ce que signifient ces quatre termes et corrigez-moi si je me trompe. Je vous remercie!
================================= UPDATE ============== ====================
Dans l'article, il était écrit:
@EnableEurekaClient
transforme l'application en une "instance" Eureka (c'est-à-dire ... elle s'enregistre elle-même) et en un "client" (c'est-à-dire qu'il peut interroger le registre pour localiser d'autres services).
Il semble donc que l'instance Eureka est identique au service Eureka. Bien que Eureka Client soit une instance spéciale pouvant interroger d’autres instances/services.
Je dirais que ces termes sont utilisés de manière un peu ambiguë, voici ce que je pense qu'ils signifient dans l'article:
Client Eureka : il peut s’agir d’un microservice prêt à fonctionner, de sorte qu'il s'enregistre sur le serveur Eureka, par exemple. une API pour une application ou une application qui va au serveur et demande des instructions pour un microservice spécifique.
Instance Eureka : une seule instance d'un microservice (vous pouvez ajouter plusieurs instances du même microservice à mesure que votre charge augmente, par exemple une mise à l'échelle horizontale).
Service Eureka : on dirait que lorsque vous enregistrez un microservice en tant que client Eureka, vous obtenez un service Eureka enregistré sous un identifiant.
Eureka Server : un serveur sur lequel les microservices peuvent s’enregistrer eux-mêmes afin que les autres puissent les découvrir.
A propos de la mise à jour que vous avez ajoutée:
Eureka Instance ne doit pas être confondu avec Eureka Service. Eureka Service fait référence au groupe de microservice instances enregistrés sur le serveur Eureka qui fournissent le même service.
À propos de cette annotation @EnableEurekaClient
, elle indique ce qui suit au salut: bonjour printemps, je suis une instance de microservice X, merci donc de m'enregistrer sur le serveur Eureka (avec les propriétés eureka.instance.*
), et je souhaite également découvrir d'autres services, créez donc le bean client de découverte nécessaire pour moi (avec les propriétés eureka.client.*
).
En résumé, cette annotation nommée @ EnableEureka Client fait les deux choses, c’est peut-être de là que vient la confusion. Mais Instance et Client sont en effet des concepts différents, même s'ils sont utilisés de manière interchangeable dans l'article.
Serveur Eureka
Le serveur de découverte. Il contient un registre de services et un REST api pouvant être utilisé pour enregistrer un service, désenregistrer un service, et Découvrez l'emplacement d'autres services.
Service Eureka
Toute application qui se trouve dans le registre du serveur Eureka et qui est découvrable par d'autres. Un service a parfois un identifiant logique appelé VIP, parfois appelé "identifiant de service", pouvant désigner un ou plusieurs instances de la même application.
Instance Eureka
Toute application qui s'enregistre auprès du serveur Eureka sous le nom de découvert par d'autres
Client Eureka
Toute application pouvant découvrir des services
Comment une application peut-elle être à la fois une instance Eureka et un client Eureka?
Les applications doivent souvent se rendre disponibles pour une utilisation par d'autres (afin de constituer une instance) tout en même temps pour découvrir d'autres services (afin de devenir un client).
Un client Eureka doit-il être une instance Eureka?
Non. Parfois, une application n'a rien à offrir et n'est qu'un appelant d'autres services. Via la configuration (eureka.client.register-with-eureka=false
), vous pouvez lui dire de ne pas s'enregistrer en tant qu'instance. Il s’agit donc uniquement d’un client Eureka car il ne découvre que d’autres services.
Je pense qu'ils ressemblent à cette photo.
Prenons un exemple.
Spring-cloud-netflix-turbine utilise Eureka pour agréger les mesures de micro-services individuels. Il doit connaître l'adresse de chaque instance de micro-service s'exécutant à tout moment dans le cloud. Le nombre d'instances peut monter et descendre.
Serveur Eureka: Turbine interroge le serveur Eureka pour obtenir un accès au registre. En utilisant le registre, il détermine tous les micro-services participants, leur point final à atteindre et plus encore.
Service Eureka: Les informations fournies par le serveur Euerka à la turbine (liste des micro-services participants) correspondent au service. Un serveur pourrait fournir plusieurs services.
Instance Eureka Tous les micro-services qui souhaitent que leurs métriques soient agrégées sont des instances Eureka. Les instances peuvent non seulement interroger le registre, mais également enregistrer, annuler l'enregistrement, fournir un battement pour rester enregistré, etc.
Client Eureka Turbine est le client. Il se contente de query registry pour déterminer les instances en cours de Micro Services.