Apache Camel和其他ESB产品

时间:2010-09-25 04:35:19

标签: apache-camel mule esb apache-servicemix

嘿,
如果我们有Apache Camel为什么要使用其他解决方案,如Apache ServiceMix和Mule?
Apache Camel与这些产品相比无法做到吗? 何时使用Mule / ServiceMix以及何时使用Camel?

7 个答案:

答案 0 :(得分:68)

现在是2016年,自从最初提出这个问题以来已经发生了很多变化,所以我想重新审视新观众。

从策略上讲

  • Apache Camel 始终坚持并且尚未发展成为重量级或完全成熟的运行时平台。它是多功能和模块化的,可以运行:

    1. 嵌入式在任何类型的Java容器(servlet容器,应用程序服务器,Spring Boot)中。
    2. 独立作为Java流程。
    3. 在OSGi环境中Apache Karaf)。
  • Apache Camel每月都在不断发展并获得牵引力和活动,正如我在OpenHub提取的这一点下的图表所描绘的那样。用户群也在不断增加。

Apache Camel Contributors per Month

  • 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则保持健康发展趋势!

Mule vs Camel in Google Trends

Apache Camel的技术演变

只是想在2010年9月25日(当您最初提出问题时)为您提供有关Apache Camel演变的一些功能指标。 This was the source tree at that point in time

  • 当时,Camel有88个组件,它现在有220个组件,包括与Facebook,Twitter,Salesforce,Apache IgniteApache Cassandra,AWS,Apache Kafka,MongoDB,{{3}的集成。等等。
  • 许多技术改进:异步路由引擎,消息历史记录,断路器EIP,EIP的许多改进和增强,如聚合,拆分,动态路由等。
  • 生态系统现已发展到现在还包括Apache Spark用于监控和管理,Hawtio用于部署等。
  • 此后超过fabric8已解决,包括新功能,改进,错误等。
  • 还有更多!

最后的笔记

在过去的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这样的封闭社区。

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)

克劳斯,骆驼常见问题解答中有很多错误,不出所料,这些错误对我们都不利。)

  • 骡子中的UMO模型不再是骡子。我们开始远离Mule 2中的那个模型,它已经在Mule 3中完全改变了。我们现在有一个非常简单的消息处理器模型,它使你的声明冗余
  • Mule已经有几年的显式类型转换,这不是Camel
  • 的区别
  • Mule根据OSI approved CPAL 1.0 license获得许可。这是一个开源许可证,而不是商业许可证。请尽快更新此

答案 6 :(得分:0)

首先,您需要了解Service Mix就像一个可以运行Apache Camel代码的容器,而Mule ESB本身就是一个单独的产品

您可以在ESB产品之间提供许多差异。

在研究区别之前,你应该先了解一些事情。他们是

  1. 产品的开发方式
  2. 其许可
  3. 其支持功能
  4. 是否开源
  5. 如果开源可以修改和使用源 等等。
  6. 以上是您在做出选择之前需要考虑的最佳因素。以上是大多数产品选择的通用,这里也需要特别注意。

    次要产品差异将特定于工具及其域。这可能是您正在寻找的答案。在进行选择之前,找到需要内省的列表。

    1. 社区支持
    2. 产品堆栈
    3. 修改自己代码的可扩展性
    4. 学习能力和可用性
    5. 作为企业购买时的产品支持
    6. 这可能是您需要自己选择差异的研究。任何方式都有很多增值,使产品适合您的组织,而不是在市场上说得最好。

      说到Apache camel或其他ESB。将产生的差异是

      1. 传输次数
      2. Apache Camel为您提供各种各样的DSL over Mule和其他是他们没有像Camel那样的多个DSL。
      3. 其产品堆栈中的Mule包含API管理和内部云连接器,其中Apache Camel是考虑FUSE ESB时的框架.JBoss Stack提供了大量其他产品,可以补充您的选择。