我期待KafkaProducer在与经纪人的连接中断时会抛出超时异常(例如失去互联网访问权限,经纪人不可用......),但从我观察到的情况来看,KafkaProducer仍然正常执行发送没有任何问题。 (我把Ack设为否。)
我检查了它的文档,并且没有关于KafkaProducer在与经纪人的连接被破坏/恢复时如何表现的部分。
有没有人有这方面的经验?我正在使用Kafka版本0.10,在回调中使用异步发送和处理错误。
答案 0 :(得分:3)
首先,我想澄清一下Kafka Streams是Apache Kafka的流处理库,你的问题似乎与Kafka Streams无关。你只谈生产者和经纪人(只是想澄清术语以避免将来混淆)。
关于您的问题:检查对代理的写入是否成功的唯一方法是启用确认。如果您禁用了ack,则生产者应用" fire并忘记"策略并且不检查写入是否成功和/或是否仍然建立了与Kafka集群的任何连接等。
因为您没有启用确认,所以永远不会收到错误回调。这与同步/异步写入无关。