我正在为我的应用程序使用 Spring。我想知道“嵌入式”ActiveMQ 和“独立”ActiveMQ 之间有什么区别。如果我运行嵌入式 ActiveMQ,这是否意味着远程客户端仍然可以连接?我的理解是否正确,嵌入的 ActiveMQ 意味着 ActiveMQ 将在我启动 Spring 应用程序时自动启动,还是有其他含义?
例如,假设我在系统 A 中部署了一个应用程序,并在系统 B 中部署了相同的应用程序。
如果我向 system-A 中的 activemq 代理发送消息,我可以在 system-B 中使用相同的消息吗?
最佳答案
嵌入式 ActiveMQ 与独立 ActiveMQ 的区别正是“嵌入式”和“独立”这两个词之间的区别。
让我在 Camel 应用程序的上下文中解释一下:
独立 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
关于spring - 嵌入式和独立 activemq 代理之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28850192/