TG Telegram Group & Channel
.NET Разработчик | United States America (US)
Create: Update:

День 2227. #ЗаметкиНаПолях
Kafka и Event-Driven Архитектура. Окончание

Начало

Kafka состоит из нескольких ключевых компонентов:

1. Сообщение
Наименьшая единица данных в Kafka: объект JSON, строка или любые двоичные данные. Сообщения могут иметь связанный ключ, который определяет, в каком разделе будет храниться сообщение.

2. Тема
Логический канал, по которому сообщения отправляются производителями и читаются потребителями. Темы помогают классифицировать сообщения (например, журналы, транзакции, заказы).

3. Производитель
Клиент Kafka, который публикует сообщения в теме. Сообщения можно отправлять тремя способами:
- Запустить и забыть — производитель отправляет сообщение, не дожидаясь подтверждения, что обеспечивает максимальную скорость, но рискует потерей данных.
- Синхронная отправка — производитель ждёт подтверждения от Kafka, прежде чем продолжить, что обеспечивает надёжность, но добавляет задержку.
- Асинхронная отправка — производитель отправляет сообщения партиями асинхронно, обеспечивая баланс между скоростью и надёжностью.

Подтверждения доставки (ACK) можно настраивать для баланса согласованности и производительности:
- ACK 0 — подтверждение не требуется (самый быстрый, но наиболее рискованный).
- ACK 1 — сообщение подтверждается, когда его получает ведущий брокер (быстрее, но менее безопасно).
- ACK All — сообщение подтверждается только тогда, когда все реплики подтверждают получение (медленнее, но наиболее безопасно).

Оптимизации производителя
- Сжатие и пакетирование сообщений перед отправкой их брокерам. Это повышает пропускную способность и снижает использование диска, но увеличивает нагрузку на ЦП.
- Сериализатор/десериализатор Avro вместо JSON требует предварительного определения схем, но повышает производительность и снижает потребление памяти.

4. Разделы (партиции)
Темы Kafka делятся на разделы, что обеспечивает параллельную обработку и масштабируемость. Сообщения в разделе упорядочены и неизменяемы.

5. Потребитель
Читает сообщения из разделов и отслеживает свою позицию с помощью смещения. Потребители могут сбрасывать смещения для повторной обработки старых сообщений. Потребители Kafka работают по модели опроса, то есть они постоянно запрашивают данные у брокера, а не брокер отправляет им данные.

6. Группа потребителей
Набор потребителей, которые работают вместе для обработки сообщений из темы. Kafka гарантирует, что один раздел потребляется только одним потребителем в группе, поддерживая порядок.

7. Управление смещением
Когда потребитель читает сообщение, он обновляет своё смещение — позицию последнего обработанного сообщения.

8. Брокер
Сервер Kafka, который хранит сообщения, назначает смещения и обрабатывает клиентские запросы. Несколько брокеров образуют кластер для масштабируемости и отказоустойчивости.

9. Zookeeper
Zookeeper управляет кластером: отслеживает брокеров, выбирает новый ведущий сервер при отказе и т.п. Однако более новые версии Kafka работают над устранением зависимости от Zookeeper.

Источник: https://dev.to/lovestaco/why-kafka-a-developer-friendly-guide-to-event-driven-architecture-4ekf

День 2227. #ЗаметкиНаПолях
Kafka и Event-Driven Архитектура. Окончание

Начало

Kafka состоит из нескольких ключевых компонентов:

1. Сообщение
Наименьшая единица данных в Kafka: объект JSON, строка или любые двоичные данные. Сообщения могут иметь связанный ключ, который определяет, в каком разделе будет храниться сообщение.

2. Тема
Логический канал, по которому сообщения отправляются производителями и читаются потребителями. Темы помогают классифицировать сообщения (например, журналы, транзакции, заказы).

3. Производитель
Клиент Kafka, который публикует сообщения в теме. Сообщения можно отправлять тремя способами:
- Запустить и забыть — производитель отправляет сообщение, не дожидаясь подтверждения, что обеспечивает максимальную скорость, но рискует потерей данных.
- Синхронная отправка — производитель ждёт подтверждения от Kafka, прежде чем продолжить, что обеспечивает надёжность, но добавляет задержку.
- Асинхронная отправка — производитель отправляет сообщения партиями асинхронно, обеспечивая баланс между скоростью и надёжностью.

Подтверждения доставки (ACK) можно настраивать для баланса согласованности и производительности:
- ACK 0 — подтверждение не требуется (самый быстрый, но наиболее рискованный).
- ACK 1 — сообщение подтверждается, когда его получает ведущий брокер (быстрее, но менее безопасно).
- ACK All — сообщение подтверждается только тогда, когда все реплики подтверждают получение (медленнее, но наиболее безопасно).

Оптимизации производителя
- Сжатие и пакетирование сообщений перед отправкой их брокерам. Это повышает пропускную способность и снижает использование диска, но увеличивает нагрузку на ЦП.
- Сериализатор/десериализатор Avro вместо JSON требует предварительного определения схем, но повышает производительность и снижает потребление памяти.

4. Разделы (партиции)
Темы Kafka делятся на разделы, что обеспечивает параллельную обработку и масштабируемость. Сообщения в разделе упорядочены и неизменяемы.

5. Потребитель
Читает сообщения из разделов и отслеживает свою позицию с помощью смещения. Потребители могут сбрасывать смещения для повторной обработки старых сообщений. Потребители Kafka работают по модели опроса, то есть они постоянно запрашивают данные у брокера, а не брокер отправляет им данные.

6. Группа потребителей
Набор потребителей, которые работают вместе для обработки сообщений из темы. Kafka гарантирует, что один раздел потребляется только одним потребителем в группе, поддерживая порядок.

7. Управление смещением
Когда потребитель читает сообщение, он обновляет своё смещение — позицию последнего обработанного сообщения.

8. Брокер
Сервер Kafka, который хранит сообщения, назначает смещения и обрабатывает клиентские запросы. Несколько брокеров образуют кластер для масштабируемости и отказоустойчивости.

9. Zookeeper
Zookeeper управляет кластером: отслеживает брокеров, выбирает новый ведущий сервер при отказе и т.п. Однако более новые версии Kafka работают над устранением зависимости от Zookeeper.

Источник: https://dev.to/lovestaco/why-kafka-a-developer-friendly-guide-to-event-driven-architecture-4ekf
👍13


>>Click here to continue<<

.NET Разработчик




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)