[Microservizi con Spring Boot] Un registry server con Eureka

In questo appuntamento iniziale dedicato allo sviluppo di microservizi con Spring Boot ci occuperemo del primo componente dell’architettura, ovvero del registry server o naming server. Su alcuni testi o in Rete si parla anche di discovery server.

Indipendentemente dalla terminologia utilizzata il concetto alla base è alquanto semplice: in un’architettura a microservizi è necessario sapere quali di essi siano attivi e come possano essere contattati.

Come vedremo in questo caso e successivamente sono molti i tool in Java messi a disposizione da Netflix per risolvere le problematiche tipiche di tale architettura.

Sì, stiamo proprio parlando della nota piattaforma di web streaming che allo stesso tempo è molto attiva nell’ambito open source.

Chi fosse interessato può seguire il loro blog in inglese.

Senza perderci in troppe chiacchiere vediamo di metterci all’opera.

Impostiamo un nuovo progetto Spring Boot sfruttando una delle modalità descritte in un precedente articolo.  In questo caso e nei prossimi appuntamenti faremo sempre riferimento a Spring Initializr.

L’unica dipendenza richiesta è Eureka Server.

A questo punto non dobbiamo fare altro che aggiungere l’annotazione @EnableEurekaServer nella classe contenente il main dell’applicazione, ossia quella annotata con @SpringBootApplication.

Non ci serve altro sul fronte Java.

Al contrario andiamo ad inserire nel file application.properties le seguenti proprietà

spring.application.name: eureka-server
server.port: 8761
eureka.client.registerWithEureka: false
eureka.client.fetchRegistry: false

In alternativa si può creare un file application.yml ed inserire le stesse proprietà nel formato YAML facendo attenzione all’indentatura richiesta. Vedi esempio.

Abbiamo lasciato la porta di default 8761 e disabilitato la registrazione presso lo stesso server Eureka che non avrebbe senso. Vedremo che al contrario i microservizi dovranno registrarsi per essere rilevati.

Ora basta compilare ed eseguire l’applicazione come abbiamo sempre fatto con Spring Boot.

Puntiamo il browser all’indirizzo http://localhost:8761 e voilà!

eureka-server

La console mostra tutte le informazioni sull’istanza in esecuzione, le eventuali repliche disponibili e tutti i microservizi registrati (nessuno in questo caso).

In aggiunta vediamo come creare un’immagine Docker di tutto. Questa soluzione si rivelerà molto utile in produzione quando avremo bisogno di scalare le varie componenti del sistema che andremo a progettare.

Procediamo con la creazione dell’immagine Docker sulla nostra macchina.

Dopo esserci posizionati nella cartella contenente il Dockerfile digitiamo

docker build eureka-naming-server:latest .

eureka-creazione-immagine-docker

Dopo pochi secondi l’immagine è pronta all’uso.

Possiamo fare una verifica richiamando la lista delle immagini disponibili localmente con

docker images

docker-lista-immagini

In alternativa possiamo consultare l’opportuna pagina di Portainer (se installato).

portainer-eureka

Per ora è tutto.

Il suggerimento è di riprodurre il progetto passo dopo passo in modo da fare pratica e rendersi conto di tutti i vari aspetti.

Ad ogni modo il codice di questo esempio e delle successive lezioni è disponibile su GitHub.

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Utilizzando il sito, accetti l'invio dei cookies da parte nostra. Maggiori informazioni

Questo sito utilizza i cookies per fornire la migliore esperienza di navigazione possibile. Continuando ad utilizzarlo senza modificare le impostazioni o cliccando su "Accetta" acconsenti al loro utilizzo.

Chiudi