【问题标题】:difference between embedded and standalone activemq broker嵌入式和独立的 activemq 代理之间的区别
【发布时间】:2015-05-05 04:33:07
【问题描述】:

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

例如,假设我在系统 A 中部署了一个应用程序,并在系统 B 中部署了相同的应用程序。在应用程序中,我通过 spring xml 文件配置了嵌入式 ActiveMQ 代理,代理 url 为 tcp:10.1.1.10;

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

【问题讨论】:

    标签: spring apache-camel activemq


    【解决方案1】:

    Embedded ActiveMQ 与 Standalone ActiveMQ 的区别正是“Embedded”和“Standalone”这两个词之间的区别。

    让我在 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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-01-06
        • 2016-03-25
        • 2017-04-11
        • 2011-05-28
        • 2014-01-02
        • 2012-05-13
        • 2018-02-16
        • 2011-12-08
        • 2021-12-17
        相关资源
        最近更新 更多