与 Kafka 流的连接断开时 KafkaProducer 的行为
Behaviour of KafkaProducer when the connection to Kafka stream is broken
我原以为 KafkaProducer 会在与 broker 的连接断开时抛出超时异常(例如,失去互联网访问权限,broker 不可用...),但据我观察,KafkaProducer 仍然正常执行发送,没有任何问题。 (我设置Ack为no)。
我检查了它的文档,没有关于 KafkaProducer 在与代理的连接断开/恢复时的行为方式的部分。
有没有人有这方面的经验?我正在使用 Kafka 版本 0.10,在回调中异步发送和处理错误。
首先,我想澄清一下,Kafka Streams是Apache Kafka的流处理库,你的问题好像不是关于Kafka Streams的。您只谈论制作人和经纪人(只是想澄清术语以避免将来混淆)。
关于您的问题:检查对代理的写入是否成功的唯一方法是启用确认。如果禁用 acks,生产者将应用 "fire and forget" 策略,并且不会检查写入是否成功 and/or 是否仍建立与 Kafka 集群的任何连接等
因为你没有启用acks,你永远无法得到错误回调。这与 sync/async 写作无关。
我原以为 KafkaProducer 会在与 broker 的连接断开时抛出超时异常(例如,失去互联网访问权限,broker 不可用...),但据我观察,KafkaProducer 仍然正常执行发送,没有任何问题。 (我设置Ack为no)。
我检查了它的文档,没有关于 KafkaProducer 在与代理的连接断开/恢复时的行为方式的部分。
有没有人有这方面的经验?我正在使用 Kafka 版本 0.10,在回调中异步发送和处理错误。
首先,我想澄清一下,Kafka Streams是Apache Kafka的流处理库,你的问题好像不是关于Kafka Streams的。您只谈论制作人和经纪人(只是想澄清术语以避免将来混淆)。
关于您的问题:检查对代理的写入是否成功的唯一方法是启用确认。如果禁用 acks,生产者将应用 "fire and forget" 策略,并且不会检查写入是否成功 and/or 是否仍建立与 Kafka 集群的任何连接等
因为你没有启用acks,你永远无法得到错误回调。这与 sync/async 写作无关。