Hornetq "<다른 서버 uuid> 대기열에 대한 대기열 정보를 찾을 수 없습니다", 코어 브리지?

StackOverflow https://stackoverflow.com//questions/22035171

  •  21-12-2019
  •  | 
  •  

문제

나는 HornetQ 구성에 대해 매우 제한된 지식을 가지고 있지만 가능한 한 최선을 다해 내 문제를 설명하려고 노력할 것입니다.

설정은 다음과 같습니다.

하나의 네트워크에서 여러 개의 독립형 JBoss(6.1.0Final) 인스턴스가 실행되고 있습니다.즉, 클러스터링되지 않고 서로 다른 애플리케이션을 배포했으며 일반적으로 서로 간섭해서는 안 됩니다.각 JBoss에는 하나의 주제로 구성된 HornetQ가 있습니다.

구성된 코어 브리지(또는 전혀 브리지)가 없습니다. deploy/hornetq/hornetq-configuration.xml, 사실 이것은 jboss와 함께 제공되는 파일과 거의 또는 전혀 변경되지 않은 거의 표준 conf 파일입니다(누군가 요청하면 기꺼이 게시하겠습니다).

모든 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