Я думаю, вы говорите о том, что производитель повторяет попытку отправить сообщение об ошибке.
Из документации по свойствам производитель повторяет попытку -
"Установка значения больше нуля вызовет клиент для повторной отправки любой записи, отправка которой завершается неудачно с потенциально временной ошибкой . "
Это означает, что производитель kafka повторит попытку, если обнаруженная ошибка будет считаться" Retriable ". не все ошибки можно повторить - например, если целевой kafka topi c не существует, нет смысла пытаться отправить сообщение еще раз. но если, например, соединение было прервано, имеет смысл попробовать еще раз.
Важное примечание - повторные попытки актуальны, только если вы установили Broker ack! = 0.
Итак, в вашем примере у вас настроено 7 повторных попыток.
Я предполагаю, что для ack установлено значение, отличное от 0, потому что в этом случае попытки повторных попыток предприниматься не будут.
Если ваше сообщение не удалось с ошибка, не подлежащая повторному использованию, производитель Kafka не будет пытаться отправить сообщение снова (он фактически «откажется от этого сообщения» и перейдет к следующим сообщениям).
Если ваше сообщение завершилось неудачно с повторяющейся ошибкой , Производитель Kafka будет повторять отправку до тех пор, пока сообщение не будет успешно отправлено, или пока повторные попытки не будут исчерпаны (когда было предпринято 7 попыток, но ни одна из них не удалась).
Производитель клиента Kafka знает, когда ваше сообщение было успешно отправлено брокеру, потому что когда ack установлен в 1 \ all, брокер kafka «подтверждает» любое полученное сообщение и информирует производителя (в виде рукопожатия между een производитель и брокер).
см. подтверждения и повторные попытки @ https://kafka.apache.org/documentation/#producerconfigs