我对HornetQ配置的知识非常有限,但我会尽力解释我的问题。

这是设置:

有几个独立的JBoss(6.1.0Final)实例在一个网络上运行。这意味着,它们不是集群的,它们部署了不同的应用程序,并且通常它们不应该相互干扰。每个JBoss都有一个主题配置的HornetQ。

没有核心桥(或任何桥)配置在 deploy/hornetq/hornetq-configuration.xml, ,事实上,这几乎是标准的conf文件,与jboss提供的文件几乎没有变化(如果有人问我,我很乐意发布它)。

在启动所有JBoss实例期间:

07:37:40,489 INFO  [HornetQServerImpl] Server is now live
07:37:40,489 INFO  [HornetQServerImpl] HornetQ Server version 2.2.5.Final (HQ_2_2_5_FINAL_AS7, 121) [7d0a3341-9eb0-11e3-980d-2c768a5d129f] started

当然,每个服务器的UUID是不同的。

但是,对于某些服务器,HornetQ也会创建网桥(为什么?):

07:37:40,764 INFO  [BridgeImpl] Connecting bridge sf.my-cluster.e479de63-9d3b-11e3-b089-2c768a5d0e23 to its destination [7d0a3341-9eb0-11e3-980d-2c768a5d129f]
07:37:40,878 INFO  [BridgeImpl] Connecting bridge sf.my-cluster.f9d193de-5bfa-11e3-9491-2c768a5d129f to its destination [7d0a3341-9eb0-11e3-980d-2c768a5d129f]
07:37:40,980 INFO  [BridgeImpl] Bridge sf.my-cluster.e479de63-9d3b-11e3-b089-2c768a5d0e23 is connected [7d0a3341-9eb0-11e3-980d-2c768a5d129f-> sf.my-cluster.e479de63-9d3b-11e3-b089-2c768a5d0e23]
07:37:40,980 INFO  [BridgeImpl] Bridge sf.my-cluster.f9d193de-5bfa-11e3-9491-2c768a5d129f is connected [7d0a3341-9eb0-11e3-980d-2c768a5d129f-> sf.my-cluster.f9d193de-5bfa-11e3-9491-2c768a5d129f]

第一个问题:为什么会发生这种情况,为什么HQ创建此网桥,即使没有指定它们的配置?

问题就在这里:

每隔几秒钟,HornetQ就会喷出

2014-02-26 08:17:28,379 ERROR [org.hornetq.core.server.management.impl.ManagementServiceImpl] (Thread-3 (group:HornetQ-client-global-threads-903011273)) Failed to call listener: java.lang.IllegalStateException: Cannot find queue info for queue 80ce792b-382b-4d22-99ae-60cf25e305027d0a3341-9eb0-11e3-980d-2c768a5d129f
    at org.hornetq.core.postoffice.impl.PostOfficeImpl.onNotification(PostOfficeImpl.java:278) [:6.1.0.Final]
    at org.hornetq.core.server.management.impl.ManagementServiceImpl.sendNotification(ManagementServiceImpl.java:654) [:6.1.0.Final]
    at org.hornetq.core.postoffice.impl.PostOfficeImpl.removeBinding(PostOfficeImpl.java:511) [:6.1.0.Final]
    at org.hornetq.core.server.cluster.impl.ClusterConnectionImpl$MessageFlowRecordImpl.removeBinding(ClusterConnectionImpl.java:886) [:6.1.0.Final]
    at org.hornetq.core.server.cluster.impl.ClusterConnectionImpl$MessageFlowRecordImpl.doBindingRemoved(ClusterConnectionImpl.java:874) [:6.1.0.Final]
    at org.hornetq.core.server.cluster.impl.ClusterConnectionImpl$MessageFlowRecordImpl.onMessage(ClusterConnectionImpl.java:695) [:6.1.0.Final]
    at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:866) [:6.1.0.Final]
    at org.hornetq.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:44) [:6.1.0.Final]
    at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:983) [:6.1.0.Final]
    at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) [:6.1.0.Final]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [:1.7.0_25]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [:1.7.0_25]
    at java.lang.Thread.run(Thread.java:724) [:1.7.0_25]

现在这有点"随机",一些JBoss服务器根本不记录它,一些用不同的Uuid多次记录它,这一切都取决于它在启动过程中创建了多少个网桥。..

为什么这会发生在我身上?我能做些什么来阻止它。我希望所有服务器彼此独立工作。

我很高兴提供更多的信息,可以帮助解决这个问题。

有帮助吗?

解决方案

桥梁是通过自动群集创建的。您的两台服务器可能是相同UDP配置的一部分(查看hornetq配置上的组UDP IP和端口),它们正在形成一个集群。

可能当您关闭其中一个节点时,您在重新启动时没有节点,并且网桥无法重新连接或类似的东西。

在这种情况下,您不应该形成一个集群,节点正在寻找彼此,从而找到集群间通信的桥梁。

更改UDP IP和端口,这些服务器将是独立的。.或者,如果您不需要群集,请替换独立非群集上的配置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top