0

我在本地主机上设置了 Kafka,并尝试在出现网络问题时监控 Kafka Producer 的行为。

即使所有经纪人都关闭了,生产者也没有给出任何错误。我正在使用同步生产者和 Kafka 版本 0.8。

如果所有经纪人都关闭了,生产者是否可以收到异常?

4

3 回答 3

1

这取决于您的生产者配置(生产者配置

特别注意参数:

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

您肯定必须更改有关设置的参数。所有这些参数都会影响生产者的行为。

于 2015-10-19T15:46:09.893 回答
0

Java /Scala(异步生产者)中较新的 8.2 生产者具有为每条消息传递的回调方法。您可以尝试处理回调中的失败..可能重试。回调方法有两个参数(Exception 和 MessageMetatData)。任何时候都只会设置一个。当您的消息成功发送时设置元数据,如果出现问题则异常。

使用同步生产者,您将不得不设置 max.retries 和其他配置,正如@leshkin 指出的那样。

于 2015-10-23T16:16:38.367 回答
0

请在您的生产者中添加异常处理:

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

请让我知道它是否仍然无法正常工作。

于 2015-10-19T15:20:17.633 回答