17장. 브로커 브리징
브리지는 두 브로커를 연결하고 메시지 간에 메시지를 전달하는 방법을 제공합니다.
다음 브릿지를 사용할 수 있습니다.
- 코어
-
core-bridge
예제에서는 하나의 브로커에 배포된 코어 브릿지를 보여줍니다. 이 브릿지는 로컬 대기열의 메시지를 사용하고 두 번째 브로커의 주소로 전달합니다. - mirror
- 참조 16장. 브로커 연결을 사용하여 다중 사이트 내결함성 메시징 시스템 구성
- 보낸 사람 및 수신자
- 참조 17.1절. “브로커 연결에 대한 보낸 사람 및 수신자 구성”
- 피어
- 참조 17.2절. “브로커 연결에 대한 피어 구성”
Core 브리지의 broker.xml
요소는 브리지
입니다. 다른 브리징 기술은 < broker-connection> 요소를
사용합니다.
17.1. 브로커 연결에 대한 보낸 사람 및 수신자 구성
broker.xml
의 <broker -connections> 섹션에 보낸 사람 또는 수신자 브로커
연결 요소를 생성하여 브로커를 다른 브로커에 연결할 수 있습니다.
보낸 사람의
경우 브로커는 다른 브로커에 메시지를 보내는 큐에 메시지 소비자를 생성합니다.
수신자
의 경우 브로커는 다른 브로커에서 메시지를 수신하는 주소에 메시지 생산자를 생성합니다.
두 요소는 모두 메시지 브리지로 작동합니다. 그러나 메시지를 처리하는 데 필요한 추가 오버헤드는 없습니다. 발신자와 수신자는 브로커의 다른 소비자 또는 생산자와 마찬가지로 작동합니다.
특정 대기열은 발신자 또는 수신자가 구성할 수 있습니다. 와일드카드 표현식은 발신자와 수신자를 특정 주소 또는 주소 집합에 일치시키는 데 사용할 수 있습니다. 발신자 또는 수신자를 구성할 때 다음 속성을 설정할 수 있습니다.
-
address-match
: 와일드카드 표현식을 사용하여 발신자 또는 수신자를 특정 주소 또는 주소 집합과 일치시킵니다. -
queue-name
: 특정 큐에 대한 발신자 또는 수신자를 구성합니다. 주소 표현식 사용:
<broker-connections> <amqp-connection uri="tcp://HOST:PORT" name="other-server"> <sender address-match="queues.#"/> <!-- notice the local queues for remotequeues.# need to be created on this broker --> <receiver address-match="remotequeues.#"/> </amqp-connection> </broker-connections> <addresses> <address name="remotequeues.A"> <anycast> <queue name="remoteQueueA"/> </anycast> </address> <address name="queues.B"> <anycast> <queue name="localQueueB"/> </anycast> </address> </addresses>
큐 이름 사용:
<broker-connections> <amqp-connection uri="tcp://HOST:PORT" name="other-server"> <receiver queue-name="remoteQueueA"/> <sender queue-name="localQueueB"/> </amqp-connection> </broker-connections> <addresses> <address name="remotequeues.A"> <anycast> <queue name="remoteQueueA"/> </anycast> </address> <address name="queues.B"> <anycast> <queue name="localQueueB"/> </anycast> </address> </addresses>
수신자는 이미 존재하는 로컬 큐와만 일치할 수 있습니다. 따라서 수신자를 사용하는 경우 대기열이 로컬에 미리 생성되어 있는지 확인합니다. 그러지 않으면 브로커가 원격 대기열 및 주소와 일치할 수 없습니다.
전송 및 수신에 대한 무한 루프를 생성하므로 동일한 대상이 있는 발신자와 수신자를 생성하지 마십시오.