你什么时候会使用企业服务总线和像 Apache Camel 这样的集成框架?

Dav*_*ave 1 esb apache-camel fuseesb

我试图通过阅读这篇文章来解决何时使用 Apache Camel 是合适的还是不合适的 - https://dzone.com/articles/when-use-apache-camel。文章中提到,在服务数量较少的情况下,使用Camel这样的集成框架可能会有些矫枉过正,这是有道理的。但是我被这句话搞糊涂了

尽管 FuseSource 提供商业支持,但我不会将 Apache Camel 用于非常大的集成项目。在大多数情况下,ESB 是完成这项工作的正确工具。它提供了许多附加功能,例如 BPM 或 BAM。当然,您也可以使用多个单一的框架或产品并“创建”您自己的 ESB,但这是浪费时间和金钱(在我看来)。

这是因为集成框架缺少 ESB 提供的组件吗?如果有,那些是什么?

str*_*y05 5

在功能级别上,Apache Camel 可以完成所有其他 ESB 所做的一切,并且是几乎所有集成工作的不错选择。它为您能想到的每一种传输提供连接器(骆驼说的组件),处理集群,可以提供 JMS 代理以及您需要集成的任何其他内容。

它没有其他工具(Tibco、webMethods、Boomi 等)那样漂亮的 UI 和 IDE,这是一个很大的优势。如果您使用 Camel,开发人员实际上可能会编写单元测试 :) 我当然是在开玩笑,集成开发人员从不编写单元测试。

在“重量”方面,Camel 本身并不过分臃肿。它可以用作独立的运行时,或者您可以简单地将集成功能用作另一个应用程序中的库。它大量使用 spring 并且可以运行大量线程,因此需要合理的内存量(~512Mb JVM Heap 将是下限)但不难使用。它不会打你。

JBoss Fuse 是完全成熟的红帽支持的企业 ESB。它基于 Camel,但使用 apache karaf 作为 OSGi 容器的运行时。这很重,但为您提供了非常强大的 ESB 运行时、部署模型和管理界面,您可以从 Red Hat 购买 Fuse 和 ActiveMQ 的商业支持。这是更传统的“ESB”平台,但所有集成功能的内部深处都来自 Camel。