码迷,mamicode.com
首页 > 其他好文 > 详细

RockeyMQ顺序发送

时间:2020-04-03 18:14:40      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:订单号   严格   同步   支持   原则   一致性   mic   serve   img   

 

什么是顺序发送:
  消息生产和消息消费都严格按照先进先出的原则 

 顺序消息分为两种:
  全局顺序: top下所有的queue都要进行FIFO 生产和消费,这种比较少用,会造成消息的堵塞,吞吐量不高,

  局部顺序消息

    确保top下面的一组队列 queque 顺序保存一直就行了,先发送的消息一定先被消费,比如我们订单系统,按 创建订单,支付订单,完成订单 三个步骤,必须按顺序进行处理

 

顺序消息只能是同步的,异步的不能确保哪个消息先到,广播模式也不支持,不能确保哪台服务的速度比较快

 

 

product实体类,模拟数据

技术图片

 

 

生产者案例:

根据 MessageQueueSelector 策列,把订单号进行取已操作,每个订单号都是唯一的,确保能放进一个队列里面

 

技术图片

 

 

 

消费者案例

使用 MessageListenerOrderly,单线程,分配到的queque是固定的,在集群的情况下,或先获取queue 锁,然后锁定该队列,其他消费端就不能获取到里面的消息了,确保数据的一致性

技术图片

 

 技术图片

 

 

代码测试

发送到相同的队列

技术图片

 

 

消费端  先发的消息先被消费

技术图片

 

 

集群模式测试

启动多个Consumer                    -Dserver.port=8772

技术图片

 

 

 

集群查看:
技术图片

 

 

技术图片

 

 

技术图片

 

RockeyMQ顺序发送

标签:订单号   严格   同步   支持   原则   一致性   mic   serve   img   

原文地址:https://www.cnblogs.com/HuangXingLei/p/12627904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!