Ответ
Apache Kafka — это распределённая, отказоустойчивая, высокопроизводительная платформа потоковой передачи событий (event streaming platform). Она функционирует как брокер сообщений, но с акцентом на долговременное хранение, высокую пропускную способность и обработку потоков данных в реальном времени.
Ключевые концепции и архитектура:
- Топики (Topics): Категории или потоки, в которые публикуются сообщения. Топики логически разделяются на партиции для горизонтального масштабирования и параллельной обработки.
- Производители (Producers): Приложения, которые публикуют (записывают) сообщения в топики Kafka.
- Потребители (Consumers): Приложения, которые подписываются на топики и читают сообщения. Потребители объединяются в группы (Consumer Groups) для распределения нагрузки.
- Кластер Kafka: Состоит из нескольких брокеров (серверов), где топики реплицируются между брокерами для отказоустойчивости.
Пример создания топика через утилиту командной строки:
# Создание топика 'user-events' с 3 партициями и фактором репликации 2
kafka-topics.sh --create
--topic user-events
--bootstrap-server kafka-broker1:9092,kafka-broker2:9092
--partitions 3
--replication-factor 2
Применение в DevOps и микросервисной архитектуре:
- Декомпозиция связей: Асинхронная коммуникация между микросервисами.
- Сбор логов и метрик: Централизованный поток событий от всех компонентов системы.
- Трекер изменений (Change Data Capture): Передача изменений из базы данных в другие системы.
- Обработка событий в реальном времени: Для аналитики, оповещений и реактивных пайплайнов.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶