[Microservizi con Spring Boot] Il primo microservizio

Nel precedente articolo abbiamo predisposto un server Eureka.

Ora vedremo come creare lo scheletro di un microservizio.

L’applicazione non farà assolutamente nulla di particolare, ma ci servirà per capire come ci si registra presso il naming server Eureka e come quest’ultimo sia in grado di tenere traccia di tutti i microservizi attivi.

N.B. Nel momento in cui scrivo c’è un problema con la versione 2.0 di Spring Boot che impedisce la compilazione del progetto per cui ho optato per la versione 1.5.19.

Come sempre ci serviamo di Spring Initializr (che ora dispone di una nuova interfaccia grafica) per generare in automatico il progetto di base specificando come dipendenze Eureka Discovery e Actuator.

Dopo aver importato il progetto nel nostro IDE come al solito procediamo con due semplicissime impostazioni.

Nella classe MicroserviceDemoApplication dobbiamo aggiungere l’annotazione @EnableEurekaClient che compie la magia, ovvero consente al client di registrarsi presso il naming server Eureka di cui occorre specificare l’indirizzo nel file application.yml che andremo a creare nella cartella resources.

Specifichiamo il nome da dare all’applicazione, la porta da assegnare (impostando 0 come in questo caso sarà assegnata automaticamente ad ogni riavvio) e per l’appunto l’URL del server Eureka.

La configurazione è ridotta all’osso proprio per comprendere quali siano gli elementi essenziali da considerare. Ci sono molte altre opzioni che per ora possiamo ignorare.

Il file completo è su GitHub.

Ritorniamo per un attimo sull’assegnazione automatica della porta: il vantaggio è evidente perchè ci permette di avviare più istanze del microservizio evitando i noiosi conflitti di “porta già in uso”. Ovviamente non sapremo più a priori quale sia la porta da contattare se non guardando i log in fase di avvio, ma non ci importa perchè le richieste saranno gestite direttamente da Eureka.

Dopo aver compilato il progetto siamo pronti per un test.

Prima di tutto avviamo il server Eureka e poi due istanze del microservizio.

In pochi minuti tutto è pronto e funzionante.

Come possiamo vedere nell’immagine il microservizio si è registrato presso il server Eureka e quest’ultimo conosce l’indirizzo ip a cui risponde.

microservice-eureka

Avviando più istanze queste si registreranno presso Eureka e il server sarà in grado di bilanciare tra di loro le richieste provenienti dagli utenti.

Vedremo in seguito quali sono le strategie utilizzate al riguardo.

Ciascun microservizio invia periodicamente un heartbeat verso Eureka in modo da notificare la propria “esistenza”. In mancanza di comunicazioni il server provvederà a rimuoverlo dal registro.

Facendo click su una delle istanze elencate possiamo visualizzare la porta assegnata e richiamare il servizio.

microservice1

Per ora è tutto. Non ci resta che sperimentare sul campo.

 

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