一、简介

Queue中的消息是按照顺序被分发到consumers的。然而,当你有多个consumers同时从相同的queue中提取消息时,

你将失去这个保证。因为这些消息是被多个线程并发的处理。有的时候,保证消息按照顺序处理是很重要的。

如,你可能不希望在插入订单操作结束之前执行更新这个订单的操作。

二、使用

ActiveMQ从4.x版本起开始支持Exclusive Consumer。 Broker会从多个consumers中挑选一个consumer来处理queue中

所有的消息,从而保证了消息的有序处理。如果这个consumer失效,那么broker会自动切换到其它的consumer。

可以通过DestinationOptions 来创建一个Exclusive Consumer,如下:

queue = new ActiveMQQueue("TEST.QUEUE?consumer.exclusive=true");
consumer = session.createConsumer(queue);

还可以给consumer设置优先级,以便针对网络情况进行优化,如下:

queue = new ActiveMQQueue("TEST.QUEUE?consumer.exclusive=true&consumer.priority=10");

A.         当在接收信息的时候有一个或者多个备份接收消息者和一个独占消息者的同时接收时候,无论两者创建先后,在接收的时候,均为独占消息者接收。

B.         当在接收信息的时候,有多个独占消费者的时候,只有一个独占消费者可以接收到消息。

C.         当有多个备份消息者和多个独占消费者的时候,当所有的独占消费者均close的时候,只有一个备份消费者接到到消息。

解决一个队列并行问题:

通过排队服务

拆分业务逻辑 consumer 处理不同的业务,处理完后响应,确认消息消费成功,当10条全部消费完毕,

又或者是根据具体业务情况,例如只有8条消息处理成功,程序是继续执行,记录日志,事后处理,还是立即数据回滚?灵活处理

转载于:https://www.cnblogs.com/alter888/p/8978463.html

JMS学习十一(ActiveMQ Consumer高级特性之独有消费者(Exclusive Consumer))相关推荐

  1. JMS学习十一 ActiveMQ Consumer高级特性之独有消费者(Exclusive Consumer)

    一.简介 Queue中的消息是按照顺序被分发到consumers的.然而,当你有多个consumers同时从相同的queue中提取消息时, 你将失去这个保证.因为这些消息是被多个线程并发的处理.有的时 ...

  2. JMS学习十 ActiveMQ支持的传输协议

    JMS学习(ActiveMQ支持的传输协议) ActiveMQ提供了一种连接机制,这种连接机制使用传输连接器(TransportConnector)实现客户端与代理(client - to - bro ...

  3. activemq的高级特性:消息存储持久化

    activemq的高级特性之消息存储持久化 有基于文件的,数据库的,内存的.默认的是基于文件的,在安装目录/data/kahadb.在conf/activemq.xml文件中. <persist ...

  4. JMS学习(2):ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了消息通信的规范JM ...

  5. JMS学习(五)--ActiveMQ中的消息的持久化和非持久化 以及 持久订阅者 和 非持久订阅者之间的区别与联系...

    一,消息的持久化和非持久化 ①DeliveryMode 这是传输模式.ActiveMQ支持两种传输模式:持久传输和非持久传输(persistent and non-persistent deliver ...

  6. ActiveMQ Destination高级特性

    1.1通配符 1"." 用于作为路径上名字间的分割符 2">" 用于递归的匹配任何以这个名字开始的Destination 3       "*& ...

  7. JMS学习(3):--ActiveMQ简单的HelloWorld实例

    第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入 ...

  8. JMS学习九 ActiveMQ的消息持久化到Mysql数据库

    1.将连接Mysql数据库驱动包,放到ActiveMQ的lib目录下 2,修改ActiveMQ的conf目录下的active.xml文件,修改数据持久化的方式 2.1  修改原来的kshadb的持久化 ...

  9. Java学习记录 类的高级特性篇

    Java类包 Java JDK API中提供了类功能,它们封装为类包 类名冲突 JDK API 中提供的类,在同一类包 同类名 会导致编译器无法执行 ,要把类包分开或更改类名 完整的类路径 完整的类名 ...

  10. JMS学习六(ActiveMQ消息传送模型)

    JMS学习六(ActiveMQ消息传送模型) ActiveMQ 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布 /订阅模型),分别称作:PTP Domain 和Pub/ ...

最新文章

  1. 国产CPU群雄逐鹿谁主沉浮
  2. 导航栏iframe公共样式_中秋节微信公众号推文样式素材推荐
  3. CTS(13)---CTS 测试之Media相关测试failed 小结(一)
  4. Linux定时器:无节拍机制tickless(CONFIG_NO_HZ)
  5. hdu 1569 1565 (二分图带权最大独立集 - 最小割应用)
  6. 挑战程序设计竞赛(第一章)
  7. 激光雷达连接,ip地址的学习
  8. 这 9 个 Java 开源项目 yyds
  9. 电脑知识:电脑被黑客攻击,那么如何电脑判断沦为“肉鸡”?
  10. Docker基本命令
  11. 0.进校的第一张Excel表:“住宿分布表” ——《Excel“智能化”之路》 系列文章
  12. php网页怎么设置背景图片大全唯美,html文档中怎么把图片作为背景?
  13. linux 下 `dirname $0`
  14. 《痞子衡嵌入式半月刊》 第 68 期
  15. 昆明计算机ppt培训机构,师友互助实操培训(昆明)ppt课件.ppt
  16. 计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年5月份最新版)
  17. 墨者学院 - WebShell代码分析溯源(第8题)
  18. OpenWrt开发者沙龙:立方体CEO何铮演讲
  19. zootracer使用说明——一款视频物体追踪软件,获取运动物体在屏幕坐标系的运动轨迹
  20. .NET Core 性能监控

热门文章

  1. 计算机二级做的完吗,大学计算机二级都没过 毕业后却做起了IT。。。。。
  2. Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 sentinel 哨兵熔断限流断路器
  3. JS AES加密与PHP解密
  4. SelectionKey 说 明
  5. 阶段3 1.Mybatis_09.Mybatis的多表操作_7 mybatis多对多准备角色表的实体类和映射配置...
  6. 阶段3 1.Mybatis_09.Mybatis的多表操作_3 完成account的一对一操作-通过写account的子类方式查询...
  7. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_05 IO字符流_9_JDK7和JDK9流中异常的处理...
  8. tomcat部署安全证书文件(阿里云SSL证书)
  9. 数据库TCPIP协议开了,但还是远程连不上
  10. 图像下方出现几像素的空白间隙