În titlu, am văzut trei cuvinte la modă:
- Microservicii
- Netflix Eureka
- Descoperire (Registru)
Ce este un microserviciu?
În cuvinte simple, microserviciile sunt grupuri de aplicații mici care lucrează împreună în coordonare pentru a oferi o soluție completă.
Când spunem o mulțime de aplicații mici care rulează independent împreună, atunci toate vor avea propriile lor URL-uri și porturi. În acest scenariu, ar fi foarte greoi să menținem toate aceste microservicii să funcționeze în sincronizare și, mai ales, cu monitorizare. Această problemă va crește de mai multe ori atunci când vom începe să implementăm load balancers.
Pentru a rezolva această problemă, avem nevoie de un instrument care să monitorizeze și să mențină registrul tuturor microserviciilor din ecosistem.
Ce este Netflix Eureka?
Este un instrument furnizat de Netflix pentru a oferi o soluție la problema de mai sus. Este format din serverul Eureka și clienții Eureka. Serverul Eureka este în sine un microserviciu la care se înregistrează toate celelalte microservicii. Clienții Eureka sunt microserviciile independente. Vom vedea cum să configurăm acest lucru într-un ecosistem de microservicii.
Voi folosi Spring Boot pentru a crea câteva microservicii care vor acționa ca Eureka Clients și un Discovery Server care va fi un Eureka Server. Iată structura completă a proiectului:
Să discutăm despre Eureka Discovery Server
Acesta este Eureka Server, iar pentru aceasta trebuie să includem o dependență Eureka în proiect. Mai jos este pom.xml pentru Eureka Discovery Server.
De asemenea, trebuie să actualizăm fișierul de proprietăți pentru acest proiect pentru a indica faptul că este un server de descoperire și nu un client.
eureka.instance.hostname=localhosteureka.client.register-with-eureka=falseeureka.client.fetch-registry=false
Pentru a lega aplicația de descoperire la un port specific și pentru a da un nume aplicației, trebuie să adăugăm și următoarele:
server.port=8000spring.application.name=DiscoveryServer
Un ultim lucru de făcut este să adnotăm aplicația Spring Boot pentru a o activa ca server Eureka. Pentru a face acest lucru, trebuie să adăugăm @EnableEurekaServer
.
La pornirea aplicației vom vedea o interfață de utilizare furnizată de Eureka pentru a lista toate serverele care sunt înregistrate. Dar, în acest moment, nu avem niciunul!
Acum, să adăugăm câteva microservicii în ecosistem și să le înregistrăm la serverul de descoperire. Pentru aceasta, trebuie, de asemenea, să adăugăm dependențele necesare în fiecare serviciu și să le înregistrăm la server. Vom vedea cum în detaliile de mai jos.
Am creat trei microservicii simple (microserviciu1, microserviciu2, microserviciu3) cu Spring Boot și fiecare dintre ele rulează pe propriul port (8002, 8003 și 8004).
Ca client, acesta ar trebui să se înregistreze la server, iar acest lucru se întâmplă în fișierul de proprietăți, ca mai jos.
Aplicația principală va fi adnotată cu @EnableEurekaClient
în fiecare microserviciu.
Arborați această aplicație pentru a rula pe portul 8004 și se va înregistra automat la serverul de descoperire. Într-o manieră similară, am creat încă două microservicii și le-am înregistrat pe serverul de descoperire.
Vezi că trei servere rulează în ecosistem și putem monitoriza și starea acestor servere.
Acest lucru ușurează monitorizarea tuturor serverelor și a replicilor acestora în cazul în care folosim un load balancer.
Sper că acest lucru vă va ajuta să începeți să folosiți Discovery Server și Clienți folosind Eureka.
.