HornetQ «Не удается найти информацию о очереди для очереди <Другое сервер UUID>», Core Bridges?
Вопрос
У меня очень ограниченные знания конфигурации HornetQ, но я постараюсь объяснить мою проблему лучше всего.
<Сильные> Вот установка:
Есть несколько автономных экземпляров JBoss (6.1.0final), работающих в одной сети. Это означает, что они не кластеризованы, они развернули разные приложения, и в целом они не должны мешать друг другу. Каждый jboss имеет hornetq, настроенный с одной темой.
Нет основных мостов (или никаких мостов вообще), сконфигурированных в deploy/hornetq/hornetq-configuration.xml
, на самом деле это в значительной степени стандартный файл CONT, с небольшим количеством изменений из того, что поставляется с jboss (я рад опубликовать его Если кто-то спросит Tho).
Во время запуска всех экземпляров 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 Spews
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 вообще не входят в систему, некоторые входят в систему несколько раз с разными UUIDS, все зависит от того, сколько мостов его создают во время запуска ... .
Почему это случится со мной? Что я могу сделать, чтобы остановить это. Я хочу, чтобы все серверы работали независимо друг от друга.
Я рад предоставить больше информации, которая может помочь решить эту проблему.
Решение
Мосты создаются автоматическим кластеризом.Ваши два сервера, вероятно, являются частью того же конфигурации UDP (посмотрите на IP-адрес группы UDP и порт на конфигурации HornetQ), и они формируют кластер.
Вероятно, когда вы выключите один из узлов, у вас не было узлов, когда вы перезапустите его, и мосты не смогли подключиться или что-то подобное.
На этом случае вы не должны были формировать кластер, и узлы нашли друг друга и, следовательно, нахождение мостов для кластера Inter Communication.
Измените IP и порт UDP, и эти серверы будут независимыми. Или, если вам не нужно кластеризацию, замените конфиги из того, что на автономном режиме не кластеризованы.