ActiveMQ的消息重发与死信管理(DLQ)
2013-12-13 16:35
218 查看
摘自:http://blog.sina.com.cn/s/blog_3f77ac270100p2vr.html
ActiveMQ的消息重发与死信管理(DLQ)
(2011-03-29 22:00:43)转载▼标签:activemqdlqdeadletterqueueredelivery杂谈 | 分类:Java-ActiveMQ |
缺省所有队列的死信消息都被发送到同一个缺省死信队列,不便于管理。可以通过individualDeadLetterStrategy或sharedDeadLetterStrategy策略来进行修改。如下:
<broker...>
<destinationPolicy>
<policyMap>
<policyEntries>
<!— 设置所有队列,使用 '>' ,否则用队列名称 -->
<policyEntry queue=">">
<deadLetterStrategy>
<!--
queuePrefix:设置死信队列前缀
useQueueForQueueMessages: 设置使用队列保存死信,还可以设置useQueueForTopicMessages,使用Topic来保存死信
-->
<individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true" />
</deadLetterStrategy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
...
</broker>2. 非持久消息保存到死信队列
<policyEntry queue=">">
<deadLetterStrategy>
<sharedDeadLetterStrategy processNonPersistent="true" />
</deadLetterStrategy>
</policyEntry>3. 过期消息不保存到死信队列
<policyEntry queue=">">
<deadLetterStrategy>
<sharedDeadLetterStrategy processExpired="false" />
</deadLetterStrategy>
</policyEntry>4. 持久消息不保存到死信队列
对于过期的,可以通过processExpired属性来控制,对于redelivered的失败的消息,需要通过插件来实现如下:
丢弃所有死信
<beans>
<broker ...>
<plugins>
<discardingDLQBrokerPlugin dropAll="true" dropTemporaryTopics="true" dropTemporaryQueues="true" />
</plugins>
</broker>
</beans>
丢弃指定目的死信
<beans>
<broker ...>
<plugins>
<discardingDLQBrokerPlugin dropOnly="MY.EXAMPLE.TOPIC.29 MY.EXAMPLE.QUEUE.87" reportInterval="1000" />
</plugins>
</broker>
</beans>
注意,目的名称使用空格分隔
The reportInterval property is used to denote how frequently do we output how many messages we have dropped - use 0 to disable.
用正则表达式过滤丢弃消息:
<beans>
<broker ...>
<plugins>
<discardingDLQBrokerPlugin dropOnly="MY.EXAMPLE.TOPIC.[0-9]{3} MY.EXAMPLE.QUEUE.[0-9]{3}" reportInterval="3000" />
</plugins>
</broker>
</beans>
Notice that the destination names use regular expressions. These match the number 000..999 at the end of each destination name.5. 死信队列消息的属性死信队列中的消息,会增加几个属性,比如原过期时间(originalExpiration),原originalDeliveryMode等参考:DLQ处理说明:http://activemq.apache.org/message-redelivery-and-dlq-handling.htmlindividualDeadLetterStrategy属性说明:http://fusesource.com/docs/broker/5.3/configref/http.activemq.apache.or/element/individualdeadletterstr.htmlsharedDeadLetterStrategy属性说明:http://fusesource.com/docs/broker/5.3/configref/http.activemq.apache.or/element/shareddeadletterstrateg.htmlredelivery属性说明:http://activemq.apache.org/redelivery-policy.html
相关文章推荐
- ActiveMQ的消息重发与死信管理(DLQ)
- ActiveMQ的消息重发与死信管理(DLQ)
- ActiveMQ的消息重发与死信管理(DLQ)
- ActiveMQ的消息重发与死信管理(DLQ)
- ActiveMQ的消息重发与死信管理(DLQ)
- activeMQ - 消息重发策略和DLQ死信队列
- ActiveMQ的消息重发机制
- Spring ActiveMQ 整合(二): 重发机制(消息发送失败后的重新发送)
- ActiveMQ的消息重发机制
- ActiveMQ的消息重发策略和DLQ处理
- ActiveMQ的消息重发机制
- ActiveMQ的消息重发机制
- ActiveMQ的消息重发机制
- ActiveMQ的消息重发机制
- ActiveMQ 处理失败时的消息重发机制
- ActiveMQ的消息重发策略和DLQ处理
- 【ActiveMQ】ActiveMQ 管理页面点消息ID提示Error
- activemq消息重发机制[转]
- ActiveMQ的消息重发机制
- ActiveMQ的消息重发机制