`
xiaoyu966
  • 浏览: 257865 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

activemq完全优先级队列的设置以及使用

阅读更多

============================================================================

原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。

请注明转自:http://yunjianfei.iteye.com/blog/

============================================================================   

 

 最近有个需求是要使用activeMQ作为一个完全优先级队列,且里面的任务都是耗时很长的任务,主要特点如下:

    1. 多个producer,多个consumer

     2.consumer取来消息后,会去执行一些长时间的任务,期间阻塞consumer

     3.没有消费的消息,中间可能会修改优先级

     4.优先级高的消息必须先被消费

 

      在使用过程中,发生了一些意外状况,因为长时间的任务,导致activeMQ判定consumer为Slow Consumers 导致在取消息的时候不是完全按照优先级来取消息。解决方案如下:

 

首先,在activemq.xml中配置,使其支持优先级队列以及针对Slow-Consumer做一些策略。

 

 

        <destinationPolicy>
            <policyMap>
              <policyEntries>
                  <policyEntry queue=">"  producerFlowControl="false" prioritizedMessages="true" useCache="false" expireMessagesPeriod="0" queuePrefetch="1" />
                  <policyEntry queue=">" strictOrderDispatch="false" />
                  <policyEntry queue=">" >
                      <pendingMessageLimitStrategy>
                          <constantPendingMessageLimitStrategy limit="0"/>
                      </pendingMessageLimitStrategy>
                      <messageEvictionStrategy>
                          <oldestMessageWithLowestPriorityEvictionStrategy/>
                      </messageEvictionStrategy>
                  </policyEntry>

              </policyEntries>
            </policyMap>
        </destinationPolicy>

 

其次,因为每个消息都是长时间的操作,一定要等消息里的命令完全执行完毕后,再向ActiveMQ发送ACK,这样就可以保证所有的消息都是按照优先级来消费的。

分享到:
评论
1 楼 knightniu 2017-04-10  
请教下   3.没有消费的消息,中间可能会修改优先级 是怎么实现的?

相关推荐

    SpringBoot快速玩转ActiveMQ消息队列

    - **优先级**:可以设置消息的优先级,优先级高的消息会被优先处理。 - **消息组**:通过GroupID,可以确保相同组内的消息被同一个消费者消费,实现负载均衡。 总的来说,通过SpringBoot与ActiveMQ的整合,我们可以...

    ActiveMQ消息队列主题订阅Spring整合

    3. **配置Spring**:创建一个Spring配置文件,配置JMS连接工厂、目的地(队列或主题)以及ActiveMQ的相关属性。例如,你可以使用`&lt;bean&gt;`标签定义`org.apache.activemq.ActiveMQConnectionFactory`,并设置URL、...

    ActiveMQ的队列模式

    同时,还可以学习如何设置和使用ActiveMQ的配置文件,以定制队列的行为。 总之,ActiveMQ的队列模式是理解消息中间件核心概念的关键,它可以帮助你构建可靠的分布式系统,解决同步问题,提升系统的可扩展性和可用性...

    ActiveMQ学习笔记之九--发送消息到队列中

    在IT行业中,Apache ActiveMQ是一个广泛使用的开源消息代理和队列服务器,它是Java Message Service (JMS) 的实现,能够处理各种消息传递模式,包括点对点和发布/订阅。这篇"ActiveMQ学习笔记之九--发送消息到队列中...

    activeMQ消息队列的简单示例代码

    1. **配置ActiveMQ**:设置ActiveMQ服务器,这可能包括下载和启动ActiveMQ实例,以及配置相关的连接参数(如URL、端口等)。 2. **添加依赖**:在Java项目中,我们需要添加ActiveMQ的客户端库依赖,通常通过Maven或...

    activemq的topic队列模式的maven,spring的demo

    在本示例中,我们将探讨如何使用Maven构建项目,结合Spring框架来实现ActiveMQ的Topic队列模式。 Topic队列模式是ActiveMQ中的一种发布/订阅模型。与点对点(Queue)模型不同,Topic模式允许多个消费者同时订阅同一...

    activemq测试样例

    ActiveMQ提供了多种策略来处理积压,如死信队列、优先级队列和时间戳策略等。例如,你可以设置消息的TTL(Time To Live)属性,让过期的消息自动删除,以避免无限增长的积压。 此外,ActiveMQ还支持多种协议,如...

    ActiveMQ使用手册(中文版)

    ### ActiveMQ 使用手册知识点概述 #### 一、ActiveMQ 原理与基本构件 ...以上知识点全面覆盖了ActiveMQ的核心概念、配置细节、集群方式以及监控和使用注意事项等方面,帮助用户深入了解并高效使用ActiveMQ。

    activeMQ使用软件,以及初始化页面

    在本文中,我们将深入探讨ActiveMQ的使用、安装及其初始化页面的设置。 首先,ActiveMQ是一个高性能、可靠的分布式消息传递系统,允许应用程序之间通过消息进行异步通信。这种通信模式能够提高系统的可伸缩性和解耦...

    消息队列-activemq入门实例.zip

    这只是一个简单的入门起点,实际应用中,ActiveMQ还有许多高级特性和配置,如消息优先级、消息过滤、集群部署等,都需要深入学习和实践。希望这个实例能帮助你打开消息队列的大门,进一步探索分布式系统中的通信奥秘...

    一头扎进 activemq 视频教程 java1234出品

    ActiveMQ 的高级特性也是教程的重点,例如事务支持、优先级队列、消息分页和网络集群。事务支持确保了消息的原子性,保证了数据一致性;优先级队列使得高优先级的消息可以优先处理;消息分页则解决了大数据量下的...

    消息队列activemq的实际应用

    在实际项目中,还可以利用ActiveMQ的其他特性,如事务消息、持久化消息、优先级队列等,以满足更复杂的业务需求。同时,ActiveMQ支持集群部署,能够提供高可用性和负载均衡,进一步增强系统的稳定性。 总之,通过...

    C#,activemq,mq

    在实际开发中,需要注意性能优化,例如合理配置ActiveMQ服务器,使用预分配的缓冲区减少内存分配,以及使用批量发送减少网络开销。同时,良好的错误处理和异常处理机制也是必不可少的,以确保系统在遇到问题时能正常...

    7道消息队列ActiveMQ面试题!.zip

    对于需要顺序保证的场景,ActiveMQ可以创建有序队列,通过设置消息的优先级和使用单个消费者来保证消息的处理顺序。然而,这可能会影响系统的整体吞吐量。 7. **ActiveMQ如何实现消息确认机制?** ActiveMQ支持两...

    oss上传以及消息队列相关知识activemq

    此外,ActiveMQ还提供了一些高级功能,如消息优先级、消息过滤(通过订阅模式)、消息重试和死信队列等。 总结来说,OSS上传涉及到云存储服务的使用,包括身份验证、文件上传和管理,而ActiveMQ则是实现系统间异步...

    ActiveMQ消息服务器 v5.17.6.zip

    本文将深入探讨ActiveMQ的核心特性、应用场景以及使用方法。 一、ActiveMQ核心特性 1. **多协议支持**:ActiveMQ支持多种通信协议,包括OpenWire、Stomp、AMQP、MQTT和WebSockets,这使得它能够与不同平台和语言的...

    activemq 配置说明与activemq入门讲解

    ActiveMQ的特性包括事务处理、持久化、消息优先级和时间戳,以及基于网络的集群能力。 二、ActiveMQ的配置 1. **配置文件**:ActiveMQ的主要配置文件是`conf/activemq.xml`。这个XML文件定义了ActiveMQ服务器的行为...

    ActiveMQ_request-response

    ActiveMQ支持设置消息优先级,允许高优先级的消息优先被消费。同时,为了处理请求超时的情况,客户端可以设置一个超时时间,如果在规定时间内未收到响应,可以选择重新发送请求或者采取其他补偿措施。 5. **事务...

    ActiveMq总结.docx

    ActiveMQ因其强大的功能、灵活的配置以及广泛的兼容性,在企业级应用中被广泛使用。 #### 二、ActiveMQ应用场景 ##### 2.1 业务解耦 在实际业务场景中,系统之间的交互往往需要通过复杂的调用来完成。使用消息...

    apache-activemq-5.15.7-bin.tar.gz

    - **消息优先级**:可以设置消息优先级,优先处理高优先级消息。 - **事务支持**:JMS事务确保消息的一致性,即使在部分失败的情况下也能保证数据完整性。 总的来说,Apache ActiveMQ是一款功能强大的消息中间件,...

Global site tag (gtag.js) - Google Analytics