Apache Kafka

Apache Kafka používa kľúče na rozdelenie

Apache Kafka používa kľúče na rozdelenie
Apache Kafka je platforma na streamovanie údajov, ktorá je zodpovedná za streamovanie údajov z viacerých serverov zdroje na veľa ciele. Zdroje sa tiež nazývajú výrobcov. Vytvorené údaje potrebuje úplne iná skupina s názvom spotrebiteľov na rôzne účely. Kafka je vrstva, ktorá leží medzi výrobcami a spotrebiteľmi a agreguje údaje do použiteľného potrubia. Samotná Kafka je tiež distribuovanou platformou, takže vrstva Kafka sa skladá z rôznych serverov, na ktorých beží kafka, tieto servery alebo uzly sú preto známe ako Kafka Sprostredkovatelia.

Tento prehľad je trochu abstraktný, takže ho poďme zakomponovať do scenára z reálneho sveta. Predstavte si, že musíte sledovať niekoľko webových serverov. Každá prevádzkuje svoju vlastnú webovú stránku a v každej z nich sa neustále generujú nové protokoly každú sekundu dňa. Okrem toho existuje niekoľko e-mailových serverov, ktoré musíte tiež sledovať.

Možno budete musieť tieto údaje uložiť na účely vedenia záznamov a fakturácie, čo je hromadná práca, ktorá si nevyžaduje okamžitú pozornosť. Možno budete chcieť spustiť analytiku údajov, aby ste mohli robiť rozhodnutia v reálnom čase, čo si vyžaduje presné a okamžité zadanie údajov.  Zrazu sa ocitnete v potrebe racionálneho zjednotenia údajov pre všetky rôzne potreby. Kafka funguje ako tá vrstva abstrakcie, ktorej môže viac zdrojov zverejňovať rôzne prúdy údajov a dané spotrebiteľ sa môže prihlásiť na odber streamov, ktoré považuje za relevantné. Kafka sa postará o to, aby boli dáta dobre zoradené. Je to vnútorná stránka Kafku, ktorú musíme pochopiť, kým sa dostaneme k téme Rozdelenie a kľúče.

Témy, sprostredkovateľ a oddiely spoločnosti Kafka

Kafka Témy sú ako tabuľky databázy. Každá téma pozostáva z údajov z konkrétneho zdroja konkrétneho typu. Napríklad zdravie vášho klastra môže byť témou pozostávajúcou z informácií o využití procesora a pamäte. Podobne môže byť ďalšou témou prichádzajúci prenos do celého klastra.

Kafka je navrhnutá tak, aby bola horizontálne škálovateľná. To znamená, že jedna inštancia Kafky sa skladá z viacerých Kafkov makléri beží na viacerých uzloch, každý môže spracovávať toky údajov paralelne s druhým. Váš dátový kanál môže fungovať, aj keď niektoré z uzlov zlyhajú. Konkrétnu tému je potom možné rozdeliť na niekoľko priečky. Toto rozdelenie je jedným z rozhodujúcich faktorov horizontálnej škálovateľnosti Kafky.

Viacnásobné výrobcov, zdroje dát pre danú tému, môžu na túto tému zapisovať súčasne, pretože každý v danom okamihu píše na iný oddiel. Teraz sú obvykle oddielu náhodne priradené údaje, pokiaľ im neposkytneme kľúč.

Rozdelenie a objednávanie

Len pre pripomenutie, producenti píšu údaje k danej téme. Táto téma je v skutočnosti rozdelená na viac oddielov. A každý oddiel žije nezávisle od ostatných, dokonca aj pre danú tému. To môže viesť k veľkému zmätku, keď záleží na objednávaní údajov. Možno potrebujete svoje údaje v chronologickom poradí, ale mať viac oddielov pre dátový tok nezaručuje dokonalé usporiadanie.

Na jednu tému môžete použiť iba jeden oddiel, čo však spochybňuje účel distribuovanej architektúry spoločnosti Kafka. Potrebujeme teda nejaké ďalšie riešenie.

Klávesy pre oddiely

Údaje od výrobcu sa na oddiely zasielajú náhodne, ako sme už spomínali. Správy sú skutočnými kusmi dát. Producenti môžu okrem odosielania správ urobiť aj to, že k tomu pridajú kľúč.

Všetky správy, ktoré sú dodávané s konkrétnym kľúčom, sa dostanú do rovnakého oddielu. Napríklad aktivitu používateľa je možné sledovať chronologicky, ak sú údaje používateľa označené kľúčom, a preto vždy končia v jednom oddiele. Nazvime tento oddiel p0 a užívateľ u0.

Oddiel p0 vždy vyzdvihne správy spojené s u0, pretože tento kľúč ich spája. To však neznamená, že p0 je viazaný iba na to. Môže tiež prijímať správy z u1 a u2, ak má na to kapacitu. Podobne aj iné oddiely môžu spotrebovávať údaje od iných používateľov.

Bod, že údaje daného používateľa sa nerozširujú medzi rôzne oddiely, čo zaisťuje chronologické usporiadanie tohto používateľa. Celková téma však použivateľské dáta, stále môže využívať distribuovanú architektúru Apache Kafka.

Záver

Zatiaľ čo distribuované systémy ako Kafka riešia niektoré staršie problémy, ako napríklad nedostatok škálovateľnosti alebo zlyhanie v jednom bode. Prichádzajú so súborom problémov, ktoré sú jedinečné pre ich vlastný dizajn. Predvídanie týchto problémov je nevyhnutnou prácou každého systémového architekta. Nielen to, niekedy musíte skutočne urobiť analýzu nákladov a prínosov, aby ste zistili, či sú nové problémy hodným kompromisom pri zbavovaní sa tých starších. Objednávanie a synchronizácia sú iba špičkou ľadovca.

Dúfajme, že vám články ako tieto a oficiálna dokumentácia môžu pri tom pomôcť.

Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...
Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...
Ovládajte a spravujte pohyb myši medzi viacerými monitormi v systéme Windows 10
Správca myši s duálnym displejom umožňuje ovládať a konfigurovať pohyb myši medzi viacerými monitormi spomalením jeho pohybu blízko hranice. Windows 1...