【问题标题】:Start several embedded HornetQ brokers in the same VM在同一个 VM 中启动多个嵌入式 HornetQ 代理
【发布时间】:2014-06-06 21:53:13
【问题描述】:

有没有办法在同一个 VM 中启动多个 HornetQ 嵌入式代理?例如,两个独立的应用程序在同一个进程中运行并且完全不相关。

如果我尝试注册第二个 EmbeddedJms 实例,而一个已经在运行,这就是我得到的结果

HQ221043:添加协议支持 CORE 服务器:HQ221003:尝试部署队列 jms.queue.sampleQueue 服务器:HQ221003:尝试部署队列 jms.topic.sampleTopic 服务器:HQ224000:初始化失败 java.lang.IllegalArgumentException: HQ119062: id 0 的接受者已经注册 在 org.hornetq.core.remoting.impl.invm.InVMRegistry.registerAcceptor(InVMRegistry.java:36) 在 org.hornetq.core.remoting.impl.invm.InVMAcceptor.start(InVMAcceptor.java:104) 在 org.hornetq.core.remoting.server.impl.RemotingServiceImpl.start(RemotingServiceImpl.java:321) 在 org.hornetq.core.server.impl.HornetQServerImpl.initialisePart2(HornetQServerImpl.java:1725) 在 org.hornetq.core.server.impl.HornetQServerImpl.access$1400(HornetQServerImpl.java:170) 在 org.hornetq.core.server.impl.HornetQServerImpl$SharedNothingLiveActivation.run(HornetQServerImpl.java:2700) 在 org.hornetq.core.server.impl.HornetQServerImpl.start(HornetQServerImpl.java:450) 在 org.hornetq.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:485)

可以找到配置嵌入式代理的代码here

【问题讨论】:

    标签: hornetq


    【解决方案1】:

    我们一直在我们的测试套件上这样做..

    在 Connection 属性中,您可以在 inVM 属性中设置 server-id。

    连接器/接受器常量在后续服务器上的 server-id=1, 2... n。

    看看 org.hornetq.core.remoting.impl.invm.TransportConstants

    【讨论】:

    • 谢谢!对于那些对其如何工作的非常精确的细节感兴趣的人,check this commit - 它还包含显示如何使用 Spring Boot 配置它的新测试。
    猜你喜欢
    • 2012-06-02
    • 2011-06-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 2017-01-04
    • 2014-02-19
    • 1970-01-01
    • 2018-02-16
    相关资源
    最近更新 更多