Вкатываемся в NodeJS Help

Kafka

Видео о kafka

Kafka - open source, применяется для работы с данными в реальном времени. Kafka обеспечивает высокую доступность, она же отказоустойчивость, имеет высокую пропускную способность, а так же журнал событий. Так же для шифрования данных в сообщений используется TLS и role-base access control.

Kafka использует pub-sub (publisher - subscriber) модель, где publishers создают темы (topics) а consumers, они же подписчики, получают эти сообщения. Касательно журнала - Kafka хранит там все события, которые происходили. Это помогает в режиме реального времени отследить, какие события происходили и что было. За счет этого Kafka поддерживает высокую расширяемость и отказоустойчивость.

Архитектура Kafka состоит из четырех частей:

  1. Producers. Публикуют сообщения в topics (темы) Kafka;

  2. Brokers. Ответственные за хранение данных и их репликацию между кластерами Kafka.

  3. Consumers. Читаем данные из topic или сразу из нескольких topics.

  4. Zookeeper. Управляет состоянием кластера Kafka. Не хранит внутри себя данные, а только обеспечивает стабильность и безотказность работы системы, а так же отслеживание этих данных.

Схема работы

kafka.png

Производительность

Превосходно справляется в высоко нагруженных системах и системах реального времени, имеет минимальную задержку и превосходную масштабируемость. Он может обрабатывать миллионы сообщений в секунду. Его архитектура пригодна для горизонтального масштабирования, за счет разделения между отдельными брокерами. Так же большая гарантия сохранения данных, за счет хранения их на диске и в журнале.

Области применения

  • Аналитика в реальном времени и стриминговые приложения

  • Event Sourcing, работа с большим объемом данных

  • Микросервисная связь с обработкой большого объема данных

  • Приложения, которые требуют большую расширяемость а также отказоустойчивость

Kafka interview questions

Last modified: 10 July 2025