spring activeMQ 整合(五): 死信队列
来源:互联网 发布:datamap 软件 编辑:程序博客网 时间:2024/06/06 20:21
1.死信队列和回退队列的区别:
这篇文章写得非常到位:http://blog.csdn.NET/coderepository/article/details/7023304
2.什么是死信队列:
DLQ-死信队列(Dead Letter Queue)用来保存处理失败或者过期的消息。
出现以下情况时,消息会被redelivered
A transacted session is used and rollback() is called.
出现以下情况时,消息会被redelivered
A transacted session is used and rollback() is called.
A transacted session is closed before commit is called.
A session is using CLIENT_ACKNOWLEDGE and Session.recover() is called.
当一个消息被redelivered超过maximumRedeliveries(缺省为6次,具体设置请参考后面的链接)次数时,会给broker发送一个"Poison ack",这个消息被认为是a poison pill,这时broker会将这个消息发送到DLQ,以便后续处理。
缺省的死信队列是ActiveMQ.DLQ,如果没有特别指定,死信都会被发送到这个队列。
缺省持久消息过期,会被送到DLQ,非持久消息不会送到DLQ
可以通过配置文件(activemq.xml)来调整死信发送策略。
A session is using CLIENT_ACKNOWLEDGE and Session.recover() is called.
当一个消息被redelivered超过maximumRedeliveries(缺省为6次,具体设置请参考后面的链接)次数时,会给broker发送一个"Poison ack",这个消息被认为是a poison pill,这时broker会将这个消息发送到DLQ,以便后续处理。
缺省的死信队列是ActiveMQ.DLQ,如果没有特别指定,死信都会被发送到这个队列。
缺省持久消息过期,会被送到DLQ,非持久消息不会送到DLQ
可以通过配置文件(activemq.xml)来调整死信发送策略。
具体的配合可参考:http://blog.csdn.net/fengyong7723131/article/details/52415299
3.怎么样才能将失败的消息放入死信队列呢?
我当时配置的时候,是折腾了好久,我能在界面上看到,我的testQueOne队列里面有消息,但是消费失败后,只见失败,不见他在ActiveMQ.DLQ死信队列里面出现。
看了好久。最终解决了。
解决的过程是:
①.先给activeMQ配置事务。可参考上篇文章: Spring ActiveMQ 整合(四): JMS 事务管理
②.再消费者接受消息失败后,对事物进行回滚,当文件配置的重发机制等等,执行完后,由应用发送rollback触发。
即:session.rollback();
这样就进入了死信队列,不进行这样的操作,他是不会出现在死信队列里面的。
原文地址:http://blog.csdn.net/dly1580854879/article/details/68946717
阅读全文
0 0
- Spring ActiveMQ 整合(五): 死信队列
- spring activeMQ 整合(五): 死信队列
- spring activeMQ 死信队列
- ActiveMQ死信队列使用
- ActiveMQ死信队列使用
- ActiveMQ死信队列使用
- activemq 如何开启死信队列
- ActiveMQ入门教程(五) - ActiveMQ与Spring整合
- 消息队列ActiveMQ+Spring整合
- activemq 关于死信队列的配置应用
- Java消息队列-Spring整合ActiveMq
- Java消息队列-Spring整合ActiveMq
- Java消息队列-Spring整合ActiveMq
- Java消息队列-Spring整合ActiveMq
- 5、ActiveMQ入门教程(五)--Spring和ActiveMQ整合
- ActiveMQ消息队列和spring进行整合实例
- 基于spring整合activeMQ以及点对点队列的封装
- spring整合activemq消息队列之点对点模式
- 新的开始
- java基础2
- 字符串-POJ3974-Palindrome
- 安卓中的对称加密,非对称加密,MD5加密的算法
- Window系统命令行调用控制面板程序
- spring activeMQ 整合(五): 死信队列
- UE4 C++ 游戏退出
- cocos2dx-lua ScrollView的第一次编写
- 查看greenplum库各个节点数据的分布情况
- Hadoop2.X.0+zookeeper HA分布式集群部署
- JavaScript函数setInterval()和setTimeout()正确的写法
- Cassandra<一>安装配置及常用命令
- Bootstrap基础19——工具提示框tooltip
- 入门RMQ问题 HDU 5289