logo

Теми на Кафка

В предишния раздел направихме кратко въведение за Apache Kafka, системата за съобщения, както и процеса на стрийминг. Тук ще обсъдим основните понятия и ролята на Кафка.

Теми

Обикновено една тема се отнася до определено заглавие или име, дадено на някои специфични взаимосвързани идеи. В Kafka думата тема се отнася до категория или общо име, използвано за съхраняване и публикуване на определен поток от данни. По принцип темите в Kafka са подобни на таблици в базата данни, но не съдържат всички ограничения. В Kafka можем да създадем n на брой теми, колкото пожелаем. Идентифицира се с името си, което зависи от избора на потребителя. Производителят публикува данни в темите, а потребителят чете тези данни от темата, като се абонира за нея.

Прегради

Една тема е разделена на няколко части, които са известни като дялове на темата. Тези дялове са разделени в ред. Съдържанието на данните се съхранява в дяловете в рамките на темата. Следователно, докато създаваме тема, трябва да посочим броя на дяловете (броят е произволен и може да бъде променен по-късно). Всяко съобщение се съхранява в дялове с инкрементален идентификатор, известен като неговата стойност на отместване. Редът на компенсирана стойност се гарантира само в рамките на дяла, а не през дяла. Отместванията за дял са безкрайни.

Забележка:Данните, веднъж записани в дял, никога не могат да бъдат променяни. Тя е неизменна. Стойността на отместването винаги остава в инкрементално състояние, никога не се връща към празно място. Освен това данните се съхраняват в дял само за ограничен период от време.

Нека да видим пример за разбиране на тема с нейните дялове.

Теми на Кафка

Да предположим, че тема съдържа три дяла 0,1 и 2. Всеки дял има различни номера на отместване. Данните се разпределят между всяко отместване във всеки дял, където данните в отместване 1 на дял 0 нямат никаква връзка с данните в отместване 1 на дял1. Но данните в отместване 1 на дял 0 са взаимосвързани с данните, съдържащи се в отместване 2 на дял 0.

Брокери

Тук идва ролята на апаша Кафка.

Клъстерът на Kafka се състои от един или повече сървъри, които са известни като брокери или брокери на Kafka. Брокерът е контейнер, който съдържа няколко теми с техните множество дялове. Брокерите в клъстера се идентифицират само с целочислен идентификатор. Брокерите Kafka са известни още като Bootstrap брокери защото връзката с който и да е брокер означава връзка с целия клъстер. Въпреки че брокерът не съдържа цели данни, но всеки брокер в клъстера знае за всички други брокери, дялове, както и теми.

Теми на Кафка

Ето как изглежда брокер на фигурата, съдържаща тема с n брой дялове.

Пример: Брокери и теми

Да предположим, че клъстер Kafka се състои от три брокера, а именно Брокер 1, Брокер 2 и Брокер 3.

Теми на Кафка

Всеки брокер държи тема, а именно Topic-x с три дяла 0,1 и 2. Не забравяйте, че всички дялове не принадлежат само на един брокер, те винаги се разпределят между всеки брокер (в зависимост от количеството). Брокер 1 и Брокер 2 съдържат друга тема-y с два дяла 0 и 1. По този начин Брокер 3 не съдържа никакви данни от Тема-y. Също така се прави заключението, че никога не съществува връзка между номера на брокера и номера на дяла.