与Kafka流的连接断开时KafkaProducer的行为

时间:2017-01-15 12:10:16

标签: apache-kafka kafka-producer-api

我期待KafkaProducer在与经纪人的连接中断时会抛出超时异常(例如失去互联网访问权限,经纪人不可用......),但从我观察到的情况来看,KafkaProducer仍然正常执行发送没有任何问题。 (我把Ack设为否。)

我检查了它的文档,并且没有关于KafkaProducer在与经纪人的连接被破坏/恢复时如何表现的部分。

有没有人有这方面的经验?我正在使用Kafka版本0.10,在回调中使用异步发送和处理错误。

1 个答案:

答案 0 :(得分:3)

首先,我想澄清一下Kafka Streams是Apache Kafka的流处理库,你的问题似乎与Kafka Streams无关。你只谈生产者和经纪人(只是想澄清术语以避免将来混淆)。

关于您的问题:检查对代理的写入是否成功的唯一方法是启用确认。如果您禁用了ack,则生产者应用" fire并忘记"策略并且不检查写入是否成功和/或是否仍然建立了与Kafka集群的任何连接等。

因为您没有启用确认,所以永远不会收到错误回调。这与同步/异步写入无关。