Nel titolo, abbiamo visto tre parole d’ordine:

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

Che cos’è un microservice?

In parole semplici, i microservizi sono cluster di piccole applicazioni che lavorano insieme in coordinamento per fornire una soluzione completa.

Quando diciamo tante piccole applicazioni che funzionano insieme in modo indipendente, allora avranno tutte i loro URL e porte. In questo scenario, sarebbe molto ingombrante mantenere tutti questi microservizi in esecuzione in sincronia e, soprattutto, con il monitoraggio. Questo problema aumenterà notevolmente quando inizieremo a implementare i bilanciatori di carico.

Per risolvere questo problema, abbiamo bisogno di uno strumento che monitorizzi e mantenga il registro di tutti i microservizi nell’ecosistema.

Che cos’è Netflix Eureka?

È uno strumento fornito da Netflix per fornire una soluzione al problema di cui sopra. È composto dal server Eureka e dai client Eureka. Eureka Server è di per sé un microservizio a cui tutti gli altri microservizi si registrano. Gli Eureka Client sono i microservizi indipendenti. Vedremo come configurare questo in un ecosistema di microservizi.

Io userò Spring Boot per creare alcuni microservizi che agiranno come Eureka Clients e un Discovery Server che sarà un Eureka Server. Ecco la struttura completa del progetto:

microservice1

Discutiamo l’Eureka Discovery Server

Questo è l’Eureka Server, e per questo, dobbiamo includere una dipendenza Eureka nel progetto. Di seguito il pom.xml per Eureka Discovery Server.

microService2

Inoltre, dobbiamo aggiornare il file delle proprietà di questo progetto per indicare che è un discovery server e non un client.

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

Per vincolare l’applicazione di scoperta a una porta specifica e dare un nome all’applicazione, dobbiamo aggiungere anche quanto segue:

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

microService3

Un’ultima cosa da fare è annotare l’applicazione Spring Boot per abilitarla come server Eureka. Per farlo, dobbiamo aggiungere @EnableEurekaServer .

microService4

Avviando l’applicazione vedremo una UI fornita da Eureka per elencare tutti i server che vengono registrati. Ma, a questo punto, non ne abbiamo nessuno!

microService5

Ora, aggiungiamo qualche microservizio all’ecosistema e registriamolo al discovery server. Per questo, dobbiamo anche aggiungere le dipendenze richieste in ogni servizio e registrarle al server. Vedremo come nei dettagli qui sotto.

Ho creato tre semplici microservizi (microservice1, microservice2, microservice3) con Spring Boot e ognuno in esecuzione sulla propria porta (8002, 8003 e 8004).

microService6

Come client, dovrebbe registrarsi al server, e questo avviene nel file delle proprietà, come sotto.

microService7

L’applicazione principale sarà annotata con @EnableEurekaClient in ogni microservizio.

microService8

Avvia questa applicazione per farla girare sulla porta 8004 e si registrerà automaticamente al discovery server. In modo simile, ho creato altri due microservizi e li ho registrati sul discovery server.

microService9

Possiamo vedere che tre server sono in esecuzione nell’ecosistema e possiamo monitorare lo stato anche di questi server.

Questo facilita il monitoraggio di tutti i server e delle loro repliche nel caso in cui stiamo usando un bilanciatore di carico.

Spero che questo vi aiuti ad iniziare ad usare Discovery Server e i client usando Eureka.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.