我想在 vm://
协议(protocol)上作为独立应用程序运行 activemq
代理,并从驻留在不同 JVM 实例中的程序向其队列发送消息。是否可以?会成功吗?
This Documentation明确指出:
"inside the same JVM to communicate with each other inside the JVM"
但这对我来说根本没有意义:)我们有外部 JMS 代理(在同一台机器上)和客户端在不同的 JVM(例如 Tomcat)中运行的场景并不少见。 Active-MQ 文档对我一点帮助都没有,因为他们可能认为我的问题的解决方案是显而易见的,因此我感到困惑。
提前致谢。
最佳答案
我尝试了以下设置:
- 独立的 ActiveMQ 代理
- 在单独的 JVM 中运行的简单 Java 生产者-消费者程序
他们都在使用 vm://test
代理。
结论
Id 与 ActiveMQ 代理是否正在运行无关。在这两种情况下,我的简单示例都运行顺利 - 它正在创建 VM 代理,当 JVM 与我的程序一起关闭时,它已被丢弃。
这意味着,真正的 VM 代理仅在一个 JVM 中运行,无法从其他 JVM 访问,至少使用最简单的配置是这样。
关于java - VM 协议(protocol)是否支持两个 JVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065365/