0

我在试图找出解决这个问题的方法时遇到了一些问题:我需要在 Apache Camel 上实现一个 DLC,但是当消息从我在 ActiveMQ 上的死信队列中出列时,必须比较它们中的每一个另一个 AMQ 队列上存在最新的按摩。

所以要明确:当 Camel 从 queue1(死信队列)消耗消息 M1 时,在尝试将其重新发送到某个路由之前,它必须将 M1(例如标头比较)与 queue2、M2 上的最新消息进行比较. M2 不会从 queue2 中移除(它也将用于下一次比较),而 M1 必须从 queue1 中移除。

我想了解这是否可行以及我缺少哪个 EIP 来实现这一点。

4

1 回答 1

0

您需要的是浏览QueueBrowserqueue2 的消息而不使用它们。

或者,您也可以在事务中从 queue2 消费,然后强制回滚,以便不消费消息。但是,当“queue2 上的最新消息”不代表第一条消息时,这将不起作用,因为您只能像这样处理第一条消息。

于 2022-02-01T06:33:19.913 回答