hornetq"找不到队列的队列信息 <other server="" uuid="">",核心桥梁?
题
我对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和端口,这些服务器将是独立的。.或者,如果您不需要群集,请替换独立非群集上的配置。
不隶属于 StackOverflow