SpringIntegration中丢弃的消息在哪里?

时间:2017-05-16 13:01:49

标签: spring spring-integration

我们有一些针对某些过滤器和聚合器的丢弃渠道,但我们已经看到丢弃渠道是常规直接渠道。

那么,那些丢弃的消息会去哪里?到DLQ?

而且,他们是否永远活在那里?因为我们正在努力处理内存消耗,我们希望这些消息在到达DLQ后立即被删除(垃圾回收)。

1 个答案:

答案 0 :(得分:1)

即使Spring Integration基于Messaging概念,它也只是构建集成解决方案的工具。它不是经纪人,因此不提供开箱即用的状态管理,如队列持久性和DLQ。

你是对的,discardChannel只是MessageChannel,你可以在那里注入任何实现,并在该通道的丢弃流程中做一些所需的逻辑。发送到DLQ已经是您的特定用例,您真的应该手动执行此操作。在丢弃渠道上没有特定的Spring Integration。如果它只是常规QueueChannel而没有任何关于此问题的轮询,那么你最终会使用OOM一次,因为消息会永久存储在内存中。