2

我有一个系统,它由多个相互通信的胖客户端应用程序组成。这些应用程序目前通过 rmi 直接相互通信,但我正在探索使用消息传递框架的选项,特别是骆驼。

我知道骆驼可以独立运行(通常在我们进行测试时),但通常部署在容器或 esb 中。如果唯一与之通信的应用程序是桌面(摇摆)应用程序,那么在独立模式下运行骆驼是否合适?

4

3 回答 3

2

好吧,是的,不是的。Camel 是一个消息路由器,它可以帮助您定义呼叫路由。但是它不会帮助您选择通信协议。它只是使集成变得越来越快(例如,使用 JMS 与 App1 <-> App2 进行通信,使用 RMI 与 App2 <-> App3 以及其他一些协议用于 App2 <-> App3)。

是的,Camel 可能会部署在独立版本中。这是如何做到这一点的链接。我建议创建单独的应用程序(我也会在这里使用 Shade Maven 插件来嵌入所有依赖项)。

您也可以考虑使用一些 ESB,例如 Servicemix 或 Fuse。但是,这是相当大的环境......

于 2012-04-28T18:52:05.020 回答
2

实际上,ActiveMQ(例如 5.5.1)的普通安装(即解压缩)将与 Camel 捆绑在一起。只需编辑 conf/activemq.xml 并插入某处。在 conf/camel.xml 中配置骆驼。ActiveMQ 并不附带所有的 Camel 组件,因此只需将任何额外的 Camel jar 文件放到 /lib 中。您可以轻松地删除任何您自己的 .jar 文件,例如在 /lib 中定义一个 RouteBuilder 等。

于 2012-04-28T20:44:43.767 回答
1

为了在应用程序之间进行通信,我将使用一个独立的 ActiveMQ 代理(通常是两个用于故障转移的实例)并将骆驼嵌入到胖客户端应用程序中。然后,您可以使用骆驼中的 pojo 消息传递功能来实现几乎透明的通信。

请参阅我的博客以获取示例http://www.liquid-reality.de/x/NoBe

于 2012-04-29T06:47:39.930 回答