Поведение продюсера Kafka

Я установил Kafka на своем локальном хосте и попытался отслеживать поведение Kafka Producer в случае проблем с сетью.

Даже когда все брокеры не работают, производитель не дает никаких ошибок. Я использую производителя синхронизации и Kafka версии 0.8.

Есть ли способ, которым производитель может получить исключение, если все брокеры не работают?


person Hubble    schedule 16.10.2015    source источник
comment
Как вы управляете своим продюсером? Это производитель консоли ??   -  person Bector    schedule 19.10.2015
comment
Нет. Я сделал продюсер на Java, используя Producer API.   -  person Hubble    schedule 19.10.2015


Ответы (3)


Это зависит от конфигурации вашего производителя (конфигурации производителя)

Особенно обратите внимание на параметры:

  (METADATA_FETCH_TIMEOUT_CONFIG, 60000),
  (TIMEOUT_CONFIG, 10000),
  (RETRY_BACKOFF_MS_CONFIG, 100),
  (RECONNECT_BACKOFF_MS_CONFIG, 1000)

Вам обязательно нужно изменить параметры, касающиеся вашей настройки. Все эти параметры влияют на поведение производителя.

person codejitsu    schedule 19.10.2015

Пожалуйста, добавьте обработку исключений в свой производитель:

try{
      Producer logic
}
catch (Exception ex) {
      String errorMsg = "Failed to publish events";
      logger.error("Failed to publish events", ex);
      result = Status.BACKOFF;

Пожалуйста, дайте мне знать, если это по-прежнему не сработает.

person Bector    schedule 19.10.2015

Новый производитель 8.2 в Java / Scala (производитель Async) имеет метод обратного вызова, передаваемый для каждого сообщения. Вы можете попытаться справиться с ошибкой в ​​обратном вызове ... возможно, повторите попытку. Метод обратного вызова принимает два параметра (Exceptionand MessageMetatData). Только один будет установлен в любое время. Meatadata устанавливается, когда ваше сообщение было успешно отправлено, исключение в случае, если что-то пойдет не так.

Однако с производителем синхронизации вам нужно будет установить максимальное количество повторений и другие конфигурации, как указал @leshkin.

person sainath reddy    schedule 23.10.2015