嵌入式和独立activemq代理之间的区别

时间:2015-03-04 08:56:49

标签: spring apache-camel activemq

我正在使用Spring作为我的应用程序。我想知道“嵌入式”ActiveMQ和“独立”ActiveMQ之间存在什么差异。如果我运行嵌入式ActiveMQ,是否意味着远程客户端仍可以连接?我的理解是正确的,嵌入式ActiveMQ意味着ActiveMQ会在我启动Spring应用程序时自动启动,还是有其它意义呢?

例如,假设我已经在system-A中部署了一个应用程序,并在system-B中部署了相同的应用程序。我已经通过spring xml文件配置嵌入式ActiveMQ代理,并将代理URL作为tcp:10.1.1.10; < / p>

如果我向system-A中的activemq代理发送消息,我可以在system-B中使用相同的消息吗?

2 个答案:

答案 0 :(得分:2)

嵌入式ActiveMQ与独立ActiveMQ差异正是“嵌入式”和“独立”之间的区别。

让我在骆驼应用的背景下解释:

StandAlone ActiveMQ意味着,您拥有ActiveMQ并将Camel Application jar文件移动到其Lib文件夹中。您可以在Activemq的activemq.xml文件中导入Camel Application的camel-context.xml文件。 启动activeMQ.sh,启动ActiveMQ并使用它创建Camel路由。

请注意,我们将工件移动到不在任何其他容器内的ActiveMQ发行版。此ActiveMQ分发可以在您的本地计算机上。

另一方面:

嵌入式ActiveMQ 表示您为其他容器提供ActiveMQ功能。例如,您在任何Application Server中启用ActiveMQ功能。在这种情况下,您不会启动ActiveMQ本身。您只需启动封闭容器,并在容器启动时使ActiveMQ功能可用。

例如,您可以在本地计算机上安装Tomcat。您在Tomcat的lib文件夹中移动了几个相关的activeMq jar。在某些情况下,您可能必须配置Tomcat的配置文件。例如,如果您将队列作为JNDI对象提供,则需要将队列配置为资源。

希望这有帮助。

参考:http://icodingclub.blogspot.com/2011/09/spring-jms-with-embeded-activemq-in.html

答案 1 :(得分:1)

是的,您对嵌入式ActiveMQ是正确的,它驻留在您部署的应用程序中并在其中运行,当应用程序自身启动或停止时,此ActiveMQ实例会启动和停止。

独立的ActiveMQ实例独立运行,可以独立启动和停止

对于您的问题,是的,您可以使用嵌入了activeMQ实例的不同系统中的消息。

希望这有帮助! 祝你好运!