Uvod v skupino potrošnikov Kafka

Skupina potrošnikov Kafke je v bistvu veliko potrošnikov Kafke, ki lahko preberejo podatke vzporedno iz teme Kafka. Skupina potrošnikov Kafke ima naslednje lastnosti:

  • Vsi potrošniki v skupini imajo isti group.id.
  • Vsako particijo v temi prebere samo en potrošnik.
  • Največje število potrošnikov je enako številu particij v temi. Če je več porabnikov kot particij, bodo nekateri potrošniki ostali v prostem teku.
  • Potrošnik lahko bere z več delov.

Pomen skupine potrošnikov Kafka

Za maloprodajno organizacijo bo veliko proizvajalcev, ki ustvarjajo podatke z ogromno hitrostjo. Zdaj, da lahko preberemo veliko količino podatkov, potrebujemo več potrošnikov, ki delujejo vzporedno. Primerjalno lažje je na strani proizvajalca, kjer vsak proizvajalec ustvari podatke neodvisno od drugih. Toda na strani potrošnika, če imamo več potrošnikov iz iste teme, obstaja velika možnost, da bo vsako sporočilo prebrano večkrat. Kafka to težavo rešuje s skupino Consumer Group. V vsakem primeru lahko samo en potrošnik bere podatke s particije.

Predelne stene skupine potrošnikov Kafka

Predpostavimo, da imamo temo Kafka in so v njej 4 particije. Potem imamo lahko naslednje scenarije:

1. Število porabnikov = Število predelnih sten

V tem primeru bo vsak potrošnik prebral podatke z vsake particije in to je idealen primer.

2. Število porabnikov> Število predelnih sten

V tem primeru bo en potrošnik ostal miren in vodi do slabega izkoriščanja vira.

3. Število odjemalcev <Število predelnih sten

V tem primeru bo eden od potrošnikov prebral podatke z več particij.

4. Število potrošniških skupin> 1

V tem primeru je tema naročena z več skupinami potrošnikov, ki skrbi za dve različni aplikaciji. Obe aplikaciji lahko delujeta neodvisno drug od drugega.

Prednosti Kafka Consumer Group

Potrošniška skupina doda naslednje prednosti:

  • Prilagodljivost: Številni potrošniki, ki berejo podatke vzporedno, vsekakor povečajo stopnjo porabe podatkov in naredijo sistem sposoben odčitati veliko količino podatkov.
  • Toleranca napak: Recimo, da smo imeli samo enega Potrošnika (za branje ne tako velike količine podatkov), kaj bi se zgodilo, če potrošnik iz nekega razloga ne uspe? Celi cevovod se bo zlomil.
  • Uravnavanje obremenitve: Kafka pošteno deli particije do vsakega potrošnika, s čimer je postopek porabe podatkov nemoten in učinkovit.
  • Izravnava ravnovesja : Če je dodan nov potrošnik ali se obstoječi ustavi, Kafka ponovno uravnoteži obremenitev razpoložljivih potrošnikov.

Kako Kafka premosti dva modela?

Najprej se pogovorimo o dveh modelih za sporočanje.

1. Čakalne vrste sporočil

V tem modelu se tok sporočil pošlje od enega proizvajalca samo enemu potrošniku. Tako je vsako sporočilo prebrano samo enkrat in ko potrošnik potegne sporočilo, se iz čakalne vrste izbriše. Tipičen primer je lahko izdaja plačila, pri katerem je treba vsako plačilno kartico izdati samo enkrat. Tudi ta model ne zagotavlja, da bodo sporočila dostavljena po vrstnem redu. Prilagodljivost obdelave sporočil je omejena na eno domeno.

2. Objavite-Naročite sporočila

V tem modelu lahko sporočila, ki jih objavi proizvajalec, naroči več kot en potrošnik. Proizvajalec in Potrošnik sta v veliki meri ločena. Ta model zagotavlja, da bo vsak potrošnik prejel sporočila v temi v natančnem vrstnem redu, ki ga ustvari proizvajalec. Značilen primer je lahko TV, ki objavlja različne kanale, kot so glasba, film, šport itd., Potrošniki pa se lahko naročijo na več kanalov. Ker je več naročnikov na temo, je velikost obdelave tokov velik.

Kafka je tako priljubljena, saj ima kljub modelu objave in naročanja prednosti sistema čakalnih vrst sporočil. Kot smo že omenili, če imamo skupino potrošnikov, Kafka zagotavlja, da potrošnik vsako sporočilo v temi samo enkrat prebere (kar je podobno sistemu čakalnih vrst). Dodatne prednosti so, da posredniki zadržijo sporočila (nekaj časa s tem naredijo napak) in če imamo več potrošnikov, lahko preberejo sporočila iz iste teme, vendar jih obdelajo drugače.

Uporabite primere primera

Predpostavimo, da imamo preprosto oblačno platformo, kjer uporabnikom omogočimo naslednje operacije:

  • Shranite datoteke v oblak.
  • Oglejte si njihove datoteke v oblaku.
  • Prenesite svoje datoteke iz oblaka.

Na začetku smo imeli zelo majhno bazo uporabnikov. Želeli smo pridobiti različne statistične podatke (na uro), kot so aktivni uporabniki, število zahtev za nalaganje, število zahtev za prenos in tako naprej. Za izpolnitev zahtev smo postavili gručo Kafka, ki izdela dnevnike (ustvarjene z našo aplikacijo) v temo in tam je aplikacija, ki temo porabi (s pomočjo potrošnika) in jo nato obdela, da ustvari zahtevane statistične podatke in na koncu prikaže tiste na spletni strani.

Ko so ljudje začeli všeč našim storitvam, je več ljudi začelo uporabljati in tako ustvarjalo veliko hlodov na uro. Ugotovili smo, da je aplikacija, ki porabi temo, postala izjemno počasna, saj smo uporabljali samo enega potrošnika. Da bi rešili težavo, smo v skupino dodali nekaj potrošnikov in ugotovili znatno izboljšanje učinkovitosti.

Naleteli smo na še eno zahtevo, kjer smo morali zapisati dnevnike v skupino HDFS in ta postopek naj bi potekal neodvisno od prejšnje aplikacije (To je zato, ker smo z nadaljnjim povečanjem podatkov nameravali razgraditi prvo aplikacijo in izpeljati vse statistike v okolju HDFS). Za izpolnitev te zahteve smo razvili drugo aplikacijo, ki se je prijavila na to temo z drugo skupino potrošnikov in podatke zapisala v skupino HDFS.

Priporočeni članki

To je vodnik za Kafka Consumer Group. Tukaj razpravljamo o pomembnosti potrošniške skupine Kafka in o tem, kako Kafka premošča dva modela, skupaj s posledicami uporabe. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Kafka aplikacije
  2. Kako namestiti Kafko?
  3. Kafka Intervju Vprašanja
  4. HDFS Arhitektura
  5. Različne vrste orodij Kafka

Kategorija: