kafka 生产者是否能够在列表中发送多条消息?

is kafka producer capable of sending multiple messages in a list?

在 Kafka v 0.8.2 中,是否仍然 possible/beneficial 将 ProducerRecords 列表作为生产者发送,而不是一次只发送一个?检查 API 似乎 org.apache.kafka.clients.producer.KafkaProducer 无法使用一次发送调用发送多个 producerRecords。

但是,在 javaapi 下的生产者中,可以发送 keyedMessages 列表。有人可以解释差异或指出正确的方向吗?非常感谢。

0.8.2 不支持像以前版本那样发送消息列表。相反,send(ProducerRecord<K,V> record, Callback callback) 提供了一个回调。

但是您可以使用旧客户端,但不推荐这样做,因为据称新的 kafka 客户端比以前的客户端更快更好。

javaapi 下的生产者是旧的实现,已被客户端中的新实现所取代。新的生产者实现仍然可以将消息一起批处理,但会在后台执行此操作,并且在调用发送时你会得到每条消息的未来。

可以使用参数 "batch.size" 和 "linger.ms" 控制批量大小和延迟。有关详细信息,请参阅 documentation