Апацхе Кафка

Апацхе Кафка партиционирање

Апацхе Кафка партиционирање
У овој лекцији видећемо шта подразумевамо под партиционирањем у Апацхе Кафки и како то утиче на перформансе Кафка кластера. Концепт партиционирања је пресудан за Кафка кластер јер партиционирање користи као примарни начин скалирања и повећања перформанси.

Имајте на уму да ово није уводна лекција. Молимо вас прочитајте Шта је Апацхе Кафка и како то функционише пре него што наставите са овом лекцијом да бисте стекли дубљи увид.

Теме у Кафки

Тема на Кафки је нешто где се шаље порука. Потрошачке апликације које занима та тема повлаче поруку унутар те теме и могу учинити све са тим подацима. До одређеног времена, било који број потрошачких апликација може повући ову поруку било који број пута.

Размотрите тему попут ЛинукХинт-ове странице Убунту Блог. Лекције се постављају до вечности и било који број читалаца ентузијаста може доћи и прочитати их колико год пута или прећи на следећу лекцију како желе. Ове читаоце могу занимати и друге теме из ЛинукХинта.

Подела теме

Кафка је дизајниран за управљање тешким апликацијама и ставља у ред великог броја порука које се чувају унутар теме. Да би се осигурала висока толеранција грешака, свака тема је подељена на више партиција теме и свака партиција теме управља се на засебном чвору. Ако се један од чворова сруши, други чвор може да делује као вођа теме и може да сервира теме заинтересованим потрошачима. Ево како се исти подаци записују у више партиција тема:

Тематске партиције


Сада горња слика показује како се исти подаци реплицирају на више партиција. Замислимо како различите партиције могу деловати као водеће на различитим чворовима / партицијама:

Кафка Брокер партиционирање

Када клијент нешто напише у тему на позицији за коју је партиција у Брокеру 0 водећа, ти подаци се затим реплицирају преко брокера / чворова тако да та порука остаје сигурна:

Репликација на брокерске партиције

Више партиција, већа пропусност

Кафка користи Паралелизам како би се производима и потрошачима обезбедио веома висок проток. Заправо, на исти начин, такође задржава свој статус система с високом отпорношћу на кварове. Хајде да схватимо колико се пропусност постиже паралелизмом.

Када продуцент апликација напише неку поруку на партицију у Брокеру 0, Кафка паралелно отвара више нити, тако да се та порука може истовремено реплицирати на све изабране брокере. На страни потрошача, потрошачка апликација троши поруке са једне партиције кроз нит. Што је већи број партиција, то се више потрошачких нити може отворити како би све оне такође могле радити паралелно. То значи што је већи број партиција у кластеру, то се више паралелизма може искористити, стварајући веома висок проток система.

За више партиција потребно је више руковаоца датотекама

Управо тако да сте горе проучавали како можемо повећати перформансе система Кафка само повећавањем броја партиција. Али морамо бити опрезни са којим границама идемо.

Свака партиција теме у Кафки пресликава се у директоријум у систему датотека посредника сервера у коме је покренута. Унутар тог директоријума дневника налазит ће се двије датотеке: једна за индекс и друга за стварне податке по сегменту дневника. Тренутно, у Кафки, сваки брокер отвара ручицу датотеке и за индекс и за датотеку података сваког сегмента дневника. То значи да ако имате 10.000 партиција на једном брокеру, то ће резултирати паралелним радом 20.000 управљача датотекама. Иако се овде ради само о конфигурацији брокера. Ако систем на коме је Брокер распоређен има високу конфигурацију, то тешко да ће представљати проблем.

Ризик од великог броја партиција

Као што смо видели на горњим сликама, Кафка користи технику репликације унутар кластера да преслика поруку од вође на партиције Реплица које леже у другим брокерима. И произвођачка и потрошачка апликација читају и записују на партицију која је тренутно вођа те партиције. Када брокер закаже, вођа тог брокера постаће недоступан. Метаподаци о томе ко је вођа чувају се у Зоокеепер. На основу ових метаподатака, Кафка ће аутоматски доделити вођење партиције другој партицији.

Када се брокер искључи чистом командом, чвор контролера Кафка кластера ће серијски померати вође гашења брокера и.е. један по један. ако узмемо у обзир да померање једног лидера траје 5 милисекунди, недоступност вођа неће ометати потрошаче, јер је недоступност у врло кратком временском периоду. Али ако узмемо у обзир када је брокер убијен на нечист начин, а овај брокер садржи 5000 партиција, а од тога 2000 је било вођа партиција, додјељивање нових вођа за све ове партиције трајаће 10 секунди што је врло високо када је ријеч о високо тражене апликације.

Закључак

Ако узмемо у обзир мислиоца на високом нивоу, више партиција у Кафка кластеру доводи до веће пропусности система. Имајући у виду ову ефикасност, такође треба узети у обзир конфигурацију Кафка кластера коју треба да одржавамо, меморију коју треба да доделимо том кластеру и како можемо управљати доступношћу и кашњењем ако нешто пође по злу.

Прочитајте више постова заснованих на Убунту-у и много више о Апацхе кафка-и.

Како користити Ксдотоол за подстицање кликова мишем и притиска тастера у Линуку
Ксдотоол је бесплатан алат за командну линију отвореног кода за симулацију кликова мишем и притиска тастера. Овај чланак ће покрити кратак водич о кор...
Топ 5 ергономских производа за рачунарски миш за Линук
Да ли дуготрајна употреба рачунара изазива бол у зглобу или прстима? Патите ли од укочених зглобова и стално морате да се рукујете? Да ли осећате гору...
Како променити поставке миша и додирне табле помоћу Ксинпут-а у Линук-у
Већина Линук дистрибуција подразумевано испоручује библиотеку „либинпут“ за обраду улазних догађаја на систему. Може да обрађује улазне догађаје и на ...