клиент kafka отправляет запрос в раздел, в котором произошел сбой брокера - PullRequest
0 голосов
/ 23 сентября 2019

Я использую модуль 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 мс

Я ожидаю, что раздел недоступен (поскольку брокер не работает). Производитель должен автоматически отправлять данные в следующий доступный раздел, но я теряю сообщение из-за исключения.

...