Skip to content
极高进阶

一句话答案

同一业务 ID 的消息发到同一 Partition/Queue(通过 key hash),单 Partition 内天然有序。

核心要点

Kafka: 指定partition key → 同一key落入同一Partition → 单Partition内有序

RocketMQ: MessageQueueSelector 选择同一Queue

代价: 顺序消息限制并发度,只在真正需要时使用(如订单状态流转)

追问与易错

追问方向:

  • 这个概念在你的项目中是怎么应用的?
  • 和相关技术/方案相比有什么优劣?
  • 如果出了问题你会怎么排查?

易错点:

  • ❌ 只知道概念不知道原理——面试官会追问底层实现
  • ❌ 缺乏实际使用经验——结合项目场景回答更有说服力

💡 记忆锚点

顺序消息 = 同一个人的快递必须按顺序送:用业务ID做key hash,保证同一用户的消息落入同一条传送带(Partition/Queue),单条传送带天然先进先出。代价是牺牲并发度,只在订单状态流转等真正需要顺序的场景使用。