Apache Kafka

Apache Kafka pomoću tipki za particiju

Apache Kafka pomoću tipki za particiju
Apache Kafka je platforma za strujanje podataka odgovorna za strujanje podataka s niza izvori mnogim mete. Nazivaju se i izvori proizvođači. Proizvedeni podaci potrebni su potpuno drugoj skupini tzv potrošači u razne svrhe. Kafka je sloj koji se nalazi između proizvođača i potrošača i agregira podatke u korisni cjevovod. Također je i sama Kafka distribuirana platforma, pa se sloj Kafka sastoji od različitih poslužitelja koji izvode kafku, a ti su poslužitelji ili čvorovi poznati kao Kafka Brokeri.

Taj je pregled pomalo apstraktan pa ga uzemljimo u stvarnom scenariju, zamislite da trebate nadgledati nekoliko web poslužitelja. Svaka ima svoju web stranicu, a u svakoj od njih svake sekunde dana neprestano se generiraju novi dnevnici. Povrh toga postoji niz poslužitelja e-pošte koje također trebate nadgledati.

Možda ćete trebati pohraniti te podatke za potrebe vođenja evidencije i naplate, što je skupni posao koji ne zahtijeva trenutnu pažnju. Možda biste željeli pokrenuti analitiku na podacima da biste donosili odluke u stvarnom vremenu, što zahtijeva točan i neposredan unos podataka.  Odjednom se nađete u potrebi za racionalizacijom podataka na razuman način za sve različite potrebe. Kafka djeluje kao onaj sloj apstrakcije kojem više izvora može objaviti različite tokove podataka i dano potrošač može se pretplatiti na tokove koje smatra relevantnim. Kafka će se pobrinuti da podaci budu dobro poredani. To su unutrašnjosti Kafke koje moramo razumjeti prije nego što dođemo do teme Pregrađivanje i tipke.

Kafka teme, broker i particije

Kafka Teme su poput tablica baze podataka. Svaka se tema sastoji od podataka iz određenog izvora određene vrste. Na primjer, zdravlje vašeg klastera može biti tema koja se sastoji od informacija o upotrebi CPU-a i memorije. Slično tome, dolazni promet preko klastera može biti druga tema.

Kafka je dizajnirana da bude vodoravno skalabilna. To će reći, jedan primjer Kafke sastoji se od višestrukih Kafka brokeri izvodi se na više čvorova, a svaki može obrađivati ​​tokove podataka paralelne s drugim. Čak i ako nekoliko čvorova ne uspije, vaš cjevovod podataka može nastaviti funkcionirati. Tada se određena tema može podijeliti na nekoliko pregrade. Ova je particija jedan od presudnih čimbenika horizontalne skalabilnosti Kafke.

Višestruko proizvođači, izvori podataka za određenu temu, mogu istovremeno pisati u tu temu jer svaki upisuje na drugu particiju, u bilo kojoj danoj točki. Sada se obično particiji podaci dodjeljuju nasumce, osim ako im ne dostavimo ključ.

Pregrađivanje i uređivanje

Samo da rezimiramo, proizvođači zapisuju podatke na zadanu temu. Ta je tema zapravo podijeljena na više particija. I svaka particija živi neovisno od ostalih, čak i za zadanu temu. To može dovesti do velike zabune kada je redoslijed podataka bitan. Možda su vam potrebni vaši podaci u kronološkom redoslijedu, ali posjedovanje više particija za vaš tok podataka ne garantira savršeno naručivanje.

Možete koristiti samo jednu particiju po temi, ali to poništava cijelu svrhu Kafkine distribuirane arhitekture. Dakle, trebamo neko drugo rješenje.

Ključevi za pregrade

Podaci proizvođača se nasumično šalju na particije, kao što smo već spomenuli. Poruke su stvarni dijelovi podataka. Ono što proizvođači mogu učiniti osim slanja poruka je dodavanje ključa koji uz to ide.

Sve poruke koje dolaze s određenim ključem ići će na istu particiju. Tako se, na primjer, aktivnost korisnika može kronološki pratiti ako su podaci tog korisnika označeni ključem i tako uvijek završavaju na jednoj particiji. Nazovimo ovu particiju p0, a korisnika u0.

Particija p0 uvijek će pokupiti poruke povezane s u0 jer ih taj ključ povezuje. Ali to ne znači da je p0 vezan samo uz to. Također može zauzimati poruke od u1 i u2 ako za to ima kapacitet. Slično tome, druge particije mogu trošiti podatke drugih korisnika.

Točka da se podaci određenog korisnika ne šire na različitim particijama što osigurava kronološko slaganje za tog korisnika. Međutim, ukupna tema korisnički podaci, još uvijek može iskoristiti distribuiranu arhitekturu Apache Kafke.

Zaključak

Dok distribuirani sustavi poput Kafke rješavaju neke starije probleme poput nedostatka skalabilnosti ili postojanja jedne točke neuspjeha. Dolaze s nizom problema koji su jedinstveni za njihov vlastiti dizajn. Predviđanje ovih problema bitan je posao bilo kojeg arhitekte sustava. I ne samo to, ponekad zaista morate napraviti analizu troškova i koristi kako biste utvrdili jesu li novi problemi dostojna zamjena za rješavanje starijih. Naručivanje i sinkronizacija samo su vrh sante leda.

Nadamo se da vam članci poput ovih i službena dokumentacija mogu pomoći na putu.

Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...
HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...
Kako koristiti AutoKey za automatizaciju Linux igara
AutoKey je uslužni program za automatizaciju radne površine za Linux i X11, programiran na Python 3, GTK i Qt. Koristeći njegovu skriptiranje i MACRO ...