Bevezetés a Kafka Fogyasztói Csoportba
A Kafka fogyasztói csoport alapvetően számos Kafka Fogyasztó, akik párhuzamosan olvashatnak adatokat egy Kafka témáról. A Kafka Fogyasztói Csoport a következő tulajdonságokkal rendelkezik:
- A csoport összes fogyasztójának ugyanaz a group.id.
- A téma minden partícióját csak egy Fogyasztó olvassa.
- A Fogyasztók maximális száma megegyezik a téma partícióinak számával. Ha több fogyasztó van, mint partíció, akkor a fogyasztók egy része sem működik.
- A Fogyasztó egynél több partícióról olvashat.
A Kafka Fogyasztói Csoport fontossága
A kiskereskedelmi szervezetek számára nagyszámú Termelő állhat elő hatalmas sebességgel. Most, hogy nagy mennyiségű adatot lehessen olvasni, több, párhuzamosan futó fogyasztóra van szükségünk. A Termelők oldalán viszonylag könnyebb, ha minden egyes Termelő a többitől függetlenül állít elő adatokat. De a fogyasztói oldalon, ha egynél több fogyasztó olvas ugyanarról a témáról, akkor nagy esély van arra, hogy minden üzenet többször is elolvassa. A Kafka a Consumer Group segítségével oldja meg ezt a problémát. Mindenesetre csak egy felhasználó engedheti meg az adatok olvasását a partícióktól.
A Kafka Fogyasztói Csoport partíciói
Tegyük fel, hogy van egy Kafka-téma, és benne 4 partíció található. Akkor a következő forgatókönyvek lehetnek:
1. Fogyasztók száma = A partíciók száma
Ebben az esetben minden Fogyasztó elolvassa az egyes partíciók adatait, és ez az ideális eset.
2. Fogyasztók száma> Partíciók száma
Ebben az esetben egy fogyasztó tétlen marad, és az erőforrás rossz felhasználásához vezet.
3. Fogyasztók száma <partíciók száma
Ebben az esetben az egyik fogyasztó több partícióból fog adatokat olvasni.
4. Fogyasztói csoport száma> 1
Ebben az esetben a témát egynél több fogyasztói csoport feliratkozta, amely két különböző alkalmazást fedez fel. A két alkalmazás egymástól függetlenül futhat.
A Kafka Fogyasztói Csoport előnyei
A Fogyasztói Csoport a következő előnyöket nyújtja:
- Skálázhatóság: Számos olyan adat fogyasztója, amely párhuzamosan olvassa az adatokat, határozottan növeli az adatfogyasztási arányt, és lehetővé teszi a rendszer számára, hogy nagy mennyiségű adatot olvassa le.
- Hibatolerancia: Tegyük fel, hogy csak egy Fogyasztónk volt (nem olyan nagy adatmennyiség olvasásához), mi történne, ha a Fogyasztó valamilyen okból kudarcot vall? Az egész csővezeték megszakad.
- Terheléselosztás: A Kafka a partíciókat méltányosan osztja meg minden Fogyasztóval, ezáltal az adatfogyasztási folyamat zökkenőmentes és hatékony.
- Egyensúlyozás: Ha új fogyasztót vesz fel, vagy egy meglévő megáll, a Kafka egyensúlyba hozza a rendelkezésre álló fogyasztók terhelését.
Hogyan Kafka áthidalja a két modellt?
Először tárgyaljuk a két üzenetküldési modellt.
1. Üzenet sorok
Ebben a modellben az üzenetfolyamot egyetlen gyártó küldi csak egy fogyasztónak. Így mindegyik üzenet csak egyszer olvasható, és ha a fogyasztó üzenetet húz, az üzenet törlődik a sorból. Jellemző példa lehet a fizetési csekk kiadása, ahol minden fizetési csekk csak egyszer kell kiállni. Ez a modell nem garantálja az üzenetek megfelelő kézbesítését sem. Az üzenetek feldolgozhatóságának méretezhetősége egyetlen domainre korlátozódik.
2. Közzététel és feliratkozás üzenetküldés
Ebben a modellben a Termelő közzétett üzeneteit egynél több Fogyasztó feliratkozhatja. A Termelő és a Fogyasztó nagymértékben függetlenül egymástól. Ez a modell biztosítja, hogy minden Fogyasztó egy témában üzeneteket kapjon a gyártó által generált pontos sorrendben. Jellemző példa lehet az ételetelevízió, amely különféle csatornákat, például zenét, filmet, sportot stb. Tesz közzé, és a fogyasztók egynél több csatornára is feliratkozhatnak. Mivel egy témára több előfizető van, a patakok feldolgozásának méretezése kihívást jelent.
A Kafka annyira népszerű, mert bár a közzététel-feliratkozás modellen alapul, előnyei vannak az üzenetküldési sorrendszernek. Amint azt korábban tárgyaltuk, ha van Fogyasztói csoportunk, a Kafka biztosítja, hogy a téma minden egyes üzenetét csak egyszer olvassa el a Fogyasztó (ami hasonló az Üzenet sorrendszerhez). További előnye, hogy az üzeneteket a brókerek megőrzik (egy ideig ezáltal hibatűrővé teszik), és ha egynél több Fogyasztói csoportunk van, akkor ugyanabból a témakörből származó üzeneteket tudnak olvasni, de eltérő módon dolgozzák fel őket.
Használja az esettanulmányt
Tegyük fel, hogy van egy egyszerű felhőplatformunk, ahol a következő műveleteket engedélyezzük a felhasználóknak:
- Tárolja a fájlokat a Cloud-ban.
- Tekintse meg fájljaikat a felhőben.
- Töltse le fájljaikat a felhőből.
Az elején nagyon kicsi felhasználói bázisunk volt. Különböző statisztikákat (órás alapon) akartunk levezetni, például az aktív felhasználók, a feltöltési kérelmek száma, a letöltési kérelmek száma és így tovább. A követelmények teljesítése érdekében felállítottunk egy Kafka-klasztert, amely előállítja a naplókat (az alkalmazásunk által generált) egy témába, és van egy olyan alkalmazás, amely felhasználja a témát (egy Fogyasztóval), majd feldolgozza azt a szükséges statisztikák előállításához és végül megjelenítéséhez. azok, akik egy weboldalon vannak.
Ahogy az emberek kedvelték a szolgáltatásainkat, egyre több ember kezdte használni, így óránként sok naplót generált. Megállapítottuk, hogy a témát használó alkalmazás rendkívül lassúvá vált, mivel csak egy Fogyasztót használtunk. A probléma megoldása érdekében néhány fogyasztót adtunk a csoporthoz, és a teljesítmény jelentősen javult.
Felmerült egy másik követelmény, ahol a naplókat egy HDFS-fürtbe kellett írni, és ennek a folyamatnak az előző alkalmazástól függetlenül kell futnia (Ennek az az oka, hogy az adatok további növekedésével az első alkalmazás leállítását terveztük, és az összes statisztikát levezetjük) a HDFS környezetben). Ennek a követelménynek a teljesítéséhez kifejlesztettünk egy másik alkalmazást, amely egy másik fogyasztói csoport segítségével feliratkozott a témára, és az adatokat a HDFS-fürtbe írta.
Ajánlott cikkek
Ez a Kafka Fogyasztói Csoport útmutatója. Itt tárgyaljuk a Kafka fogyasztói csoport fontosságát és azt, hogy a Kafka hogyan áthidalja két modellt, annak használati eshetőségével együtt. A következő cikkeket is megnézheti további információkért -
- Kafka alkalmazások
- Hogyan telepítsük a Kafkát?
- Kafka interjúkérdések
- HDFS architektúra
- Különböző típusú Kafka eszközök