Apache Kafka

Какво е Apache Kafka и как действа?

Какво е Apache Kafka и как действа?

В този урок ще видим какво е Apache Kafka и как работи той, заедно с някои от най-често използваните случаи.  Apache Kafka първоначално е разработен в LinkedIn през 2010 г. и е преместен, за да стане проект на Apache от най-високо ниво през 2012 г. Той има три основни компонента:

Ще проучим много повече концепции на Kafka в следващите раздели. Да вървим напред.

Концепции на Apache Kafka

Преди да се задълбочим, трябва да сме задълбочени относно някои концепции в Apache Kafka. Ето термините, които трябва да знаем, съвсем накратко:

Тематични дялове

Концепцията за Тема, Тематични дялове и компенсиране също може да бъде изяснена с илюстративна фигура:

Разделяне на теми и компенсиране на потребителите в Apache Kafka

Apache Kafka като система за съобщения за публикуване-абониране

С Kafka приложенията на Producer публикуват съобщения, които пристигат в възел на Kafka, а не директно до потребител. От този възел Kafka съобщенията се консумират от потребителските приложения.

Производител и потребител на Kafka

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

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

Инсталация

За да започнете да използвате Apache Kafka, той трябва да бъде инсталиран на машината. За да направите това, прочетете Инсталиране на Apache Kafka на Ubuntu.

Случай на употреба: Проследяване на използването на уебсайта

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

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

  1. Потребителят се регистрира в уебсайт и влиза в таблото. Потребителят се опитва да получи достъп до функция веднага, като взаимодейства с бутон.
  2. Уеб приложението изгражда съобщение с тези метаданни към темен дял на тема „щракване“.
  3. Съобщението се добавя към регистъра на фиксирането и компенсирането се увеличава
  4. Потребителят вече може да изтегли съобщението от Kafka Broker и да показва използването на уебсайта в реално време и да показва минали данни, ако нулира компенсирането си до възможна минала стойност

Случай на употреба: Опашка за съобщения

Apache Kafka е отличен инструмент, който може да действа като заместител на инструменти за посредник на съобщения като RabbitMQ. Асинхронните съобщения помагат за отделянето на приложенията и създават силно мащабируема система.

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

Напоследък Kafka се разглежда и като много добро решение за събиране на журнали, което може да управлява сървъра за събиране на регистрационни файлове и да предоставя тези файлове на централна система. С Kafka е възможно да генерирате всяко събитие, за което искате да знае друга част от приложението ви.

Използване на Kafka в LinkedIn

Интересно е да се отбележи, че Apache Kafka по-рано е бил разглеждан и използван като начин, чрез който тръбопроводите за данни могат да бъдат направени последователни и чрез които данните са поглъщани в Hadoop. Kafka работи отлично, когато са налице множество източници на данни и дестинации и не е възможно да се осигури отделен процес на тръбопровод за всяка комбинация от източник и дестинация. Архитектът на Kafka на LinkedIn, Джей Крепс описва добре този познат проблем в публикация в блог:

Моето собствено участие в това започна около 2008 г., след като изпратихме нашия магазин за ключови стойности. Следващият ми проект беше да се опитам да задействам работеща настройка на Hadoop и да преместя там някои от нашите препоръчителни процеси. Като имаме малко опит в тази област, ние естествено предвидихме няколко седмици за получаване и извличане на данни, а останалото време за внедряване на фантастични алгоритми за прогнозиране. Така започна дълъг лозунг.

Apache Kafka и Flume

Ако се преместите да сравните тези две въз основа на техните функции, ще намерите много общи характеристики. Ето някои от тях:

Заключение

В този урок разгледахме много концепции за Apache Kafka. Прочетете повече публикации, базирани на Kafka, тук.

Екранен тракпад и указател на мишката на AppyMouse за таблети с Windows
Потребителите на таблети често пропускат показалеца на мишката, особено когато са привични да използват лаптопите. Смартфоните и таблетите със сензоре...
Средният бутон на мишката не работи в Windows 10
The среден бутон на мишката ви помага да превъртате дълги уеб страници и екрани с много данни. Ако това спре, добре ще свършите да използвате клавиату...
Как да промените левия и десния бутон на мишката на компютър с Windows 10
Напълно нормално е всички устройства на компютърни мишки да са ергономично проектирани за десничари. Но има налични устройства за мишка, които са спец...