Запись сообщения в топик#
Основной сценарий#
Производитель формирует сообщение (ключ, значение, топик).
Производитель отправляет сообщение в Corax (в Kafka-брокер).
Corax (брокер) определяет партицию (по ключу, хешированию или стратегии).
Сообщение записывается в лог партиции.
Брокер подтверждает успешную запись (ack).
Производитель получает подтверждение.
Альтернативный сценарий: отправка без подтверждения (ack = 0)#
2а. Производитель не ждет подтверждения. 6а. Сообщение считается отправленным сразу после передачи.
Альтернативный сценарий: запись с повторными попытками#
2б. Если брокер недоступен, производитель повторяет отправку. Повторы настраиваются через retries, retry.backoff.ms.
Исключительные сценарии#
Топик не существует#
3в. Отсутствует топик, и отключено автоматическое создание топика Kafka (auto.create.topics.enable = false).
6в. Производитель получает UnknownTopicOrPartitionException.
Брокер недоступен#
2г. Производитель не может подключиться для отправки сообщения — ошибка TimeoutException или NetworkException.
Ошибка сериализации#
3д. Если ключ или значение нельзя сериализовать (например, не поддерживаемый формат).
6д. Производитель получает SerializationException.