我们有一些针对某些过滤器和聚合器的丢弃渠道,但我们已经看到丢弃渠道是常规直接渠道。
那么,那些丢弃的消息会去哪里?到DLQ?
而且,他们是否永远活在那里?因为我们正在努力处理内存消耗,我们希望这些消息在到达DLQ后立即被删除(垃圾回收)。
答案 0 :(得分:1)
即使Spring Integration基于Messaging概念,它也只是构建集成解决方案的工具。它不是经纪人,因此不提供开箱即用的状态管理,如队列持久性和DLQ。
你是对的,discardChannel
只是MessageChannel
,你可以在那里注入任何实现,并在该通道的丢弃流程中做一些所需的逻辑。发送到DLQ已经是您的特定用例,您真的应该手动执行此操作。在丢弃渠道上没有特定的Spring Integration。如果它只是常规QueueChannel
而没有任何关于此问题的轮询,那么你最终会使用OOM
一次,因为消息会永久存储在内存中。