kafka ack如何批量生成AsyncProducer

dna*_*dna 5 apache-kafka kafka-producer-api

使用批处理异步生产者时,kafka如何发送确认?ack是每个消息/每批次/每个子批次(即每个分区的批次)?是否建议在异步批处理prdocuer中使用ack?或者更好的只是使用回调机制?

Mar*_*ain 0

\n

使用batch async Producer时kafka如何发送ack

\n
\n

两种选择,通过更新se Future,或者通过执行回调代码。

\n
    \n
  • java.util.concurrent.Future发送\xe2\x80\x8b(ProducerRecord<K,V>记录)
  • \n
  • java.util.concurrent.Future send\xe2\x80\x8b(ProducerRecord<K,V>记录,Callback回调)
  • \n
\n
\n

ack 是每条消息/每批次/每子批次(即每个分区的批次)

\n
\n

好问题。我认为 ack 是针对整个请求的,因此请求的所有消息(但不确定,而且我没有找到信息)

\n
\n

是否建议在异步批处理文档中使用 ack?或者更好\n只使用回调机制?

\n
\n

这是两个不同的概念,如果你不执行 future.get() ,则发送始终与 kafka 异步\n如果你想批量发送许多记录,则必须在不阻塞的情况下发送。(无需每次都执行 future.get() )

\n