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

标签 spring apache-camel activemq

我正在为我的应用程序使用 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/

相关文章:

java - 如何使用Camel Apache计时器组件

java - 使用 Apache Camel 进行休息调用

spring-boot - Camel ActiveMQ + Spring boot不读取spring activemq配置

java - 使用 Spring 框架在矩阵中直接注入(inject) double 值

java - Bitronix + Spring + Hibernate + 持久性

java - 使用 Spring RCP 的桌面应用程序

java - 是否可以在 Spring Boot 中的两个方法之间传递模型值?

transactions - Camel 事务异常处理

java - 使用camel蓝图连接到activeMQ

apache - 监控 ActiveMQ 性能的工具