首页 文章

当Broker倒闭时,Kafka Producer没有倒退

提问于
浏览
1

我已经使用0.9版设置了Kafka,基本配置为1 Broker 1 Topic和1 Partition .

下面是我添加的Producer配置,以便从Producer重试 .

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);

我从文件中了解到

设置大于零的值将导致客户端重新发送任何发送失败且具有潜在瞬态错误的记录 . 请注意,此重试与客户端在收到错误时重新发送记录时没有什么不同 .

我的Broker和Zookeeper都关闭了,重试操作无效 .

错误o.s.k.s.LoggingProducerListener - 向主题TestTopic1发送消息时抛出异常org.apache.kafka.common.errors.TimeoutException:500 ms后无法更新元数据 .

我需要知道我是否遗漏了任何重复工作的内容 .

2 回答

  • 3

    只有在您与Broker Build 连接并且在发送消息期间发生了某些事情时,重新发送(重试)才有效 .

    所以,如果你的经纪人已经死了,根本就没有理由发送消息 - 没有连接 . 这是一个例外 .

  • 2

    我认为即使经纪人失败,重试也应该有效 . 这是首先重试的全部原因 . 毕竟可能是一个临时的网络问题 .

    Kafka 0.9.0.1生成器中存在一个错误,导致重试无法正常工作 . See here .

    固定在0.9.0.2(尚未发布)和0.10 . 我将经纪人升级到0.10然后再试一次 .

相关问题