Andrea Betti
• Alessandro Oliva
abstract
La crescita dei servizi che fanno uso di comunicazione real-time ha portato all’introduzione di architetture che permettono la trasmissione di informazioni affidabili in tempi ragionevoli. La complessità di sistemi point-to-point, essendo determinata dalla quantità dei canali di comunicazione tra i nodi, risulterebbe eccessivamente alta in presenza di enormi moli di dati e processi. Per questo motivo, sono state introdotte architetture che fanno uso di broker, componenti che coordinano la comunicazione tra chi invia e riceve messaggi.
Apache Kafka, implementando una logica publish/subscribe, si propone come mezzo di comunicazione tra client, che può essere visto come un event log distribuito dove i messaggi vengono memorizzati su disco, rendendolo un ibrido tra un sistema di messaggistica istantanea e un database.
Gli elementi primari di questa tecnologia sono il cluster, i producer e i consumer. Il cluster contiene diversi broker, che hanno il compito di ricevere messaggi dai producer, e rispondere alle fetch request dei consumer con i messaggi di cui dispone, secondo determinate logiche. Questa architettura permette un’alta versatilità del sistema, che può avere molteplici applicazioni diverse.
outcomes