【消息中间件篇08】kafka是如何保证消息顺序性

66 阅读1分钟

知识点

业务场景中消息顺序性应用场景:

  • 即时消息中单对单聊天和群聊,保证发送方消息发送顺序与接收方的顺序一致
  • 充值转账两个渠道在同一个时间进行余额变更,短信通知必须要有顺序

问题原因:

一个topic的数据可能存储在不同的分区中,每个分区都有一个顺序存储的偏移量,如果消费者关联了多个分区不能保证顺序性

image.png

topic分区中消息只能由消费者组中的唯一一个消费者处理,所以消息肯定是按照先后顺序进行处理的。但是它也仅仅保证topic的一个分区顺序处理,不能保证跨分区的消息先后处理顺序。所以如果你想要顺序的处理topic的所有消息,那就只提供一个分区。

image.png