骆驼路线-过滤除第一条消息外的所有内容

时间:2019-05-31 10:26:35

标签: apache-camel aggregation

我可以过滤邮件,以便仅转发具有给定相关表达式的邮件吗?

我有来自不同设备的消息流。我想保留所有已遇到的设备的SQL表。

私有方式是使用插入语句将所有消息路由到sql组件。但这会在数据库上造成不必要的负载,因为设备发送的频率很高。

我当前的解决方案是拥有一个Java谓词,该谓词自上次重启以来首次遇到设备ID时会返回true。

这可行,但是我想看看是否可以用骆驼板载方法代替它-可能会使路线更容易理解。

是否有某种方法可以使用聚合只传递具有给定相关值的第一条消息?

1 个答案:

答案 0 :(得分:1)

Camel idempotent consumer正是这样做的。

借助已处理消息的存储库,它会丢弃具有相同标识特征的任何其他消息。

无论您在消息传递中具有至少一次语义的地方,这都非常方便。