🎉 Il Necronomicon è stato aggiornato alla versione 2.0.0 🎉
Microservizi
Comunicazione dei Microservizi

Comunicazione dei microservizi

Una volta che i microservizi sono stati creati bisogna decidere in che modo farli comunicare tra loro.

Data l’incosapevolezza reciproca dei microservizi nonostante la loro necessità di cooperare per riuscire a far funzionare correttamente il software è necessario che esista una modalità di comunicazione agnostica (che quindi sia independente dal linguaggio di programmazione utilizzato).

Questo ci permette di sviluppare la metodologia di comunicazione anche successivamente alla creazione delle funzionalità dei microservizi

Tipi di comunicazione

Esistono due tipi di comunicazione possibili tra i microservizi:

Sincrona

La comunicazione sincrona è quella in cui il chiamante attende la risposta del chiamato.

Un esempio di protocollo sincrono è l'HTTP dove il chiamante invia una richiesta e attende la risposta.

Un caso d'uso per questo tipo di comunicazione è un eventuale login, in cui è necessario attendere che il chiamato (il server di autenticazione) risponda con un token di autenticazione.

Esempio:

Sync communication

  1. Il client invia una richiesta al backend contattando l'API gateway
  2. l'API gateway riceve la richiesta e la inoltra al microservizio corretto
  3. Il microservizio elabora la richiesta e risponde all'API gateway
  4. L'API gateway inoltra la risposta al client

Asincrona

La comuncicazione asincrona è quella in cui il chiamante non attende la risposta del chiamato. Un esempio di protocollo asincrono è l'AMQP dove il chiamante invia una richiesta e non attende la risposta.

Questo tipo di comunicazione è utile per eseguire operazioni che non richiedono una risposta immediata, come ad esempio l'invio di una mail. Inoltre è la modalità che corrisponde e segue maggiormente le linee guida dei microservizi data la migliore scalabilità e la maggiore indipendenza dei servizi.

Esempio:

Async communication

  1. Il client invia una richiesta al backend contattando l'API gateway
  2. l'API gateway riceve la richiesta e la inoltra al microservizio corretto
  3. Il microservizio elabora la richiesta, risponde all'API gateway e invia un messaggio al message broker (diventando il producer del messaggio)
  4. Il message broker invia il messaggio ai microservizi che si sono registrati come consumer del messaggio mentre l'API gateway risponde al client