logo

Kafkove témy

V predchádzajúcej časti sme stručne predstavili Apache Kafka, systém zasielania správ, ako aj proces streamovania. Tu budeme diskutovať o základných konceptoch a úlohe Kafku.

Témy

Vo všeobecnosti sa téma vzťahuje na konkrétny nadpis alebo názov priradený niektorým špecifickým vzájomne súvisiacim myšlienkam. V Kafkovi slovo téma označuje kategóriu alebo bežný názov, ktorý sa používa na ukladanie a publikovanie konkrétneho toku údajov. Témy v Kafke sú v podstate podobné tabuľkám v databáze, ale neobsahujú všetky obmedzenia. V Kafkovi si môžeme vytvoriť n počet tém, koľko chceme. Identifikuje sa podľa názvu, ktorý závisí od voľby používateľa. Výrobca zverejňuje údaje k témam a spotrebiteľ si tieto údaje z témy prečíta tak, že sa prihlási na odber.

Priečky

Téma je rozdelená do niekoľkých častí, ktoré sú známe ako oddiely témy. Tieto oddiely sú oddelené v poradí. Obsah údajov sa ukladá do oddielov v rámci témy. Preto pri vytváraní témy musíme zadať počet partícií (počet je ľubovoľný a možno ho neskôr zmeniť). Každá správa sa uloží do oddielov s prírastkovým ID známym ako jej hodnota Offset. Poradie ofsetová hodnota je zaručené iba v rámci oddielu a nie cez oddiel. Posuny pre oddiel sú nekonečné.

Poznámka:Údaje raz zapísané do oddielu nemožno nikdy zmeniť. Je to nemenné. Hodnota posunu vždy zostáva v inkrementálnom stave, nikdy sa nevráti na prázdne miesto. Údaje sa tiež uchovávajú v oddiele iba na obmedzený čas.

Pozrime sa na príklad na pochopenie témy s jej oddielmi.

Kafkove témy

Predpokladajme, že téma obsahuje tri oddiely 0, 1 a 2. Každý oddiel má iné čísla posunu. Údaje sú rozdelené medzi každý posun v každom oddiele, pričom údaje v posune 1 oddielu 0 nemajú žiadny vzťah s údajmi v posune 1 oddielu 1. Ale údaje v ofsete 1 oddielu 0 sú vzájomne prepojené s údajmi obsiahnutými v posune 2 oddielu 0.

Sprostredkovatelia

Tu prichádza úloha Apača Kafku.

Kafka cluster sa skladá z jedného alebo viacerých serverov, ktoré sú známe ako brokeri alebo Kafka brokeri. Sprostredkovateľ je kontajner, ktorý obsahuje niekoľko tém s ich viacerými oddielmi. Sprostredkovatelia v klastri sú identifikovaní iba pomocou celého čísla. Kafkovi brokeri sú známi aj ako Bootstrap brokeri pretože spojenie s akýmkoľvek jedným maklérom znamená spojenie s celým klastrom. Broker síce neobsahuje celé dáta, ale každý maklér v klastri vie o všetkých ostatných brokeroch, oddieloch aj témach.

Kafkove témy

Takto vyzerá broker na obrázku, ktorý obsahuje tému s n počtom oddielov.

Príklad: Sprostredkovatelia a témy

Predpokladajme, že klaster Kafka pozostávajúci z troch maklérov, konkrétne Broker 1, Broker 2 a Broker 3.

Kafkove témy

Každý broker má tému, a to Téma-x s tromi partíciami 0,1 a 2. Pamätajte, že všetky partície nepatria len jednému brokerovi, tá je vždy rozdelená medzi každého brokera (závisí od množstva). Broker 1 a Broker 2 obsahuje ďalšiu tému-y, ktorá má dve oblasti 0 a 1. Maklér 3 teda neuchováva žiadne údaje z témy-y. Dospelo sa tiež k záveru, že medzi číslom makléra a číslom oddielu nikdy neexistuje žiadny vzťah.