有没有办法在kafka中自动批量生产?

时间:2016-02-08 04:09:59

标签: apache-kafka kafka-producer-api

我有一个来自我收到一批邮件的来源。这些消息需要添加到Kafka - 可靠 - 没有错过,没有乱序。

如果我使用异步生成器,当我放入很多消息时,我想知道分区是否已关闭一段时间,它只会跳过该消息并放入下一条消息 - 这将导致无序消息。

有没有办法,我可以告诉Kafka - 批量生成一组消息,并以原子方式传递所有失败的东西?

*我不想做同步产品,因为它会严重影响吞吐量。

1 个答案:

答案 0 :(得分:0)

您可以使用此消息键。 Kafka保证单个分区中的消息顺序,但不保证跨多个分区。具有单个密钥的所有消息都将传递到单个分区 - 因此将保留其顺序。同样,当作为批次发送时,它们都将一起通过或失败。 但有一个交易:所有这些消息都由一台机器处理 - 没有并行性。

有关官方kafka文档中密钥和分区的更多背景信息: http://kafka.apache.org/documentation.html#intro_producers
http://kafka.apache.org/documentation.html#intro_consumers