我已经研究了Camel和EIP几天,但是有一些东西我还不太理解(还:))。 例如,假设我有 5 个应用程序,它们使用多种技术(REST WS、JMS、数据库等)相互交换数据。 - 我应该把我的 Camel 路线放在哪里? - 我应该更改每个单独应用程序的代码并声明它们的具体路由吗? - 我应该创建一个新的 Web 应用程序(或 OSGi 包)并使其作为中央提供程序来处理路由吗?我的意思是,更改其他应用程序的代码以指向此应用程序中定义的 Camel 端点? - 使用 Camel 意味着更改我的集成集中每个现有应用程序的代码? 我的意思是,Camel 在现实世界中是如何工作的?它更像是一个中央网络应用程序,可以拦截、处理内容然后发送到其他地方吗?它是我的应用程序内部的某些东西(与业务规则位于同一位置)然后池/拦截/监听内容并处理它吗? 我知道这些都是虚伪的问题,但我昨天一想到这些就睡不好觉。任何帮助将非常感激:)
最佳答案
这是我们使用的方法。
首先,问自己一个问题,您是否使用 Camel 来促进独立运行的应用程序/服务之间的通信?如果是这种情况,那么您可以编写一个包含 Camel 路线的新应用程序,它本质上将所有其他组件连接在一起以进行通信,并且您对现有应用程序进行最小的更改。
另一方面,也许您想使用驼峰作为已经相互通信的服务的架构标准?在这种情况下,您想要进入每个现有应用程序并将服务间通信的代码(以及与之相关的所有内容,例如配置和错误处理)重写为驼峰路由。您可能会保持业务逻辑不变,并删除/重写大量代码来执行 Web 服务调用、jms 等操作。
中型 Camel 路线可以轻松替换几百行样板代码,并且更具可读性,而且您可以免费获得所有 EIP 和组件(quartz、hazelcast 等)。
仅供引用,我使用 JBoss Fuse 作为 ESB(使用 Apache Camel),它在企业级集成方面运行得非常好。
关于integration - 我的 Camel 应用程序与我想要集成的应用程序有何关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20919450/