• RockeyMQ顺序发送


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

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

      局部顺序消息

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

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

    product实体类,模拟数据

    生产者案例:

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

    消费者案例

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

     

    代码测试

    发送到相同的队列

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

    集群模式测试

    启动多个Consumer                    -Dserver.port=8772

    集群查看:

  • 相关阅读:
    解惑开源项目协作流程
    结合webpack 一步一步实现懒加载的国际化简易版方案
    SEO优化之——hreflang(多语言网站优化)
    pandas数据分析常用
    多任务: 多进程与多线程
    linux基础知识
    python常用模块之sys, os, random
    递归函数(初级难点)
    内置函数
    函数
  • 原文地址:https://www.cnblogs.com/HuangXingLei/p/12627904.html
Copyright © 2020-2023  润新知