⭐️ Устройство Kafka: топики, партиции, брокеры, кластеры ⭐️
✔️ Топики (Topics)
1) Логическая категория или тема, куда Продюсеры отправляют сообщения, а Потребители их читают.
2) Представляют собой поток сообщений, где каждое имеет: ключ, значение, метаданные.
3) Не удаляют сообщения сразу после обработки — данные хранятся в топике в течение заданного времени.
4) Могут быть разделены на партиции, что позволяет распределять нагрузку между Продюсерами и Консьюмерами.
✔️ Партиции (Partitions)
1) Каждый топик состоит из одной или нескольких партиций (разделов).
2) Сообщения внутри партиции хранятся в строгом порядке (FIFO — "первым пришёл, первым обработался").
3) Разные партиции могут обрабатываться параллельно, что увеличивает производительность Kafka.
4) Каждое сообщение в партиции получает уникальный порядковый номер (offset), который используется Потребителями для чтения данных.
5) Продюсеры могут отправлять сообщения в партиции автоматически или по определённому ключу (например, все заказы одного клиента попадут в одну партицию).
6) Один потребитель из Группы Консьюмеров читает данные только из своей партиции, что позволяет распределять нагрузку.
7) Повышение надежности обеспечивается через репликацию: выделяют Leader Replica (основная копия данных партиции) и Follower Replica (копирует данные лидера в синхронном или асинхронном режиме).
✔️ Брокеры (Brokers)
1) Хранят топики и их партиции.
2) Обрабатывают запросы Продюсеров на запись и Консьюмеров на чтение данных.
3) Управляют репликацией партиций для отказоустойчивости.
4) Автоматически перераспределяют нагрузку при добавлении новых брокеров в кластер.
✔️ Кластер (Cluster)
1) Это группа брокеров, работающих вместе для масштабирования и распределённой обработки данных.
2) Использует ZooKeeper или KRaft для координации (назначает лидеров партиций, отслеживает состояние брокеров).
3) Позволяет добавлять новые брокеры без остановки системы.
4) Поддерживает автоматическое восстановление при сбоях отдельных узлов.
#АрхитектураGA
Post #2488
5.73K
- ❤ 29
- 👏 14
- 🔥 1