嘿,
如果我们有Apache Camel为什么要使用其他解决方案,如Apache ServiceMix和Mule?
Apache Camel与这些产品相比无法做到吗?
何时使用Mule / ServiceMix以及何时使用Camel?
答案 0 :(得分:68)
现在是2016年,自从最初提出这个问题以来已经发生了很多变化,所以我想重新审视新观众。
Apache Camel 始终坚持并且尚未发展成为重量级或完全成熟的运行时平台。它是多功能和模块化的,可以运行:
Apache Camel每月都在不断发展并获得牵引力和活动,正如我在OpenHub提取的这一点下的图表所描绘的那样。用户群也在不断增加。
2012年,Red Hat acquired FuseSource,Apache Camel,ActiveMQ,ServiceMix和CXF的主要推动者和开发者之一。 Red Hat现在聘请了几个提交者和PMC成员来处理Apache Camel。
Mule ESB提供two versions of their product:社区(CPAL许可下免费)和企业(付费)。他们将社区版本定义为:
非常适合评估或预生产使用。
=>这意味着您应该获得付费企业订阅以进行生产使用。
事实上,Mule ESB社区版是在CPAL license下发布的。这意味着如果你仍然决定使用这个版本,骡子需要:
每次启动或最初运行可执行文件和源代码或大型工作时,最终用户使用的图形用户界面上必须出现Mulesoft的归因信息的显着显示才能访问此类涵盖代码(可能包括在启动画面上显示),如果有的话。 =>基本上你需要 做广告 ,无论你使用Mule构建的是什么,都在Mule上运行。
如果您通过网络访问Mule ESB的部署(它始终是,因为它是一个集成平台!),您还必须使部署的源可供访问它的任何人使用。
正如上面提到的其他人,Apache Camel是一个完全开放的项目,由社区推动社区。所有源代码都是公开的,鼓励每个人发送拉取请求,提供组件并在论坛中提供帮助或查询。相反,Mule社区是gated community。
最后但并非最不重要;也许是最重要的部分。 Here is what Google Trends has to say about Mule ESB vs. Apache Camel。请注意,我使用新的语义主题度量来获得更高的准确度,而不是标准的查询关键字。这样我们就不会测量动物(Mule vs Camel)的受欢迎程度,而是测量软件的受欢迎程度!解读:从2007年到2011年,骡子大幅度下降,而阿帕奇骆驼则趋于稳定。自2011年以来,Mule已经停滞不前,而Apache Camel则保持健康发展趋势!
只是想在2010年9月25日(当您最初提出问题时)为您提供有关Apache Camel演变的一些功能指标。 This was the source tree at that point in time
在过去的5,25年里,这两种产品都有了很大的发展!但是,由于Mule ESB和Apache Camel的许可证和社区性质不同,我认为它们之间的可比性不高。
Apache Camel是完全开源的❤️,而Mule ESB社区要求用户归因于Mulesoft并发布使用Mule的软件的源代码。 Apache软件许可证是一个 商业友好型 许可证:您可以自由使用没有属性的Camel或任何其他要求。真正像啤酒一样免费!
希望过去几年的这种反思有助于新观众! :)
免责声明:我是Apache Camel项目的提交者和PMC成员。
答案 1 :(得分:64)
Apache Camel是一个实现企业集成模式(EIP)的库。虽然它可以使用Spring作为其IOC框架,但它甚至不依赖于Spring,因此它完全独立于平台。它只是一个图书馆。因此,您可以在任何JVM环境中运行它,例如简单的jvm,servlet,ejb,osgi。它没有带来容器这样的骡子的任何好处(或开销)。在我看来,它在这个领域更清晰地分离了关注点。
Mule也可以嵌入到不同的环境中,但我认为Mule既有将EIP库耦合到容器的优点和缺点。当你在servlet或ejb环境中部署Mule时,你真的想要携带Mule容器的所有包袱吗?我不是骡子专家,我认为你可能花费相对适度的努力并清理掉一些冗余功能。 (注意,在所有情况下这都是不错的功能,如果你在另一个容器中运行嵌入,它就是多余的。)
Apache ServiceMix是一个OSGI容器,它使用Camel实现EIP作为ESB的基础。虽然ServiceMix历史上始于JBI,但它已经从JBI转移到了(IMO)一个很好的分层架构,它在OSGI容器中结合了最好的Apache CXF,Camel和ActiveMQ。这里的主要价值不是ServiceMix及其JBI支持,而是基础OSGI容器标准与经过验证的Apache传输相结合,如用于Web服务的CXF和用于JMS的ActiveMQ。 OSGI是一个成熟的标准,提供了一个容器,可以解决在.NET出现之前困扰Microsoft的相同类型的“DLL”地狱。虽然.NET和OSGI都没有解决潜在问题的基本复杂性,但它们至少提供了解决它的方法。 OSGI还有其他好处,但从产品选择的角度来看,基于标准的容器是主要的,而Mule(和Java一般)没有解决的基本特性是依赖管理。
将Mule与Apache社区进行比较时需要注意的一些重要事项。从某种意义上说,Mule就像Redhat一样,虽然它是一个开源许可证但在我看来并不是一个开放的社区。任何人都可以参与Apache,而MuleSoft拥有Mule社区和最终路线图。其次,虽然Mule社区可以说非常活跃,但我认为Apache社区要大得多(当然,因为它不是一个封闭的社区)。两种方法都有加号和减号。对Apache方法的一个好处是,有多个基于Camel,CXF,ActiveMQ和OSGI的ESB供应商。例如,Talend在没有ServiceMix JBI历史的情况下提供相同核心技术的ESB。这在Apache社区中既有加分也有缺点,但真正的重点是强调Apache和Mule之间的区别。你不会在Mule社区找到多个供应商。所以IMO像Talend或ServiceMix这样的Apache ESB是一个更广泛,更具包容性,最终具有竞争力的社区,而不是像Mule这样的封闭社区。 p>
Ed Ost
答案 2 :(得分:8)
我的博文真正回答了这个问题:http://www.kai-waehner.de/blog/2011/06/02/when-to-use-apache-camel/ => Apache Camel是一个轻量级的集成框架,ServiceMix等是完整的ESB。
答案 3 :(得分:5)
Camel是一个中介引擎,而Mule是一个轻量级的集成平台。不同之处在于,Mule提供ESB的所有功能,包括用于部署应用程序,REST和Web服务的容器。 Mule可以以相同的方式嵌入Camel,以允许应用程序开发人员使用其集成代码嵌入应用程序代码。两者都与Spring紧密集成。
Mule不使用JBI for good reasons,现在已经解散了JBI规范(没有工作组,由Oracle最初拥有JBI规范的工作组),使用JBI没有很好的专业或技术理由。
答案 4 :(得分:4)
Apache Camel上有一些常见问题解答条目,对此有所了解 http://camel.apache.org/faq
Apache Camel的链接集 http://camel.apache.org/articles.html
让社区中的人们进行交流,并将Camel与其他项目进行比较。
答案 5 :(得分:0)
答案 6 :(得分:0)
首先,您需要了解Service Mix就像一个可以运行Apache Camel代码的容器,而Mule ESB本身就是一个单独的产品
您可以在ESB产品之间提供许多差异。
在研究区别之前,你应该先了解一些事情。他们是
以上是您在做出选择之前需要考虑的最佳因素。以上是大多数产品选择的通用,这里也需要特别注意。
次要产品差异将特定于工具及其域。这可能是您正在寻找的答案。在进行选择之前,找到需要内省的列表。
这可能是您需要自己选择差异的研究。任何方式都有很多增值,使产品适合您的组织,而不是在市场上说得最好。
说到Apache camel或其他ESB。将产生的差异是