【问题标题】:is kafka producer capable of sending multiple messages in a list?kafka 生产者能够在列表中发送多条消息吗?
【发布时间】:2015-07-08 20:24:55
【问题描述】:
在 Kafka v 0.8.2 中,作为生产者发送 ProducerRecords 列表而不是一次仅发送一个列表是否仍然可能/有益?检查 API 似乎 org.apache.kafka.clients.producer.KafkaProducer 无法使用一次发送调用发送多个 producerRecords。
但是,在 javaapi 下的生产者中,可以发送 keyedMessages 列表。有人可以解释差异或指出正确的方向吗?非常感谢。
【问题讨论】:
标签:
producer
apache-kafka
【解决方案1】:
javaapi 下的生产者是旧的实现,已被客户端中的新实现所取代。新的生产者实现仍然可以将消息一起批处理,但会在后台执行此操作,并且在调用发送时,您将获得每条消息的未来返回。
批量大小和延迟可以通过参数“batch.size”和“linger.ms”来控制。详情请见documentation。
【解决方案2】:
0.8.2 不支持在 prevois 版本中发送消息列表。相反,send(ProducerRecord<K,V> record, Callback callback) 提供了回调。
不过,您可以使用旧客户端,但不推荐这样做,因为据称新的 kafka 客户端比以前的客户端更快更好。