博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ActiveMQ 全排序(Total Ordering)
阅读量:6941 次
发布时间:2019-06-27

本文共 844 字,大约阅读时间需要 2 分钟。

  hot3.png

全排序(Total Ordering

        有时候,在 Topic 模式下,保证所有消费者消费消息的顺序和生产者生产消息的顺序一致是非常有用的。通常,我们可以认为它们是保持一致的,但是,当有多个线程或者是异步处理时,消费者和生产者就不能保证顺序一致了。

        例如:生产者 P 和 Q,P 发送消息 P1,P2,P3 同时 Q 发送消息 Q1,Q2。现在有两个消费者,它们可能消费消息的顺序如下:

    Consumer1:P1 P2 Q1 P3 Q2    Consumer2:P1 Q1 Q2 P2 P3

        生产者发送消息是按顺序的,但是两个消费者消费消息的顺序不一致。

使用全排序

        目的主题的全排序(Total Ordering)可以保证每个消费者消费消息的顺序是一致的。当你希望实现事务时,全排序是非常有用的;但是由于使用了更多的同步,会导致性能略有下降。使用全排序,消费者消费顺序可能如下:

    Consumer1:P1 P2 Q1 P3 Q2    Consumer2: P1 P2 Q1 P3 Q2

        看以看到,消费者消费顺序是完全一致的。

配置全排序

        为每个目的主题开启全排序,可以为它们加上<strictOrderDispatchPolicy/>,如下所示:

    
            
            
                
">                    
                        
                    
                            
        
    

转载于:https://my.oschina.net/nk2011/blog/365537

你可能感兴趣的文章
Linux系统信息查看命令大全
查看>>
Coursera机器学习编程作业Python实现(Andrew Ng)—— 1.2 Linear regression with multiple variables...
查看>>
Java源码分析-UUID
查看>>
Directx11教程(47) alpha blend(4)-雾的实现
查看>>
opengl 教程(12) 投影矩阵
查看>>
8086汇编——课堂笔记整理3
查看>>
Python批量修改文件名-后缀
查看>>
如何成为强大的程序员?(转)
查看>>
Codeforces Round #349 (Div. 2) C. Reberland Linguistics (DP)
查看>>
C语言中的字符串
查看>>
AngularJS 事件
查看>>
java中mkdir()和mkdirs()区别
查看>>
NIO系列——通道(Channel)
查看>>
NetCore 委托Func的使用
查看>>
《转》Xcode 6 正式版如何创建一个Empty Application
查看>>
公钥(Public Key)与私钥(Private Key)
查看>>
左右手坐标系与旋转正向
查看>>
hdu 2177 取(2堆)石子游戏(威佐夫博奕)
查看>>
Web Storage与Cookie相比存在的优势:
查看>>
KVC/KVO原理详解及编程指南(转载)
查看>>