Увод у Кафка Цонсумер Гроуп
Група потрошача Кафке у основи је одређени број потрошача Кафке који паралелно могу читати податке са теме Кафке. Потрошачка група Кафка има следећа својства:
- Сви потрошачи у групи имају исту гроуп.ид.
- Сваку партицију у теми чита само један потрошач.
- Максимални број потрошача једнак је броју партиција у теми. Ако постоји више потрошача него партиција, неки потрошачи ће остати неактивни.
- Потрошач може читати са више партиција.
Значај Кафка Цонсумер Гроуп-а
За малопродајну организацију, постоји велики број произвођача који генеришу податке огромном брзином. Сада, за читање велике количине података, потребно нам је више потрошача паралелно. Релативно је лакше на страни произвођача где сваки произвођач генерира податке независно од осталих. Али, на страни потрошача, ако имамо више потрошача из исте теме, велика је шанса да ће се свака порука прочитати више пута. Кафка решава овај проблем користећи Цонсумер Гроуп. У сваком случају, само једном потрошачу је дозвољено да чита податке са партиције.
Преграде Кафка Цонсумер Гроуп
Претпоставимо да имамо тему Кафке и да су у њој 4 партиције. Тада можемо имати следеће сценарије:
1. Број потрошача = Број партиција
У овом случају, сваки потрошач ће прочитати податке са сваке партиције и то је идеалан случај.
2. Број потрошача> Број преграда
У овом случају, један потрошач ће остати неактиван и доводи до лошег коришћења ресурса.
3. Број потрошача <Број партиција
У том случају, један од потрошача ће прочитати податке са више партиција.
4. Број потрошачке групе> 1
У овом случају тему је претплатило више група потрошача која задовољава две различите апликације. Две апликације се могу покренути независно једна од друге.
Предности Кафка Цонсумер Гроуп-а
Потрошачка група додаје следеће предности:
- Скалабилност: Број потрошача који паралелно читају податке дефинитивно повећава стопу потрошње података и чини систем способним да чита велику количину података.
- Толеранција грешака: Претпоставимо да смо имали само једног Потрошача (за читање не тако велике количине података), шта би се догодило ако Потрошач из неког разлога не успе? Прекинуће цео цевовод.
- Балансирање оптерећења: Кафка поштено дели партиције сваком потрошачу, чинећи тако процес потрошње података глатким и ефикасним.
- Ребалансирање: Ако се дода нови потрошач или се постојећи заустави, Кафка ребалансира оптерећење расположивих потрошача.
Како Кафка премошћује два модела?
Хајде да прво размотримо два модела за размену порука.
1. Редови порука
У овом моделу, низ порука шаље се од једног произвођача само једном потрошачу. Стога се свака порука чита само једном и једном када потрошач повуче поруку, брише се из реда чекања. Типичан пример може бити издавање платне листе у којој свака платна листа мора бити издата само једном. Такође, овај модел не гарантује испоруку порука по реду. Скалабилност обраде порука је ограничена на један домен.
2. Објавите-претплатите се на поруке
У овом моделу, поруке које је објавио произвођач може да претплати више потрошача. Произвођач и потрошач су у великој мјери одвојени. Овај модел осигурава да ће сваки потрошач примити поруке у теми у тачном редоследу који је произвео произвођач. Типичан пример може бити телевизор са тањуром који објављује различите канале попут музике, филма, спорта итд., А потрошачи се могу претплатити на више канала. Будући да постоји више претплатника на тему, скалирање обраде струјања је изазов.
Кафка је толико популарна јер се заснива на моделу објаве и претплате, има предности система чекања порука. Као што смо раније расправљали, ако имамо потрошачку групу, Кафка осигурава да потрошач сваку поруку у теми само једном прочита (што је слично систему чекања порука). Додатне предности су у томе што брокери задржавају поруке (на тај начин чинећи их отпорним на грешке) и ако имамо више потрошачких група, они могу читати поруке из исте теме, али их различито обрађивати.
Користите импликацију случаја
Претпоставимо да имамо једноставну Цлоуд платформу где корисницима омогућавамо следеће операције:
- Чувајте датотеке у Цлоуд.
- Прегледајте њихове датотеке у облаку.
- Преузмите њихове датотеке из облака.
У почетку смо имали врло малу корисничку базу. Желели смо да добијемо различите статистике (на сату основе) као што су активни корисници, број захтева за учитавање, број захтева за преузимање и тако даље. Да бисмо испунили захтеве, поставили смо Кафка кластер који производи евиденције (генерисане нашом апликацијом) у тему и постоји апликација која ту тему троши (користећи потрошача), а затим је обрађује како би генерисала потребне статистике и на крају приказала оне на веб страници.
Како су људи почели да воле наше услуге, више људи је почело да је користи, стварајући тако пуно трупаца на сат. Открили смо да је апликација која троши тему постала изузетно спора јер смо користили само једног потрошача. Да бисмо решили проблем, у групу смо додали неке потрошаче и приметили значајно побољшање перформанси.
Наишли смо на још један захтев, где смо морали да уписујемо записнике у ХДФС кластер и тај процес би се требао одвијати независно од претходне апликације (То је зато што смо с додатним порастом података планирали да декомплицирамо прву апликацију и добијемо све статистичке податке. у окружењу ХДФС). Да бисмо испунили овај захтев, развили смо другу апликацију која се претплатила на тему користећи другу потрошачку групу и уписала податке у ХДФС кластер.
Препоручени чланци
Ово је водич за Кафка Цонсумер Гроуп. Овде смо расправљали о значају групе потрошача Кафке и како Кафка премошћује два модела, заједно са импликацијом употребе случаја. Такође можете погледати следеће чланке да бисте сазнали више -
- Кафка Апплицатионс
- Како инсталирати Кафка?
- Кафка питања за интервју
- ХДФС Арцхитецтуре
- Различите врсте алата Кафка