我有一个来自我收到一批邮件的来源。这些消息需要添加到Kafka - 可靠 - 没有错过,没有乱序。
如果我使用异步生成器,当我放入很多消息时,我想知道分区是否已关闭一段时间,它只会跳过该消息并放入下一条消息 - 这将导致无序消息。
有没有办法,我可以告诉Kafka - 批量生成一组消息,并以原子方式传递所有失败的东西?
*我不想做同步产品,因为它会严重影响吞吐量。
答案 0 :(得分:0)
您可以使用此消息键。 Kafka保证单个分区中的消息顺序,但不保证跨多个分区。具有单个密钥的所有消息都将传递到单个分区 - 因此将保留其顺序。同样,当作为批次发送时,它们都将一起通过或失败。 但有一个交易:所有这些消息都由一台机器处理 - 没有并行性。
有关官方kafka文档中密钥和分区的更多背景信息:
http://kafka.apache.org/documentation.html#intro_producers
http://kafka.apache.org/documentation.html#intro_consumers