또는 한 가지 방법 만 있습니다. 구성을에 추가 broker.xml
하고 브로커를 다시 시작하면 클러스터가 작동합니다. 나는에서 발견 나는 그것을 어떻게 든 할 수있는, 방법 ?embeddedActiveMQ.getActiveMQServer()
.getClusterManager()
ClusterManager
최신 정보
이 방식 (clusterManager-중지-배포-시작)은 작동하지만 다음과 같은 예외가 발생하는 경우도 있습니다.
java.lang.IllegalStateException: Server locator is closed (maybe it was garbage collected)
at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.assertOpen(ServerLocatorImpl.java:1848)
at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:648)
at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.connect(ServerLocatorImpl.java:549)
at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.connect(ServerLocatorImpl.java:528)
at org.apache.activemq.artemis.core.server.cluster.ClusterController$ConnectRunnable.run(ClusterController.java:433)
at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
이것은 이론적으로 가능합니다. 브로커가 시작되면 메서드 ClusterManager
사용 을 중지해야합니다 stop()
. 그런 다음 브로커의를 업데이트 할 수있는 Configuration
다음 호출 deploy()
및 start()
온 ClusterManager
.
전에이 작업을 해본 적이 없으므로 문제가 발생할 수 있습니다. 실제로 브로커 자체를 중지하고 시작하는 것이 더 간단하고 안전 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다