I rubriken såg vi tre modeord:

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

Vad är en Microservice?

Med enkla ord är mikrotjänst(er) kluster av små applikationer som arbetar tillsammans i samordning för att tillhandahålla en komplett lösning.

När vi säger en massa små applikationer som körs oberoende av varandra tillsammans, kommer de alla att ha sina egna URL:er och portar. I det scenariot skulle det vara mycket besvärligt att underhålla alla dessa mikrotjänster så att de körs synkroniserat, och ännu viktigare, med övervakning. Det här problemet kommer att öka mångdubbelt när vi börjar implementera lastutjämnare.

För att lösa det här problemet behöver vi ett verktyg som övervakar och underhåller registret för alla mikrotjänster i ekosystemet.

Vad är Netflix Eureka?

Det här är ett verktyg som tillhandahålls av Netflix för att ge en lösning på ovanstående problem. Det består av Eureka-servern och Eureka-klienter. Eureka Server är i sig själv en mikrotjänst till vilken alla andra mikrotjänster registreras. Eureka-klienterna är de oberoende mikrotjänsterna. Vi kommer att se hur man konfigurerar detta i ett ekosystem av mikrotjänster.

Jag kommer att använda Spring Boot för att skapa några mikrotjänster som kommer att fungera som Eureka-klienter och en Discovery Server som kommer att vara en Eureka Server. Här är hela projektstrukturen:

microservice1

Låt oss diskutera Eureka Discovery Server

Detta är Eureka Server, och för det måste vi inkludera ett Eureka-beroende i projektet. Nedan finns pom.xml för Eureka Discovery Server.

microService2

Och vi måste uppdatera egenskapsfilen för det här projektet för att ange att det är en discovery server och inte en klient.

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

För att binda upptäcktsapplikationen till en specifik port och namnge applikationen måste vi också lägga till följande:

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

microService3

En sista sak att göra är att annotera Spring Boot-applikationen för att aktivera den här som en Eureka Server. För att göra det måste vi lägga till @EnableEurekaServer .

microService4

Startar vi upp programmet kommer vi att se ett användargränssnitt som tillhandahålls av Eureka för att lista alla servrar som registrerats. Men just nu har vi ingen!

microService5

Nu ska vi lägga till några mikrotjänster i ekosystemet och registrera dem på discovery-servern. För detta måste vi också lägga till de beroenden som krävs i varje tjänst och registrera dem på servern. Vi kommer att se hur i detaljerna nedan.

Jag har skapat tre enkla mikrotjänster (microservice1, microservice2, microservice3) med Spring Boot och var och en körs på sin egen port (8002, 8003 och 8004).

microService6

Som klient ska den registrera sig själv till servern, och det sker i egenskapsfilen, enligt nedan.

microService7

Huvudprogrammet kommer att annoteras med @EnableEurekaClient i varje mikroservice.

microService8

Starta upp det här programmet så att det körs på port 8004 och det kommer automatiskt att registrera sig själv till discovery-servern. På liknande sätt har jag skapat ytterligare två mikrotjänster och registrerat dem på discovery-servern.

microService9

Vi kan se att tre servrar körs i ekosystemet och vi kan övervaka statusen för dessa servrar också.

Detta underlättar övervakningen av alla servrar och deras repliker om vi använder en lastutjämnare.

Jag hoppas att det här hjälper dig att komma igång med att använda Discovery Server och Clients med Eureka.

Lämna ett svar

Din e-postadress kommer inte publiceras.