Corsi » Sistemi distribuiti » 2019/2020 » Progetti » Una piattaforma di streaming distribuito: analisi della tecnologia Apache Kafka

Una piattaforma di streaming distribuito: analisi della tecnologia Apache Kafka

Autori

  • Andrea Betti
  • Alessandro Oliva

Sommario

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.

Materiali