Я использую модуль kafka-node для отправки сообщения на kafka.В кластерной среде, где у меня есть тема с 3 разделами и коэффициентом репликации 3.
Описание темы -
Topic:clusterTopic PartitionCount:3 ReplicationFactor:3 Configs:min.insync.replicas=2,segment.bytes=1073741824
Topic: clusterTopic Partition: 0 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3
Topic: clusterTopic Partition: 1 Leader: 2 Replicas: 2,3,1 Isr: 1,2,3
Topic: clusterTopic Partition: 2 Leader: 3 Replicas: 3,1,2 Isr: 1,2,3
Конфигурация производителя -
"requireAcks": 1,
"attributes": 2,
"partitionerType": 2,
"retries": 2
КогдаЯ отправляю данные, следующие за типом раздела, циклически (2), например, в циклическом режиме
, когда я выполняю следующие действия
- Получите экземпляр HighLevelProducer, подключенный к kafka: 9092, kafka:9093
- отправить сообщение
- остановить kafka-сервер: 9092 вручную
- попытаться отправить другое сообщение с HighLevelProducer, и send () вызовет обратный вызов с ошибкой: TimeoutError: Время ожидания запроса истекло после 30000 мс
Я ожидаю, что раздел недоступен (поскольку брокер не работает). Производитель должен автоматически отправлять данные в следующий доступный раздел, но я теряю сообщение из-за исключения.