java - VM 协议(protocol)是否支持两个 JVM?

标签 java jvm activemq

我想在 vm:// 协议(protocol)上作为独立应用程序运行 activemq 代理,并从驻留在不同 JVM 实例中的程序向其队列发送消息。是否可以?会成功吗?

This Documentation明确指出:

"inside the same JVM to communicate with each other inside the JVM"

但这对我来说根本没有意义:)我们有外部 JMS 代理(在同一台机器上)和客户端在不同的 JVM(例如 Tomcat)中运行的场景并不少见。 Active-MQ 文档对我一点帮助都没有,因为他们可能认为我的问题的解决方案是显而易见的,因此我感到困惑。

提前致谢。

最佳答案

我尝试了以下设置:

  1. 独立的 ActiveMQ 代理
  2. 在单独的 JVM 中运行的简单 Java 生产者-消费者程序

他们都在使用 vm://test 代理。

结论

Id 与 ActiveMQ 代理是否正在运行无关。在这两种情况下,我的简单示例都运行顺利 - 它正在创建 VM 代理,当 JVM 与我的程序一起关闭时,它已被丢弃。

这意味着,真正的 VM 代理仅在一个 JVM 中运行,无法从其他 JVM 访问,至少使用最简单的配置是这样。

关于java - VM 协议(protocol)是否支持两个 JVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065365/

相关文章:

ssl - "unable to find valid certification path to requested target"添加新的 Keystore 到 ActiveMQ 之后

java - ActiveMQ 重新交付策略和阻塞/非阻塞消费者设计

java - 使用 camel 和 activemq 到 "pause"路由的正确方法是什么?

java - 如何在 Android 中查看图像

java - sun.jvm.hotspot.HelloWorld 的目的是什么?

java - JOOQ 元模型 : why is there no Table. 重命名(字符串)?

java - 垃圾收集器无法清除垃圾,导致频繁的 gc

Maven - 无法为对象堆错误保留足够的空间

java - Java 中的 "implements Runnable"与 "extends Thread"

java - 使用 thymeleaf 在 spring mvc 应用程序中从数据库生成 html 选择选项