I overskriften så vi tre buzzwords:

  1. Microservices
  2. Netflix Eureka
  3. Discovery (Registry)

Hvad er en microservice?

Med enkle ord er microservice(s) klynger af små applikationer, der arbejder sammen i koordination for at levere en komplet løsning.

Når vi siger en masse små applikationer, der kører uafhængigt sammen, så vil de alle have deres egne URL’er og porte. I det scenarie ville det være meget besværligt at vedligeholde alle disse mikrotjenester til at køre synkront og endnu vigtigere, med overvågning. Dette problem vil blive mangedoblet, når vi begynder at implementere load balancers.

For at løse dette problem har vi brug for et værktøj, der overvåger og vedligeholder registret for alle mikrotjenesterne i økosystemet.

Hvad er Netflix Eureka?

Dette er et værktøj, der leveres af Netflix for at give en løsning på ovenstående problem. Det består af Eureka-serveren og Eureka-klienter. Eureka Server er i sig selv en mikroservice, som alle andre mikroservices registrerer sig til. Eureka-klienter er de uafhængige mikrotjenester. Vi vil se, hvordan dette kan konfigureres i et mikroserviceøkosystem.

Jeg vil bruge Spring Boot til at oprette et par mikrotjenester, der skal fungere som Eureka-klienter, og en Discovery Server, der skal være en Eureka Server. Her er den komplette projektstruktur:

microservice1

Lad os diskutere Eureka Discovery Server

Dette er Eureka Server, og til det skal vi inkludere en Eureka-afhængighed i projektet. Nedenfor er pom.xml for Eureka Discovery Server.

microService2

Det er også nødvendigt at opdatere egenskabsfilen for dette projekt for at angive, at det er en discovery-server og ikke en klient.

eureka.instance.hostname=localhosteureka.client.register-with-eureka=falseeureka.client.fetch-registry=false

For at binde discovery-applikationen til en bestemt port og navngive applikationen skal vi også tilføje følgende:

server.port=8000spring.application.name=DiscoveryServer

microService3

En sidste ting at gøre er at annotere Spring Boot-applikationen for at aktivere denne som en Eureka-server. For at gøre dette skal vi tilføje @EnableEurekaServer .

microService4

Start programmet op vil vi se en brugergrænseflade leveret af Eureka til at liste alle de servere, der bliver registreret. Men på dette tidspunkt har vi ingen!

microService5

Nu skal vi tilføje et par microservices til økosystemet og registrere dem til discovery-serveren. I den forbindelse skal vi også tilføje de afhængigheder, der er nødvendige i hver tjeneste, og registrere dem på serveren. Vi vil se hvordan i detaljerne nedenfor.

Jeg har oprettet tre enkle mikrotjenester (microservice1, microservice2, microservice3) med Spring Boot, og hver enkelt kører på sin egen port (8002, 8003 og 8004).

microService6

Som klient skal den registrere sig selv på serveren, og det sker i egenskabsfilen, som nedenfor.

microService7

Hovedapplikationen vil blive annoteret med @EnableEurekaClient i hver microservice.

microService8

Start denne applikation op til at køre på port 8004, og den vil automatisk registrere sig selv til discovery-serveren. På samme måde har jeg oprettet yderligere to mikrotjenester og registreret dem på discovery-serveren.

microService9

Vi kan se, at der kører tre servere i økosystemet, og vi kan også overvåge status for disse servere.

Dette letter overvågningen af alle servere og deres replikker, hvis vi bruger en load balancer.

Jeg håber, at dette vil hjælpe dig med at komme i gang med at bruge Discovery Server og klienter ved hjælp af Eureka.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.