关于班组建设管理的网站,国外wordpress论坛,wordpress如何安装模板文件,东莞市建网站Apache Camel是JVM / Java环境中我最喜欢的开源框架之一。 它可以轻松集成使用多种协议和技术的不同应用程序。 本文介绍了何时使用Apache Camel以及何时使用其他替代方法。 问题#xff1a;企业应用程序集成#xff08;EAI#xff09; 由于新产品和新应用#xff0c;几乎… Apache Camel是JVM / Java环境中我最喜欢的开源框架之一。 它可以轻松集成使用多种协议和技术的不同应用程序。 本文介绍了何时使用Apache Camel以及何时使用其他替代方法。 问题企业应用程序集成EAI 由于新产品和新应用几乎每个公司都必须进行企业应用程序集成。 集成这些应用程序会产生一些问题。 每十年出现新的范例例如客户端/服务器通信面向服务的体系结构SOA或云计算。 此外出现了不同的接口协议和技术。 如今而不是过去很多年前将数据存储在文件中而不再使用SQL数据库。 有时在某些用例中甚至需要NoSQL数据库。 同步远程过程调用或异步消息传递用于通过多种技术如RMISOAP Web服务REST或JMS进行通信。 存在许多软件孤岛。 尽管如此这几十年来的所有应用程序和产品都必须相互通信才能完美地协同工作。 企业集成模式EIP 当然您可以彻底解决每个问题编写一些意大利面条式代码并使应用程序协同工作。 不幸的是您的管理层将不喜欢该解决方案的长期前景。 企业集成模式www.eaipatterns.com帮助分散问题并使用标准化方法集成应用程序。 使用这些您总是使用相同的概念来转换和路由消息。 因此最好在每次遇到问题时都不要重新发明轮子。 集成系统的替代方法 存在用于集成应用程序的三种选择。 EIP可以在每种解决方案中使用。 解决方案1自己的自定义解决方案 实施适合您的问题的单独解决方案而不必将问题分成几小部分。 这可行并且可能是小型用例的最快替代方案。 您必须自己编写所有代码。 如果团队成员更换维护成本可能会很高。 解决方案2集成框架 使用有助于使用几种集成模式以标准化方式集成应用程序的框架。 它大大减少了工作量。 每个开发人员都将很容易理解您的工作如果他知道所使用的框架。 解决方案3企业服务总线ESB 使用企业服务总线来集成您的应用程序。 在幕后ESB还使用了集成框架。 但是还有更多功能例如业务流程管理注册表或业务活动监视。 通常您可以在图形用户界面中配置路由和诸如此类的东西–您必须自己决定是否可以降低复杂性和工作量。 通常ESB是一个复杂的产品。 学习曲线要高得多。 但是您将获得一个非常强大的工具该工具应该可以满足您的所有需求。 什么是Apache Camel Apache Camel是一个轻量级的集成框架可实现所有EIP。 因此您可以使用所需的模式轻松集成不同的应用程序。 您可以使用JavaSpring XMLScala或Groovy。 您可以想象到的几乎每种技术都可以使用例如HTTPFTPJMSEJBJPARMIJMSJMXLDAPNetty以及许多很多其他技术当然大多数ESB也提供对它们的支持。 此外可以非常轻松地创建自己的自定义组件。 您可以将Apache Camel作为独立的应用程序部署在Web容器例如Tomcat或JettyJEE应用程序服务器例如JBoss AS或WebSphere ASOSGi环境中或与Spring容器结合使用。 如果您需要有关Apache Camel的更多信息请访问其网站作为起点 http : //camel.apache.org 。 本文暂无技术介绍J 什么时候使用Apache Camel 如果要集成具有不同协议和技术的多个应用程序Apache Camel很棒。 为什么 我非常欣赏其中一项功能除了支持多种技术之外还支持不同的编程语言 每个集成都使用相同的概念 无论您使用哪种协议。 无论您使用哪种技术。 无论您使用哪种域特定语言DSL它都可以是JavaScalaGroovy或Spring XML。 您以相同的方式进行操作。 总是 有生产者有消费者有端点有EIP有自定义处理器/ bean例如用于自定义转换和参数例如用于凭证。 这是一个包含使用Java DSL的所有这些概念的示例 from„ activeMQorderQueue“.. transaction。log„ processing order“。tomock“ notYetExistingInterface” 现在让我们看一下使用Scala DSL的另一个示例 “ fileincomingOrdersnoop true”过程新的TransformationProcessor到“ jdbcorderDatastore” 如果您是开发人员那么您应该能够认识到这些路线的作用不是吗 另外两个非常重要的功能是对错误处理例如使用死信队列的支持和自动测试。 您可以使用Camel扩展的JUnit轻松测试所有内容 同样无论您要支持哪种技术您都始终使用相同的概念。 Apache Camel已经成熟可以投入生产了。 它提供可伸缩性事务支持并发和监视。 FuseSource可提供商业支持 http : //fusesource.com/products/enterprise-camel 什么时候不使用Apache Camel 好吧是的在某些用例中我不使用Apache Camel。 我已经在下图中说明了这一点请记住我上面提到的三种选择自己的自定义集成集成框架企业服务总线。 如果您只需要集成一种或两种技术例如读取文件或发送JMS消息则使用一些众所周知的库例如Apache Commons IO或Spring JmsTemplate可能会更容易更快捷。 但是请务必使用这些帮助程序类纯净的File或JMS与try-catch-error集成非常丑陋 尽管FuseSource提供了商业支持但我不会将Apache Camel用于大型集成项目。 在大多数情况下ESB是完成此任务的正确工具。 它提供了许多其他功能例如BPM或BAM。 当然您也可以使用几个单一的框架或产品并“创建”自己的ESB但这是浪费时间和金钱在我看来。 已经有几种生产就绪的ESB。 通常开源解决方案比诸如WebSphere Message Broker之类的商业产品更轻巧您可能只需要一两天即可安装该产品的评估版 著名的开源ESB是Apache ServiceMixMule ESB和WSO2 ESB。 顺便说一句您是否知道某些基于Apache Camel框架的ESB例如Apache Service Mix和Talend ESB。 因此如果您喜欢Apache Camel则也可以使用Apache ServiceMix或基于ServiceMix的商业化Fuse ESB。 结论 Apache Camel是一个很棒的框架用于将应用程序与不同的技术集成在一起。 最好的事情是您始终使用相同的概念。 此外对许多技术的支持良好的错误处理和轻松的自动测试使其可用于集成项目。 由于每个公司的应用程序和技术的数量将进一步增加因此Apache Camel拥有美好的未来。 今天我们有了应用程序孤岛十年后我们可能会部署在Goggle App EngineCloudFoundryAmazon EC3或任何其他云服务中的云孤岛。 因此我希望Apache Camel也不会为适应云时代做好准备例如通过提供易于连接到云框架的组件。 但这就是未来。如果您必须在JVM / Java环境中集成应用程序那么现在您真的应该尝试一下该框架。 顺便说一句我知道我在本文中赞扬Camel但我既不是Camel的提交者也不是FuseSource的工作人员。 我只是真的很喜欢这个框架。 最好的祝福 参考 何时使用Apache Camel 从我们的JCG合作伙伴 Kai Wahner在关于Java EE / SOA /云计算的博客上的博客。 翻译自: https://www.javacodegeeks.com/2012/07/when-to-use-apache-camel.html