ActiveMQ(19):Consumer高级特性之独有消费者(Exclusive Consumer)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ(19):Consumer高级特性之独有消费者(Exclusive Consumer)相关的知识,希望对你有一定的参考价值。

一、简介

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");


本文出自 “我爱大金子” 博客,请务必保留此出处http://1754966750.blog.51cto.com/7455444/1923595

以上是关于ActiveMQ(19):Consumer高级特性之独有消费者(Exclusive Consumer)的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ——Consumer高级特性

ActiveMQ(22):Consumer高级特性之消息分组(Message Groups)

ActiveMQ(20):Consumer高级特性之重新投递(Redelivery Policy)

ActiveMQ(23):Consumer高级特性之Message dispatche asyncConsumer Priority与Message Selectors

ActiveMQ(21):Consumer高级特性之管理持久化订阅(Manage Durable Subscribers)

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