A partire da Apache Kafka

Pubblicato il

(13 giugno 2019)

Cosè Apache Kafka?

Apache Kafka è una piattaforma di messaggistica di sola aggiunta basata su pubblicazione-sottoscrizione distribuita originariamente sviluppato da LinkedIn e successivamente donato a Apache Foundation .

(* Limmagine è per labbellimento)

Casi duso

  • Messaggistica
  • Aggregazione log
  • Elaborazione flusso
  • Log commit
  • Sourcing eventi ecc

Come funziona?

Kafka funziona nel modello pub-sub. Quindi ci sarà un consumatore / gruppo di consumatori e un editore.

Il produttore pubblicherà i dati su un argomento specifico e il consumatore iscritto allargomento consumerà i dati. Più produttori potrebbero pubblicare sullo stesso argomento, ma solo un consumatore alla volta è in grado di consumare i dati di un argomento.

Ora puoi chiedere se solo uno il consumatore può consumare da un argomento alla volta e se ci sono migliaia di eventi in arrivo come li ridimensioniamo?

Va ​​bene. In tal caso, possiamo suddividere largomento in partizioni per ottenere la scalabilità.

Quando eseguiamo la partizione dellargomento, ogni messaggio nella partizione ha un offset\_id / message\_id. Nellimmagine di sinistra abbiamo realizzato 3 partizioni e ogni produttore invierà un evento a una partizione specifica. E il consumatore leggerà da una partizione specifica. Ora se abbiamo 300 eventi / sec da inviare, sarà diviso in 3, quindi ogni partizione avrà 100 messaggi / sec. In questo modo, possiamo ottenere il bilanciamento del carico. Quando eseguiamo la partizione, Kafka garantisce solo lordine dei messaggi a livello di partizione . Per ottenere lordine con il partizionamento dobbiamo utilizzare la chiave .

Se aumentiamo gli eventi, dobbiamo creare più partizioni e aggiungere più consumatori per scalare e ottenere il bilanciamento del carico .

Una volta ricevuto levento, dobbiamo eseguire il commit del log su Kafka, così Kafka capirà che levento è stato elaborato e Kafka non lo invierà più. Se nel bel mezzo dellelaborazione la nostra app si blocca, Kafka invierà nuovamente quellevento allelaborazione.

Fattore di replica:

Il fattore di replica è il modo in cui i dati in Kafka verranno replicati con diversi broker Kafka. Supponiamo di aver scelto il fattore di replica N = 3, i dati verranno replicati su altri 2 broker. Quindi Kafka continuerà a funzionare se il broker N-1 non funziona, perché cè almeno un broker attivo con i dati per mantenerlo funzionante.

Che cosè Apache Zookeeper?

Apache Zookeeper è un servizio centralizzato per sistemi distribuiti in un archivio chiave-valore gerarchico, che viene utilizzato per fornire un servizio di configurazione distribuito, sincronizzazione servizio e registro dei nomi per sistemi distribuiti di grandi dimensioni. Apache Kafka non funziona senza Zookeeper. Gestione del cluster Kafka, se un broker si attiva o si interrompe, se viene creato un nuovo argomento … questo tipo di dati viene sincronizzato con un broker Kafka diverso tramite Zookeeper.

Spinup Kafka>

docker-compose up

Consumatore (Golang)>

Producer (Kotlin)>

Risultato>

Waiting for messages...Topic : users.notification
Partition : 0
Offset : 1
Value : hello

Risorse:

1. github.com/confluentinc/confluent-kafka-go
2. compile group: "io.opentracing.contrib", name: "opentracing-kafka-client", version: "0.1.2"

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *