考虑到您的生产者为系统的用户创建消息,并且这些消息的顺序在用户级别很重要。
我的生产者将消息添加到有两个分区的主题中,我使用针对user_id的散列将每个用户的所有消息放在相同的分区中,以保证顺序。
如何在保持消息顺序的同时,扩展系统并向主题添加更多分区?
Kafka如何处理分区前已经生成的消息?消费但未提交回Kafka以更新偏移量的消息会发生什么?
发布于 2019-03-18 09:09:24
1.在消费者客户端使用树集(有序集)缓存消息,保持1分钟(或更少);kafka只保证一个分区的顺序,我认为生产者也不能保证顺序。
2.如果您不手动提交offset,在下一次fetch请求中,将会收到相同的消息。无论如何,在消费者客户端,你应该确保消息的幂等性,即使你允许偏移。
https://stackoverflow.com/questions/55212571
复制相似问题