我应该在apache Camel路由中投入多少精力,而不是在处理器中编写逻辑?



我已经使用Camel来做一些消息处理,从源获取消息,稍微按摩一下,然后将其发送到某个目标。

但我正试图将其用于更复杂的用例,不确定我的方法是否正确。基本上,我需要调用RESTful API并获得对象列表。对于每个对象,我需要调用另一个REST API,该API也将返回一个对象列表。然后我需要遍历该列表,并基于该对象调用另一个REST API。给定调用的结果,我要么留下对象,要么从列表中删除对象。一旦完成,就会有另一个REST调用返回另一个列表。然后,我从原始REST调用(out循环对象)中获取数据,将其与下一级列表对象以及上一级列表中的所有数据结合起来。一旦我得到了所有这些,我就构建一个JSON对象并进行另一个REST调用。

我可以想象如何在代码中实现这一点,这似乎会更简单。现在我正在做几个路线。第一个路由进行第一个REST调用,将JSON解组为POJO,拆分消息,然后将POJO发送到下一个路由。

我基本上使用子程序或函数调用之类的路由。这是正确的方法吗?

是的,我相信你在正确的轨道上。您所描述的用例是企业集成模式(eip)的典型组合:拆分器、聚合器、翻译器、过滤器,可能还包括富集器。

这些是Apache Camel的亮点,所以是的,一定要使用它们。将所有的逻辑放在Camel处理器中会引出一个问题:为什么要使用Camel呢?是的,当您还不太习惯这个库时,在一开始将所有这些写入Camel路由可能听起来需要更多的工作。但我相信,很快你就会看到这些努力带来的附加价值,并得到回报。仅举一个例子:当依靠Camel进行拆分时,决定并行处理您的个人记录只需要几个按键即可!

最新更新