Java 在独立模式下运行camel

Java 在独立模式下运行camel,java,architecture,messaging,apache-camel,Java,Architecture,Messaging,Apache Camel,我有一个由几个厚客户端应用程序组成的系统,它们可以相互通信。目前,这些应用程序通过rmi直接相互通信,但我正在探索使用消息传递框架的选项,特别是camel 我知道camel可以独立运行(通常在我们进行测试时),但通常部署在容器或esb中。如果只有桌面(swing)应用程序与camel进行通信,那么在独立模式下运行camel是否合适?是和否。camel是一种消息路由器,它可以帮助您定义呼叫的路由。但是,它不会帮助您选择通信协议。它只会使集成变得越来越快(例如,使用JMS来通信App1 App2,使

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


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

是和否。camel是一种消息路由器,它可以帮助您定义呼叫的路由。但是,它不会帮助您选择通信协议。它只会使集成变得越来越快(例如,使用JMS来通信App1 App2,使用RMI来通信App2 App3,使用其他协议来通信App2 App3)

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


您也可以考虑使用ESB,例如Service EMIX或FASE。然而,这是一个相当大的环境…

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

要在应用程序之间通信,我将使用独立的ActiveMQ代理(通常有两个用于故障切换的实例)并将camel嵌入到厚客户端应用程序中。然后,您可以使用camel中的pojo消息传递功能来实现几乎透明的通信


查看我的博客,了解一个示例

因此,如果我使用jms,我是否需要一个单独的jms提供程序(也许我可以使用activemq)?是的,在使用Camel组件推送和拉取消息之前,您需要一个jms代理启动并运行。您可能会考虑使用CAMEActuMeq组件。在我看来,这个独立的Camel应用程序将是JMS服务器的理想候选。在这种情况下,Camel和ActiveMQ将驻留在同一个VM中,因此您可以使用这个JMS连接方案:VM://localhost?……我知道这篇文章已经发布了一段时间了,但是@altanis您可以提供一个编辑,说明在单机版中运行Camel的优缺点吗?谢谢你的链接!谢谢-感谢你的博客链接。