与仅仅在处理器中编写逻辑相比,我应该在apache Camel路由中投入多少精力?

t1qtbnec  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(94)

我已经使用Camel进行了一些消息处理,从一个源获取消息,对其进行一些处理,然后将其发送到某个目标。
但我尝试将其用于一个更复杂的用例,并且不确定我的方法是否正确。基本上,我需要调用一个RESTful API并获得一个对象列表。对于每个对象,我需要调用另一个REST API,它也将返回一个对象列表。然后,我需要循环该列表,并基于该对象调用另一个REST API。给定该调用的结果,我将保留该对象或从列表中删除该对象。(out循环对象),将它与下一级列表对象以及上一个列表中的所有数据组合在一起。一旦我得到了所有这些,我构建了一个JSON对象并进行了另一个REST调用。
我可以想象如何在代码中处理这个问题,看起来会简单得多。现在我正在处理几个路由。第一个路由进行第一个REST调用,将JSON解组为POJO,拆分消息,然后将POJO发送到下一个路由。
我基本上使用了类似于子程序或函数调用的路径,这是正确的方法吗?

unftdfkk

unftdfkk1#

是的,我相信您的思路是正确的。您描述的用例是Enterprise Integration Patterns(EIP)的典型组合:splitteraggregatortranslatorfilter,可能还有enricher
这些都是Apache Camel的闪光点,所以是的,一定要使用它们。把你所有的逻辑都放在Camel处理器里会引出这样一个问题:为什么还要使用Camel呢?是的,在开始时,当您还不太习惯使用库时,将所有这些内容都写为Camel路径听起来可能需要更多的工作。但我相信,很快您就会看到这些工作的附加值并获得回报。举个例子:当依赖Camel进行拆分时,决定并行处理各个记录只需要几次击键即可!

相关问题