RocketMQ笔记4-顺序消息

简介

消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。

  • 全局有序:发送和消费参与的queue只有一个,效率低,不推荐
  • 分区有序:有多个queue,但是每个queue中的消息的发送和消费都是有序的

要点

  • 消息顺序发送
    • 单线程同步发送
  • 消息顺序储存
    • 重写MessageQueueSelector接口中的select() 实现消息路由到一个queue
  • 消息顺序消费
    • 设置该监听器MessageListenerOrderly
    • 同一时刻一个消费者中的一个线程对一个队列中的消息进行消费
      • 消费者申请队列锁(只要一个消费者能消费该队列)
      • 拉取消息进行消费,此时通过synchronized上锁(只有一个线程能够消费)

推荐参考

RocketMQ中的顺序消费
rocketmq/docs/cn/RocketMQ_Example.md
聊一聊顺序消息

posted @ 2019-11-03 09:24  wubazx  阅读(...)  评论(... 编辑 收藏