JVM环境中提供了三个可满足这些要求的集成框架: Spring Integration,Mule ESB和Apache Camel 。 它们实现了众所周知的企业集成模式(EIP, http://www.eaipatterns.com ),因此提供了标准化的,特定于领域的语言来集成应用程序。
这些集成框架几乎可以在JVM环境中的每个集成项目中使用,无论使用哪种技术,传输协议或数据格式。 所有集成项目都可以以一致的方式实现,而无需冗余的样板代码。
本文比较了这三种选择,并讨论了它们的优缺点。 如果您想知道何时使用更强大的企业服务总线(ESB)而不是这些轻量级集成框架之一,那么您应该阅读以下博客文章: http : //www.kai-waehner.de/blog/2011 / 06/02 / when-to-use-apache-camel / (说明了何时使用Apache Camel,但标题也可能是“何时使用轻量级集成框架”)。
比较标准
可以使用几个标准来比较这三个集成框架:
- 开源的
- 基本概念/架构
- 可测性
- 部署方式
- 人气度
- 商业支持
- IDE支持
- 错误处理
- 监控方式
- 企业准备
- 领域特定语言(DSL)
- 接口,技术和协议的组件数
- 可扩展性
相似之处
这三个框架都有很多相似之处。 因此,上述许多比较标准都是均匀的! 所有这些都实现了EIP,并提供了一致的模型和消息传递体系结构以集成多种技术 。 无论您必须使用哪种技术,都始终以相同的方式进行操作,即相同的语法,相同的API,相同的自动测试。 唯一的区别是每个端点的配置(例如,JMS需要队列名称,而JDBC需要数据库连接URL)。 IMO,这是最重要的功能。 每个框架使用不同的名称,但是想法是相同的。 例如,“骆驼路径”等效于“ M流”,“骆驼组件”在Spring Integration中称为“适配器”。
此外,还存在其他一些与重量级ESB不同的相似之处。 您只需要在类路径中添加一些库即可。 因此,您可以在JVM环境中的任何地方使用每个框架。 无论您的项目是Java SE独立应用程序,还是要将其部署到Web容器(例如Tomcat),JEE应用程序服务器(例如Glassfish),OSGi容器甚至云中,都可以。 只需添加库,进行一些简单的配置,即可完成。 然后,您可以开始实施集成工