• RockeyMQ顺序发送


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

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

      局部顺序消息

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

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

    product实体类,模拟数据

    生产者案例:

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

    消费者案例

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

     

    代码测试

    发送到相同的队列

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

    集群模式测试

    启动多个Consumer                    -Dserver.port=8772

    集群查看:

  • 相关阅读:
    BZOJ1316 树上的询问
    BZOJ2599 IOI2011Race
    BZOJ2594 [Wc2006]水管局长数据加强版
    BZOJ3052 [wc2013] 糖果公园 【树上莫队】
    BZOJ4530 BJOI 2014 大融合
    QTREEⅠ SPOJ
    BZOJ 3514: Codechef MARCH14 GERALD07加强版 [LCT 主席树 kruskal]
    BZOJ3669 NOI2014魔法森林
    BZOJ2002 弹飞绵羊
    BZOJ1878 [SDOI2009]HH的项链
  • 原文地址:https://www.cnblogs.com/HuangXingLei/p/12627904.html
Copyright © 2020-2023  润新知