Ответ
Архитектура Apache Kafka состоит из следующих ключевых компонентов:
Основные компоненты:
- Брокеры (Brokers) – Серверы, которые хранят данные, обрабатывают запросы на запись и чтение. Несколько брокеров образуют кластер.
- Топики (Topics) – Логические категории или именованные потоки, в которые публикуются сообщения (например,
user-events,payment-logs). - Партиции (Partitions) – Топики физически разделяются на партиции для обеспечения параллелизма, масштабируемости и отказоустойчивости. Каждая партиция хранится на одном брокере.
- Производители (Producers) – Клиентские приложения, которые публикуют (пишут) сообщения в топики Kafka.
- Потребители (Consumers) – Клиентские приложения, которые подписываются на топики и читают сообщения. Часто объединяются в Consumer Groups для распределения нагрузки.
- ZooKeeper / KRaft – Служба координации. В Kafka до версии 3.x использовался внешний Apache ZooKeeper для управления метаданными кластера. Начиная с Kafka 3.x, представлен встроенный консенсус-протокол KRaft, который устраняет зависимость от ZooKeeper.
Практический пример: Создание топика с 3 партициями и фактором репликации 2.
bin/kafka-topics.sh --create
--topic orders
--partitions 3
--replication-factor 2
--bootstrap-server localhost:9092