中间件速查手册
消息队列消息队列(分区)

MessageQueue 是什么?

RocketMQ 里 Topic 的分区,消息真正存放的单位

类比:驿站里的货架,一个 Topic 有好几个货架

和 Kafka Partition 的关系

概念几乎一样:都是 Topic 的物理分片,都是顺序追加、都是一个队列同时只被一个消费者消费。区别是 RocketMQ 的 Queue 由 Broker 管理,数量在创建 Topic 时指定。

Queue 数决定什么

Queue 数决定了消费并行度的上限,也决定了顺序消息的粒度。想提高消费能力,先看 Queue 够不够。

  • Queue 数 < 消费者数:多出来的消费者空转
  • Queue 数 = 4,消费 RT 100ms:单 Topic 上限约 40 条/秒/消费者组
  • 顺序消息按订单号选 Queue,同一订单永远进同一个 Queue

扩容注意

增加 Queue 后,老消息还在老 Queue 里,新消息按新数量分配,顺序性会受影响。顺序敏感的业务不要在运行中随意扩 Queue。

它出现在这些中间件里

相关问题

相关概念