Skip to content

如何保证消息有序 ​

题目 ​

如何保证消息有序?

参考答案 ​

先分清是全局有序还是局部有序。工程上大多做局部有序,比如同一订单号固定发到同一分区,再单线程顺序消费。

有序性越强,吞吐和扩展性通常越差。

回答展开 ​

  • MQ 题最好分成生产端、Broker、消费端三段来讲。
  • 如果涉及幂等、重试、顺序性,重点说明业务语义而不是只看消息语义。
  • 如果是 Kafka,还可以带上分区、副本、ISR 这些关键字。

实际场景 ​

比如订单创建、支付成功、发券通知这类消息链路,一旦出现重复消费、积压或消息丢失,都会直接影响业务结果,所以 MQ 治理非常关键。

努力工作 享受生活