Uvod u Kafka Consumer Group
Kafka grupa potrošača u osnovi je broj potrošača Kafke koji paralelno mogu čitati podatke iz neke Kafke teme. Kafka Consumer Group ima sljedeća svojstva:
- Svi potrošači u grupi imaju istu group.id.
- Svaku particiju u temi čita samo jedan Potrošač.
- Maksimalni broj potrošača jednak je broju particija u temi. Ako postoji više potrošača nego particija, neki će potrošači ostati u stanju mirovanja.
- Potrošač može čitati s više particija.
Važnost potrošačke grupe Kafka
Za maloprodajnu organizaciju, bit će veliki broj proizvođača koji generiraju podatke ogromnom brzinom. Sada, da bismo pročitali veliku količinu podataka, potrebno nam je više potrošača paralelno. Usporedno je lakše na strani proizvođača gdje svaki proizvođač generira podatke neovisno od ostalih. Ali, s potrošačke strane, ako imamo više potrošača iz iste teme, velika je vjerojatnost da će svaka poruka biti pročitana više puta. Kafka rješava ovaj problem koristeći Consumer Group. U svakom slučaju samo jednom potrošaču omogućeno je čitanje podataka s particije.
Particije tvrtke Kafka Consumer Group
Pretpostavimo da imamo temu Kafke i da su u njoj 4 particije. Tada možemo imati sljedeće scenarije:
1. Broj potrošača = Broj particija
U tom slučaju svaki će potrošač pročitati podatke sa svake particije i to je idealan slučaj.
2. Broj potrošača> Broj particija
U tom slučaju jedan će potrošač ostati neaktivan i dovodi do lošeg korištenja resursa.
3. Broj potrošača <Broj particija
U tom slučaju jedan će potrošač pročitati podatke s više particija.
4. Broj potrošačke skupine> 1
U ovom slučaju temu je pretplatilo više grupa potrošača koja zadovoljava dvije različite aplikacije. Dvije aplikacije se mogu pokrenuti neovisno jedna o drugoj.
Prednosti Kafka Consumer Grupe
Potrošačka grupa dodaje sljedeće prednosti:
- Skalabilnost: Broj potrošača koji paralelno čitaju podatke definitivno povećava stopu potrošnje podataka i čini sustav sposobnim čitati veliku količinu podataka.
- Tolerancija grešaka: Pretpostavimo da smo imali samo jednog Potrošača (za čitanje ne tako velike količine podataka), što bi se dogodilo ako Potrošač iz nekog razloga ne uspije? Cijeli cevovod će se probiti.
- Balansiranje opterećenja: Kafka pošteno dijeli particije svakom Potrošaču, čime je proces potrošnje podataka gladak i učinkovit.
- Rebalansiranje: Ako se doda novi potrošač ili se postojeći zaustavi, Kafka rebalansira opterećenje za dostupne Potrošače.
Kako Kafka premošćuje dva modela?
Prvo razmotrimo dva modela razmjene poruka.
1. Redovi poruka
U ovom se modelu niz poruka šalje od jednog proizvođača samo jednom potrošaču. Svaka se poruka čita samo jednom i jednom kad potrošač povuče poruku briše se iz čekanja. Tipičan primjer može biti izdavanje platne liste u kojoj se svaka isplata mora izdati samo jednom. Također, ovaj model ne osigurava isporuku poruka redom. Skalabilnost obrade poruka ograničena je na jednu domenu.
2. Objavite-pretplatite se na poruke
U ovom modelu poruke koje je objavio proizvođač može pretplatiti više Potrošača. Proizvođač i Potrošač u velikoj su mjeri nevezani. Ovaj model osigurava da će svaki potrošač primiti poruke u temi u točno određenom redoslijedu koji je proizveo proizvođač. Tipičan primjer može biti televizor s tanjurom koji objavljuje različite kanale poput glazbe, filma, sporta itd., A potrošači se mogu pretplatiti na više kanala. Budući da postoji više pretplatnika na temu, skaliranje obrade strujanja je izazov.
Kafka je toliko popularna jer, iako se temelji na modelu objave i pretplate, ima prednosti sustava čekanja poruka. Kao što smo ranije raspravljali, ako imamo Potrošačku grupu, Kafka osigurava da potrošač svaku poruku u temi samo jednom pročita (što je slično sustavu čekanja poruka). Dodatne prednosti su što posrednici zadržavaju poruke (tako što neko vrijeme čini tolerancijom na pogreške) i ako imamo više potrošačkih skupina, oni mogu čitati poruke s iste teme, ali ih različito obrađivati.
Koristite slučajeve slučaja
Pretpostavimo da imamo jednostavnu platformu u oblaku gdje korisnicima omogućujemo sljedeće operacije:
- Spremite datoteke u Cloud.
- Pogledajte njihove datoteke u oblaku.
- Preuzmite njihove datoteke s oblaka.
U početku smo imali vrlo malu korisničku bazu. Željeli smo izvući razne statističke podatke (na satu rada) poput aktivnih korisnika, broja zahtjeva za prijenos, broja zahtjeva za preuzimanje i tako dalje. Da bismo ispunili zahtjeve, postavili smo Kafka klaster koji proizvodi zapisnike (generirane našom aplikacijom) u temu i tu je aplikacija koja temu konzumira (pomoću Potrošača), a zatim je obrađuje kako bi generirala potrebne statistike i na kraju prikazala one na web stranici.
Kako su se ljudi počeli svidjeti našim uslugama, više ljudi je počelo koristiti ih, tako da se generira puno trupaca na sat. Otkrili smo da je aplikacija koja troši ovu temu postala izuzetno spora jer smo koristili samo jednog potrošača. Kako bismo riješili problem, u grupu smo dodali neke Potrošače i otkrili značajno poboljšanje performansi.
Naišli smo na još jedan zahtjev, gdje smo morali upisati zapisnike u HDFS klaster i taj bi se postupak trebao odvijati neovisno o prethodnoj aplikaciji (To je zato što smo daljnjim porastom podataka planirali dekomponirati prvu aplikaciju i izvući sve statističke podatke. u okruženju HDFS). Da bismo ispunili ovaj zahtjev, razvili smo drugu aplikaciju koja se pretplatila na temu koristeći drugu potrošačku grupu i upisala podatke u HDFS klaster.
Preporučeni članci
Ovo je vodič za Kafka Consumer Group. Ovdje raspravljamo o važnosti grupe potrošača Kafke i kako Kafka premošćuje dva modela, zajedno s posljedicama slučaja upotrebe. Možete pogledati i sljedeće članke da biste saznali više -
- Kafka aplikacije
- Kako instalirati Kafka?
- Kafka pitanja za intervju
- HDFS Arhitektura
- Različite vrste alata Kafka