我有一个使用ActiveMQ代理的应用程序。为了进行一些集成测试,我创建了另一个将消息放入队列的工具。 我想要实现的是避免使用物理ActiveMQ,但是在启动我的应用程序的同时初始化AMQ,然后连接我的工具,该工具将消息加载到此队列中,最后关闭所有连接。当我像vm:// localhost一样启动AMQ传输时,我可以使用相同的进程(单元测试)这样做但当我想从另一个进程连接以将sht放入队列时它不起作用。有人遇到过类似的问题吗?
答案 0 :(得分:1)
vm传输无法在启动它的JVM外部进行通信。
将peer传输与vm
结合使用,允许嵌入式代理在discovery网络(多播,jgroup等)上发现远程代理,但这似乎有点过分,建议使用tcp
简单。
//create embedded broker using tcp
BrokerService broker = new BrokerService();
broker.addConnector("tcp://localhost:61616");
broker.start();
//remote client use tcp to connect, but local JVM client can use vm
vm:broker:(tcp://localhost:61616)