何时使用Spring Integration与Camel?

作为一个经验丰富的Spring用户,我假设Spring Integration在最近的一个需要一些(JMS)消息传递功能(更多细节)的项目中是最有意义的。在使用Spring Integration工作了几天之后,考虑到您必须配置的信道数量以将一些请求 - 响应(侦听不同的JMS队列)通信到位,它仍然感觉像是很多配置开销。

因此,我一直在寻找一些背景信息,说明Camel与Spring Integration的不同之处,但似乎那里的信息非常多余,我发现:

问题是:在使用一个堆栈而不是另一个堆栈时,您取得了哪些经验?在哪些情况下,你会建议Camel在春季集成缺乏支持的情况下?您在哪里看到每种方法的优缺点?来自现实世界项目的任何建议都非常感谢。


答案 1

我们选择Camel而不是Spring-Integration,因为流畅的API非常好。我们实际上在Spring项目中使用它,并使用Spring来配置它的一部分。编程API很清楚,并且有一大堆合理的组件。

我们做了一个小规模的枪战,基本上在那个时候,为了我们的要求,骆驼赢了。我们主要使用它来将内部数据文件传输到/从外部方传输,这通常需要格式转换使用ftp / sftp / ...或将其附加到电子邮件并将其发送出去。

我们发现编辑-编译-调试周期缩短了。使用时髦来尝试设置路线是额外的奖励。

Spring-Integration也是一个很棒的产品,我很确定它也能满足我们的需求。


答案 2

我只推荐Spring Integration,如果你已经有一个Spring项目,你只需要使用File,FTP,JMS,JDBC等添加一些“基本”集成。

Apache Camel有两个主要优点:

  1. 支持许多很多技术。
  2. 此外,一个(好的)XML DSL,Java,Groovy和Scala都有流畅的API。

因为Apache Camel与Spring有很好的集成,我甚至会在大多数Spring项目中使用它而不是Spring Integration。

如果您需要更多详细信息,可以在我的博客文章中阅读我的经验:为选择而宠坏:使用哪个集成框架 - Spring Integration,Mule ESB还是Apache Camel?


推荐