integration - 我的 Camel 应用程序与我想要集成的应用程序有何关联?

标签 integration apache-camel eip

我已经研究了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/

相关文章:

java - Apache Camel FTP 在轮询时使用 Simple 来选择目录

java - 如何遍历 Camel 体内的嵌套列表?

程序集调用堆栈 - 术语问题

linux - 通过 GDB 运行程序时函数位置是否改变?

java - Apache Camel Spring XML - 从文件名表达式调用 Bean 方法

git - Microsoft Git Provider 和 Visual Studio 2012 启动配置比较工具失败

visual-studio - 结束 Visual Studio 调试 session 时自动关闭 Chrome 或 Firefox(如 IE)

java - Hazelcast - 为什么 IMap.remove(key) 被阻止?需要用力移除

java - 为什么 xml 验证失败?

java - 打开 jpa - 使用 log4j.xml 捕获日志记录