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

标签 java apache-camel eip

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

最佳答案

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

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

这当然是在使用 DLQ 时。您还可以使用持久性预处理器来存储要传递的消息,并且仅在传递失败的情况下删除它们。

关于java - 在 Camel 的 SEDA 队列中保留失败的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10740475/

相关文章:

Java - 检查java文件是否写得好

java - 来自 Xpand 的 sample -

apache-camel - 如何提高 Seda 队列的性能?

java - Camel Java DSL - header 中的 ENUM 路由 - 基于内容的路由器或动态路由器

callstack - EIP 和返回地址有什么区别?

java - 模运算符与按位与的性能比较

java - Java 类中静态成员的锁定获取

java - Apache Camel/Spring DSL 中 header 值的 xpath 内的子字符串

java - 当 JVM 达到一定的堆大小时,如何停止 Camel 路由?

pointers - EIP寄存器如何获取其值?