在Camel的SEDA队列中保留失败的消息

时间:2012-05-24 15:22:13

标签: java apache-camel eip

我使用seda队列作为死信通道端点。如果网络中断或其他应用程序关闭,它可以正常工作 如果我重新启动自己的系统会发生什么?
我会在死信通道端点SEDA队列中丢失我的消息吗?

1 个答案:

答案 0 :(得分:1)

seda端点不是可靠的消息解决方案,这意味着发送到seda目标的任何消息都会在发生故障/重新启动时丢失。如果JMS不是可用的解决方案,则需要提供自己的持久性逻辑以提供消息恢复。

此外,鉴于seda端点是异步的,您必须确保在DLQ消息持久化之后使用消息确认模式,以便生产者向DLQ通知成功或失败以确保可靠性。

这当然是在使用DLQ时。您还可以使用持久性预处理器来存储用于传递的消息,并且只有在无法传递它们的情况下才删除它们。