У меня есть настройка Kafka с использованием версии 0.9 с базовой конфигурацией как 1 Брокер 1 Тема и 1 раздел.Kafka Producer не ретранслируется, когда Broker Down
Ниже приведены конфигурации производителя, которые я добавил для включения повторной попытки от Продюсера.
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
props.put(ProducerConfig.RETRIES_CONFIG, 5);
props.put(ProducerConfig.RECONNECT_BACKOFF_MS_CONFIG, 500);
props.put(ProducerConfig.ACKS_CONFIG, "all");
props.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, 500);
props.put(ProducerConfig.METADATA_MAX_AGE_CONFIG, 50);
Я понимаю, из документов, которые
Установки значения больше нуля заставит клиент повторно отправить любую запись которого не удается отправить с потенциально транзиторной ошибкой. Обратите внимание, что этот повтор не отличается от того, если клиент повторно отправил запись после получения ошибки.
Как мой брокер & Zookeeper не работает, а операция повтора не работает.
ERROR o.s.k.s.LoggingProducerListener - Исключение брошено при отправке сообщения в тему TestTopic1 | org.apache.kafka.common.errors.TimeoutException: Не удалось обновить метаданные через 500 мс.
Мне нужно знать, не хватает ли здесь чего-либо для повторной попытки работать.
Я хотел протестировать функциональность повтора, отныне намеренно держал брокера и Zookeeper. Благодарим за указание на эту ошибку, позвольте мне попробовать обновить до 0,10. – user1564626
Проблема остается неизменной даже после обновления до 0,10. Можете ли вы рассказать мне, как это сработало для вас. Можете ли вы рассказать мне, нужны ли какие-либо другие изменения? – user1564626
Вы обновили как производителя, так и сервер? Кроме того, как вы знаете, что это не повторная попытка? Кроме того, когда вы убиваете брокера? Я думаю, изначально он должен быть там, чтобы продюсер работал. Вы могли бы попытаться создать сообщения в цикле (со сном), а затем закрыть брокера во время его создания? Также играйте с retry.backoff.ms. Может быть, установить его на что-то довольно высокое, чтобы вы могли определить, что он на самом деле повторяет? – bibac