正确的集成框架是绑定应用程序架构构建块的粘合剂。应用程序组件必须不断交换关键数据,以方便用户操作、服务扩展、威胁监视、后端操作、事件触发等。如果没有可靠的集成过程,应用程序和服务故障将淹没软件环境。
正确的集成框架是绑定应用程序架构构建块的粘合剂。应用程序组件必须不断交换关键数据,以方便用户操作、服务扩展、威胁监视、后端操作、事件触发等。如果没有可靠的集成过程,应用程序和服务故障将淹没软件环境。
为了解决这个问题,开发人员转向了三种企业应用程序的顶级集成框架:apachecamel、springintegration和Mule-ESB。每种方法都解决了如何以可扩展的方式简化企业应用程序之间的集成的难题。然而,他们也有各自的优势、弱点和最佳工作环境。
前三大集成框架
- Apache camel是一个开源框架,在用户中获得了广泛的社区支持。它在大量基于开源代码构建的软件架构中工作得特别好。Camel支持50多种数据格式,并具有一个包含280多个附加组件的库。架构师可以为特定场景扩展组件,例如异步消息传递、模拟测试和事件驱动的应用程序开发。
- 接下来,Spring集成是更广泛的springframeworkforjava的一部分,它还包括springboot编码平台。springintegration允许开发人员使用细粒度组件编写代码,这些组件提供了高重用性和简化的应用程序管理。
- 最后,Mule ESB是MuleSoft数据集成平台的企业服务总线,该平台于2018年被Salesforce收购。与其他面向高度分布式体系结构的框架不同,Mule-ESB为企业应用程序提供了更传统的SOA模型。作为MuleSoft的AnyPoint集成平台的一部分,Mule ESB使用核心Mule运行时引擎与anypointstudioide协同工作。
Apache camel vs.Spring Integration vs.Mule ESB
这三个集成框架中的每一个都可以将独立的应用程序连接到更广泛的企业生态系统中的其他应用程序。此外,它们都具有一种轻量级的、模块化的应用程序集成方法,使用组件和适配器连接端点。所有这三个框架都基于Gregor Hohpe和Bobby Woolf在《企业集成模式》一书中描述的集成模型。
但是,在可用性、技术和支持方面,不同的框架仍然存在显著的差异:
- 用户界面。Mule ESB有一个高度可视化的UI,对初学者很有帮助。然而,更有经验的开发人员可能更喜欢Camel和Spring集成提供的非视觉体验。
- XML与DSL。Camel和Spring集成都使用领域特定语言(dsl)来创建集成的路由或流。然而,Mule ESB依赖于更传统的XML配置文件。XML有它的用途,但许多Java开发人员更喜欢dsl,尤其是在构建复杂路由时。
- ESB的使用。顾名思义,Mule ESB的重点是企业服务总线。尽管ESB仍然是一个轻量级的选择,但它作为实现模型已经失去了重要的地位,这主要是由于微服务的兴起超过面向服务的架构。与此同时,Camel和Spring将致力于这些更新、更模块化的架构设计和开发。
- 文档。Camel和springintegration有专门针对这些平台的优秀文档,特别是因为它们拥有大量活跃的用户社区。MuleSoft在其整个平台的文档中包含Mule ESB文档。据报道,很难找到Mule ESB的特定页面和主题,这些页面和主题深藏在整个平台的文档层次结构中。
- 社区。Camel拥有最大的用户社区,其次是springintegration,然后是Mule ESB。Camel有9000多个关于堆栈溢出的标记问题,springintegration有6000多个,而Mule ESB只有不到1000个。
- 支持。MuleSoft为Mule ESB提供专用支持。Spring由其母公司VMware提供支持。另一方面,Camel完全依赖于开源社区的支持。你的决定可以归结为你的开发人员喜欢或需要多少牵手。
- 成本。Camel是完全开源的,这意味着它的前期成本最低。然而,你需要一个熟练的内部团队来维护这个平台,这可能是一个昂贵的雇佣。springintegration虽然是开源的,但对可选的培训和支持服务收费。Mule ESB需要对更广泛的mulesft框架进行投资。
选择集成框架
- Mule ESB是对企业SaaS工具的Salesforce/MuleSoft生态系统进行大量投资的组织的理想选择。它提供了最简单的体验,并且实现和启动相对快速。
- Apache camel和Spring integration在架构和用户统计方面是紧密结合的。在这里,偏爱Spring项目的以Java为中心的团队自然会倾向于Spring集成。它提供了开放和专有领域的最佳选择:一个由VMware提供的企业级支持支持的开放框架。
- Apache Camel是其中最开放的,提供了最广泛的支持。如果您的组织使用流行的开源技术,比如Kubernetes和Apache kafka,Camel很可能适合您。然而,这种免费的技术能力是有代价的,因为它需要您和您的员工保持骆驼内部的专业知识。幸运的是,它强大的开源社区可以帮助提供专业知识,但这仍然需要投入时间来探索和学习该社区。