Dans le titre, nous avons vu trois mots à la mode :
- Microservices
- Netflix Eureka
- Découverte (Registre)
Qu’est-ce qu’un microservice ?
En termes simples, le ou les microservices sont des grappes de petites applications qui fonctionnent ensemble en coordination pour fournir une solution complète.
Quand nous disons beaucoup de petites applications fonctionnant indépendamment ensemble, alors elles auront toutes leurs propres URL et ports. Dans ce scénario, il serait très lourd de maintenir tous ces microservices pour qu’ils fonctionnent en synchronisation, et plus important encore, avec la surveillance. Ce problème sera multiplié lorsque nous commencerons à mettre en œuvre des équilibreurs de charge.
Pour résoudre ce problème, nous avons besoin d’un outil qui surveillera et maintiendra le registre de tous les microservices dans l’écosystème.
Qu’est-ce que Netflix Eureka ?
C’est un outil fourni par Netflix pour apporter une solution au problème ci-dessus. Il se compose du serveur Eureka et des clients Eureka. Eureka Server est en soi un microservice auquel s’inscrivent tous les autres microservices. Les clients Eureka sont les microservices indépendants. Nous verrons comment configurer cela dans un écosystème de microservices.
J’utiliserai Spring Boot pour créer quelques microservices qui agiront comme des clients Eureka et un serveur de découverte qui sera un serveur Eureka. Voici la structure complète du projet:
Discutons du serveur de découverte Eureka
C’est le serveur Eureka, et pour cela, nous devons inclure une dépendance Eureka dans le projet. Voici le pom.xml pour le serveur de découverte Eureka.
De plus, nous devons mettre à jour le fichier de propriétés de ce projet pour indiquer que c’est un serveur de découverte et non un client.
eureka.instance.hostname=localhosteureka.client.register-with-eureka=falseeureka.client.fetch-registry=false
Pour lier l’application de découverte à un port spécifique et nommer l’application, nous devons ajouter ce qui suit, également:
server.port=8000spring.application.name=DiscoveryServer
Une dernière chose à faire est d’annoter l’application Spring Boot pour l’activer comme un serveur Eureka. Pour ce faire, nous devons ajouter @EnableEurekaServer
.
Démarrer l’application, nous verrons une interface utilisateur fournie par Eureka pour lister tous les serveurs qui s’enregistrent. Mais, à ce stade, nous n’en avons aucun !
Maintenant, ajoutons quelques microservices à l’écosystème et enregistrons-les au serveur de découverte. Pour cela, nous devons également ajouter les dépendances requises dans chaque service et les enregistrer auprès du serveur. Nous verrons comment dans les détails ci-dessous.
J’ai créé trois microservices simples (microservice1, microservice2, microservice3) avec Spring Boot et chacun fonctionnant sur son propre port (8002, 8003 et 8004).
En tant que client, il doit s’enregistrer auprès du serveur, et cela se passe dans le fichier de propriétés, comme ci-dessous.
L’application principale sera annotée avec @EnableEurekaClient
dans chaque microservice.
Démarrez cette application pour qu’elle s’exécute sur le port 8004 et elle s’enregistrera automatiquement auprès du serveur de découverte. De manière similaire, j’ai créé deux autres microservices et je les ai enregistrés sur le serveur de découverte.
Nous pouvons voir que trois serveurs sont en cours d’exécution dans l’écosystème et nous pouvons surveiller l’état de ces serveurs, aussi.
Cela facilite la surveillance de tous les serveurs et de leurs répliques dans le cas où nous utilisons un équilibreur de charge.
J’espère que cela vous aidera à commencer à utiliser le serveur et les clients Discovery en utilisant Eureka.