2017-02-28 7 views
2

우리는 ActiveMQ를 사용 중이며 브로커 네트워크를 정의했습니다 (테스트 설정에서 2). 우리는 AMQP 연결을 허용하도록 브로커를 구성하고 우리는과 같이 "updateClusterClients"와 "rebalanceClusterClients"을 수 있습니다브로커의 ActiveMQ 네트워크에서로드 밸런싱

<transportConnector name="amqp" uri="amqp+ssl://0.0.0.0:5673?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600&amp;transport.transformer=jms" updateClusterClients="true" rebalanceClusterClients="true"/> 

또한, 우리는 Qpid JMS를 사용하여 우리의 클라이언트를 구축해야합니다. 클라이언트는 failover-url을 사용하여 구성되었습니다.

클라이언트는 서로 잘 통신 할 수 있습니다. 또한 두 브로커 중 하나를 중지하면 남은 브로커로 전환합니다.

그러나 브로커를 다시 시작하면 일부 클라이언트가 새 브로커로 이동하는 것으로 예상됩니다. 불행히도, 실제로 내가 본 것은 그들이 모두 같은 브로커에 연결되어 있다는 것입니다.

왜 스스로 재조정하지 않을 수 있습니까? 또한 고객이 초기에 연결할 때 두 브로커를 통해 고객을 파견하고 싶습니다. 어떻게이 일을 성취 할 수 있을까요?

답변

1

ActiveMQ 브로커는 브로커 네트워크에서 AMQP 클라이언트를 재조정하지 않습니다. 그것을 성취 할 수있는 방법이있을 수 있지만 모든 연결 요청이 모두 연결 리디렉션을 지원한다는 사실과 같이 연결된 모든 AMQP 클라이언트의 성격에 대해 몇 가지 가정을합니다.

클라이언트가 연결할 수 있고 리디렉션되는 것을 알릴 수있는 더 나은 메커니즘이 정의 될 때까지는 ActiveMQ가 강제로 AMQP 클라이언트의 연결을 끊어서 다시 균형을 조정하는 것을 보지 못할 것이라고 생각할 때까지는 그렇습니다.

브로커는 장애 조치 전송과 연결된 OpenWire 클라이언트가 클라이언트가 종료하도록 요청하는 연결 제어 명령을 처리 할 것이라는 것을 알고 있기 때문에 OpenWire 클라이언트를 재조정 할 수 있습니다. 여기서 장애 조치와 연결되지 않은 클라이언트는 해당 연결을 무시합니다 명령.

+0

근본 원인이 될까봐 두려웠습니다. 모든 예는 오픈 와이어로되어 있지만 오픈 와이어로만 작동한다는 것은 명시되어 있지 않으므로 내가 잘못한 것을 비밀리에 희망하고있었습니다. 음, 드로잉 보드에 돌아 왔습니다. – Pieter

+0

이런 종류의 일을하는 사람들이 있으므로 희망을 잃지 않습니다. –

+0

대신 openwire로 전환 할 것입니다. – Pieter