Počínaje Apache Kafkou

(13. června 2019)

Co je Apache Kafka?

Apache Kafka je původně distribuovaná platforma pro zasílání zpráv založená na publikování a odběru vyvinutý společností LinkedIn a později darován Apache Foundation .

(* Obrázek je pouze pro zkrášlení)

Použít případy

  • Zprávy
  • Agregace protokolů
  • Zpracování streamu
  • Commit Log
  • Sourcing událostí atd.

Jak to funguje?

Kafka funguje v modelu pub-sub. Bude tedy existovat spotřebitel / skupina spotřebitelů a vydavatel.

Producent zveřejní data ke konkrétnímu tématu a spotřebitel, který se k odběru tématu přihlásil, data spotřebuje. Na stejné téma mohlo publikovat více producentů, ale pouze jeden spotřebitel je schopen spotřebovat data z tématu najednou.

Nyní se můžete zeptat, zda pouze jeden spotřebitel smí konzumovat z tématu najednou, a pokud přicházejí tisíce událostí, jak je škálujeme?

Dobře. V takovém případě můžeme téma rozdělit na oddíly, abychom dosáhli škálovatelnosti.

Když děláme oddíl tématu, každá zpráva v oddílu má offset\_id / message\_id. Na obrázku vlevo jsme vytvořili 3 oddíly a každý producent odešle událost do konkrétního oddílu. A spotřebitel bude číst z konkrétního oddílu. Nyní, pokud máme odesíláno 300 událostí / s, bude rozdělena na 3, takže každý oddíl bude mít 100 zpráv / s. Tímto způsobem můžeme dosáhnout Vyrovnávání zatížení. Když děláme oddíl, Kafka zajišťuje pouze pořadí zpráv na úrovni oddílu . Abychom dosáhli pořádku s rozdělením, musíme použít klíč .

Pokud dojde k nárůstu událostí, musíme udělat více oddílů a přidat více spotřebitelů k škálování a dosažení Vyrovnávání zatížení .

Jakmile obdržíme událost, musíme se zavázat k protokolu Kafka, takže Kafka pochopí, že událost byla zpracována a Kafka ji znovu neodesílá. Pokud během zpracování naše aplikace rozdrtí, Kafka odešle tuto událost znovu ke zpracování.

Faktor replikace:

Faktor replikace je způsob, jakým budou data v Kafce replikována s různými makléři Kafky. Řekněme, že jsme vybrali replikační faktor N = 3, data budou replikována dalším 2 makléřům. Takže Kafka bude i nadále fungovat, pokud broker N-1 spadne, protože je tu alespoň jeden broker naživu s daty, aby fungoval.

Co je Apache Zookeeper?

Apache Zookeeper je centralizovaná služba pro distribuované systémy do hierarchického úložiště klíč-hodnota, které slouží k poskytování distribuované konfigurační služby, synchronizace služba a jmenný registr pro velké distribuované systémy. Apache Kafka bez Zookeeperu nefunguje. Správa clusteru Kafka, pokud makléř přijde nebo spadne, pokud vytvoří nové téma…. Tento typ dat se synchronizuje s jiným makléřem Kafka prostřednictvím Zookeeperu.

Spinup Kafka>

docker-compose up

Spotřebitel (Golang)>

Výrobce (Kotlin)>

Výsledek>

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

Zdroje:

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *