我使用 seda 队列作为死信 channel 端点。如果网络中断或其他应用程序中断,它可以正常工作。
如果我重新启动自己的系统会发生什么?
我是否会丢失死信 channel 端点 SEDA 队列中的消息?
最佳答案
seda 端点不是可靠的消息解决方案,这意味着发送到 seda 目标的任何消息在发生故障/重新启动时都会丢失。如果 JMS 不是可用的解决方案,您将需要提供自己的持久性逻辑来提供消息恢复。
此外,鉴于 seda 端点是异步的,您必须确保在 DLQ 消息持久化后使用消息确认模式,以便 DLQ 的生产者能够收到成功或失败的通知,以确保可靠性。
这当然是在使用 DLQ 时。您还可以使用持久性预处理器来存储要传递的消息,并且仅在传递失败的情况下删除它们。
关于java - 在 Camel 的 SEDA 队列中保留失败的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10740475/