2016-05-17 24 views
7

Vorrei chiedere se la mia comprensione di Kafka è corretta.Per che cosa usi Apache Kafka?

Per flussi di dati veramente grandi, i database convenzionali non sono adeguati, quindi le persone usano cose come Hadoop o Storm. Kafka si trova in cima a questi database e fornisce ... indicazioni su dove dovrebbero andare i dati in tempo reale?

+0

Letture consigliate: http://www.confluent.io/blog/stream-data-platform-1/ e http://www.confluent.io/blog/stream-data-platform-2/ e https: //engineering.linkedin.com/blog/topic/kafka –

risposta

8

Non credo.

Kafka è il sistema di messaggistica e non si siede in cima alla banca dati.

È possibile confrontare Kafka con i sistemi di messaggistica come ActiveMQ, RabbitMQ ecc

Da Apache documentazione page

Kafka è un distribuita, partizionato, replicato commettere servizio di registrazione. Fornisce la funzionalità di un sistema di messaggistica, ma con un design unico.

takeaway chiave:

  1. Kafka mantiene i feed di messaggi in categorie denominate argomenti.
  2. Chiameremo i processi che pubblicano messaggi a un produttore di argomenti di Kafka.
  3. La chiameremo processi che sottoscrivono temi ed elaborare il feed di messaggi pubblicati consumatori ..
  4. Kafka è gestito come un gruppo costituito da uno o più server, ciascuno dei quali è chiamato un broker.

enter image description here

comunicazione tra i client ei server è fatto con un semplice, ad alte prestazioni, la lingua agnostico protocollo TCP.

Casi d'uso:

  1. messaggistica: Kafka funziona bene come un sostituto per un message broker più tradizionale.In questo campo Kafka è paragonabile ai sistemi di messaggistica tradizionali come ActiveMQ o RabbitMQ
  2. Activity Tracking Sito web: Il caso d'uso originale per Kafka è stato quello di essere in grado di ricostruire un'attività degli utenti di monitoraggio condotta come un insieme di real-time publish iscriviti feed
  3. Metrics: Kafka è spesso usato per i dati di monitoraggio operativo, che coinvolge le statistiche aggregando da applicazioni distribuite per la produzione di mangimi centralizzati di dati operativi
  4. Log aggregazione
  5. Elaborazione stream
  6. Origine evento è uno stile di progettazione dell'applicazione in cui le modifiche di stato vengono registrate come sequenza di record ordinata per tempo.
  7. Registro di commit: Kafka può servire come una sorta di commit-log esterno per un sistema distribuito. Il registro consente di replicare i dati tra i nodi e agisce come un meccanismo di ri-sincronizzazione per i nodi è riuscito a ripristinare i loro dati
+0

Mi spiace, ma non capisco perché abbiamo Kafa per il compito apparentemente come la comunicazione tra server e client? –

+0

Per fornire un accoppiamento lento tra due diversi servizi/sistemi aziendali. I servizi mittente e ricevitore sono strettamente collegati tramite l'integrazione della messaggistica. Visita questo link: enterpriseintegrationpatterns.com e enterpriseintegrationpatterns.com/patterns/messaging –

3

Per comprendere appieno Apache Kafka ruolo che si dovrebbe ottenere un'immagine più ampia e sanno Kafka casi d'uso. I moderni sistemi di elaborazione dati cercano di rompere con l'architettura classica dell'applicazione. Si può iniziare modulo Panoramica dell'architettura kappa:

In questa architettura non conservare corrente world state in qualsiasi database SQL o valore-chiave. Tutti i dati vengono elaborati e archiviati come serie di eventi in un registro immutabile solo per le append. Gli eventi immutabili sono più facili da replicare e archiviare in un ambiente distribuito. Apache Kafka è un elemento che interroga e memorizza questi eventi tra altri componenti del sistema.

2

I casi d'uso sul sito ufficiale di Apache Kafka: http://kafka.apache.org/documentation.html#uses

altri casi d'uso: -

Kafka-Storm Pipeline - Kafka può essere utilizzato con Apache tempesta di gestire pipeline dei dati per il filtraggio ad alta velocità e abbinamento di modelli al volo.

Problemi correlati