Apache Kafka: sistema di messaggistica distribuita di nuova generazione

Apache Kafka fornisce un throughput elevato e sistemi di messaggistica scalabili che lo rendono popolare nell'analisi in tempo reale. Scopri come un tutorial di Apache kafka può aiutarti

Nel mondo di oggi, i dati sono l'ingrediente principale delle applicazioni Internet e in genere comprende quanto segue:





  • Visite e clic sulla pagina
  • Attività dell'utente
  • Eventi corrispondenti agli accessi
  • Attività di social networking come Mi piace, condivisioni e commenti
  • Metriche specifiche dell'applicazione (ad es. Registri, tempo di caricamento della pagina, prestazioni ecc.)

Questo i dati possono essere utilizzati per eseguire analisi in tempo reale servire a vari scopi, alcuni dei quali sono:

  • Consegna di annunci pubblicitari
  • Monitoraggio dei comportamenti anomali degli utenti
  • Visualizzazione della ricerca in base alla pertinenza
  • Visualizzazione di consigli basati su attività precedenti

Problema: La raccolta di tutti i dati non è facile in quanto i dati vengono generati da varie fonti in diversi formati



Soluzione: Uno dei modi per risolvere questo problema è utilizzare un sistema di messaggistica. I sistemi di messaggistica forniscono una perfetta integrazione tra le applicazioni distribuite con l'aiuto dei messaggi.

apache-kafka-next-generation-distributed-messaging-system

Apache Kafka:



Apache Kafka è un sistema di messaggistica di sottoscrizione e pubblicazione distribuito che è stato originariamente sviluppato su LinkedIn e in seguito è diventato parte del progetto Apache. Kafka è veloce, agile, scalabile e distribuito in base alla progettazione.

Architettura e terminologia di Kafka:

Argomento: Un flusso di messaggi appartenenti a una particolare categoria è chiamato argomento

Produttore: Un produttore può essere qualsiasi applicazione in grado di pubblicare messaggi su un argomento

Consumatore: Un consumatore può essere qualsiasi applicazione che sottoscrive gli argomenti e consuma i messaggi

Broker: Il cluster Kafka è un insieme di server, ognuno dei quali è chiamato broker

Kafka è scalabile e consente la creazione di più tipi di cluster.

  • Cluster a singolo nodo a broker singolo
  • Cluster di broker multipli a nodo singolo
  • Multiple Node Multiple Broker Cluster

Single Node Single Broker

Qual è il ruolo di ZooKeeper?

Ogni broker Kafka si coordina con altri broker Kafka utilizzando ZooKeeper. Produttori e consumatori vengono informati dal servizio ZooKeeper della presenza di nuovi broker o del guasto del broker nel sistema Kafka.

Broker multipli a nodo singolo

Più nodi Più broker

Kafka @ LinkedIn

LinkedIn Newsfeed è alimentato da Kafka

I consigli di LinkedIn sono forniti da Kafka

Le notifiche di LinkedIn sono fornite da Kafka

Nota: Oltre a questo, LinkedIn utilizza Kafka per molte altre attività come il monitoraggio dei log, le metriche delle prestazioni, il miglioramento della ricerca, tra gli altri.

Chi altro usa Kafka?

DataSift: DataSift utilizza Kafka come raccoglitore di eventi di monitoraggio e per monitorare il consumo di flussi di dati da parte degli utenti in tempo reale

Wooga: Wooga utilizza Kafka per aggregare ed elaborare i dati di tracciamento da tutti i loro giochi di Facebook (ospitati presso vari fornitori) in una posizione centrale

leggere il file xml nell'esempio java

Spugnetta: Spongecell utilizza Kafka per eseguire l'intera pipeline di analisi e monitoraggio che gestisce sia applicazioni in tempo reale che ETL

Loggly: Loggly è la gestione dei log basata su cloud più popolare al mondo. Utilizza Kafka per la raccolta dei registri.

Studio comparativo: Kafka vs. ActiveMQ vs. RabbitMQ

Kafka ha un formato di archiviazione più efficiente: in media, ogni messaggio ha un overhead di 9 byte in Kafka, contro i 144 byte in ActiveMQ

Sia in ActiveMQ che in RabbitMQ, i broker mantengono lo stato di consegna di ogni messaggio scrivendo su disco ma, nel caso di Kafka, non c'è scrittura su disco, rendendolo quindi più veloce.

Con l'ampia adozione di Kafka nella produzione, sembra essere una soluzione promettente per risolvere i problemi del mondo reale. La formazione su Apache Kafka può aiutarti ad anticipare i tuoi colleghi in una carriera di analisi in tempo reale. Inizia con un tutorial su Apache Kafka Qui .

Hai domande per noi? Per favore menzionalo nella sezione commenti e ti risponderemo.

Post correlati:

Cosa ti serve per una carriera in Real-Time Analytics