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:
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: