Cos'è un Message Broker?

Il modo in cui le applicazioni comunicano tra loro rappresenta una sfida sempre crescente. L'uso del middleware di messaggistica semplifica questa sfida e consente un'infrastruttura di comunicazione comune che cresce e scala per soddisfare le condizioni più impegnative. Tuttavia, la comunicazione può avvenire in molte forme diverse e il modo in cui il middleware di messaggistica fornisce la comunicazione non è diverso.

Diagramma del Message Broker

Un metodo di comunicazione usato dal middleware di messaggistica è un modello basato sul server che si avvale di un message broker. Con un message broker, l'applicazione sorgente (produttore) invia un messaggio a un processo server che può fornire il marshalling dei dati, il routing, la traduzione dei messaggi, la persistenza e la consegna a tutte le destinazioni opportune (consumatori). La caratteristica distintiva di un message broker è che il broker stesso è un servizio separato. I produttori e i consumatori comunicano con il broker mediante protocolli standard o proprietari. Il message broker fornisce solitamente tutta la gestione dello stato e il tracciamento dei clienti in modo che le singole applicazioni non debbano assumersi questa responsabilità e la complessità della consegna dei messaggi è incorporata nel message broker stesso.

Ci sono due forme fondamentali di comunicazione con un message broker:

  • Publish and Subscribe (Argomenti)
  • Punto a punto (code)
Scegliere tra Kafka, Pulsar e altre tecnologie di messaggistica
Scegliere tra Kafka, Pulsar e altre tecnologie di messaggistica
Come scegliere la tecnologia di messaggistica giusta per il tuo business? Leggi il nostro ultimo whitepaper per saperne di più.

Messaggistica Publish and Subscribe

In un sistema di messaggi publish and subscribe, i produttori inviano messaggi su un argomento. In questo modello, il produttore è noto come publisher e il consumatore è noto come subscriber. Uno o molti publisher possono pubblicare sullo stesso argomento, e un messaggio da uno o molti publisher può essere ricevuto da molti subscriber. I subscriber si abbonano agli argomenti, e tutti i messaggi pubblicati sull'argomento sono ricevuti da tutti i subscriber dell'argomento. Questo modello prevede un semplice invio orientato all'interesse in base a quali argomenti vengono sottoscritti dalle applicazioni.

Comunicazione punto a punto

La comunicazione punto a punto nella sua versione più semplice prevede un produttore e un consumatore. Questo stile di messaggistica utilizza generalmente una coda per memorizzare i messaggi inviati dal produttore fino a quando non vengono ricevuti dal consumatore. Il produttore del messaggio invia il messaggio alla coda; il consumatore del messaggio recupera i messaggi dalla coda e invia una conferma che il messaggio è stato ricevuto. Più di un produttore può inviare messaggi alla stessa coda, e più di un consumatore può recuperare messaggi dalla stessa coda. Quando vengono usati più consumatori, ogni consumatore riceve in genere una porzione del flusso di messaggi per consentire l'elaborazione simultanea.

Message Broker basati su server

I message broker basati su server presentano molti vantaggi, tra cui l'elaborazione centralizzata, la distribuzione centralizzata dei messaggi e la persistenza centralizzata dei dati. Gli esempi includono molti message broker proprietari, implementazioni Java Message Service (JMS) e prodotti open source come Apache Kafka, Apache Pulsar ed Eclipse Mosquitto.

In alcuni casi è necessario un modello di comunicazione decentralizzato. Questo approccio "Brokerless" o peer-to-peer fornisce generalmente un meccanismo per supportare la comunicazione diretta tra le applicazioni per i casi d'uso in cui è richiesta una latenza molto bassa.