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

use*_*115 4 spring activemq-classic apache-camel

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

例如,假设我在系统 A 中部署了一个应用程序,并在系统 B 中部署了相同的应用程序。

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

Dol*_*ava 5

嵌入式 ActiveMQ 与独立 ActiveMQ 的区别正是“嵌入式”和“独立”这两个词之间的区别。

让我在 Camel 应用程序的上下文中解释一下:

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

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

另一方面:

嵌入式 ActiveMQ意味着您向其他容器提供 ActiveMQ 能力。例如,您在任何应用程序服务器中启用 ActiveMQ 功能。在这种情况下,您不会启动 ActiveMQ 本身。您只需启动封闭容器,当容器启动时,ActiveMQ 功能就可用了。

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

希望这可以帮助。

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


Vih*_*har 4

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

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

对于您的问题,是的,您可以使用来自具有嵌入式 activeMQ 实例的不同系统的消息。

希望这可以帮助!祝你好运!