В днешния свят, данните е основната съставка на интернет приложения и обикновено включва следното:
- Посещения на страници и кликвания
- Дейности на потребителите
- Събития, съответстващи на вход
- Дейности в социалните мрежи като харесвания, споделяния и коментари
- Специфични за приложението метрики (например дневници, време за зареждане на страницата, производителност и т.н.)
Това данните могат да се използват за стартиране на анализи в реално време обслужващи различни цели, някои от които са:
- Доставка на реклами
- Проследяване на ненормално поведение на потребителя
- Показване на търсене въз основа на уместност
- Показване на препоръки въз основа на предишни дейности
Проблем: Събирането на всички данни не е лесно, тъй като данните се генерират от различни източници в различни формати
Решение: Един от начините за решаване на този проблем е използването на система за съобщения. Системите за съобщения осигуряват безпроблемна интеграция между разпределени приложения с помощта на съобщения.
Apache Kafka:
Apache Kafka е разпределена система за съобщения за абонамент, която първоначално е разработена в LinkedIn, а по-късно става част от проекта Apache. Kafka е бърз, пъргав, мащабируем и разпределен по дизайн.
Архитектура и терминология на Кафка:
Тема: Поток от съобщения, принадлежащи към определена категория, се нарича тема
Продуцент: Производител може да бъде всяко приложение, което може да публикува съобщения в дадена тема
Консуматор : Потребител може да бъде всяко приложение, което се абонира за теми и консумира съобщенията
Брокер: Клъстерът Kafka е набор от сървъри, всеки от които се нарича брокер
как да обърнете номера в java -
Kafka е мащабируема и позволява създаването на множество видове клъстери.
- Клъстер за единичен брокер с единичен възел
- Клъстер за множество брокери с един възел
- Множество възли Множество брокерски клъстер
Единичен възел Единичен брокер
Каква е ролята на ZooKeeper?
Всеки брокер на Kafka се координира с други брокери на Kafka, използвайки ZooKeeper. Производителите и потребителите се уведомяват от услугата ZooKeeper за наличието на нови брокери или неизправността на брокера в системата Kafka.
Множество брокери с един възел
Множество възли Множество брокери
Kafka @ LinkedIn
LinkedIn Newsfeed се захранва от Kafka
Препоръките на LinkedIn се предоставят от Kafka
Известията в LinkedIn се захранват от Kafka
Забележка: Отделно от това, LinkedIn използва Kafka за много други задачи като мониторинг на журнали, показатели за производителност, подобряване на търсенето и др.
Кой друг използва Kafka?
DataSift: DataSift използва Kafka като колектор за наблюдение на събития и за проследяване на потреблението от потребителите на потоци от данни в реално време
Вуга: Wooga използва Kafka за обединяване и обработка на данни за проследяване от всичките им игри във Facebook (хоствани при различни доставчици) на централно място
Гъба клетка: Spongecell използва Kafka, за да управлява целия си анализ и мониторинг на тръбопровода, управлявайки приложения в реално време и ETL
Логли: Loggly е най-популярното управление на дневници, базирано на облак в света. Той използва Kafka за събиране на трупи.
Сравнително проучване: Kafka срещу ActiveMQ срещу RabbitMQ
Kafka има по-ефективен формат за съхранение.Средно всяко съобщение има общо 9 байта в Kafka, срещу 144 байта в ActiveMQ
И в ActiveMQ, и в RabbitMQ брокерите поддържат състоянието на доставка на всяко съобщение, като записват на диск, но в случая на Kafka няма запис на диска, което го прави по-бърз.
С широкото възприемане на Kafka в производството, това изглежда обещаващо решение за решаване на реални проблеми. Обучението по Apache Kafka може да ви помогне да изпреварвате своите връстници в аналитична кариера в реално време. Започнете с урок за Apache Kafka тук .
Имате въпрос към нас? Моля, споменете го в раздела за коментари и ние ще се свържем с вас.
Подобни публикации: