12장. 메시지 분할 및 메시지 흐름 분할
AMQ Broker에서는 클라이언트 애플리케이션 논리를 변경하지 않고 메시지를 한 주소에서 다른 주소로 투명하게 전환할 수 있도록 다양한 오브젝트를 구성할 수 있습니다. 메시지 사본을 지정된 전달 주소로 전달하여 메시지 흐름을 효과적으로 분할하도록 다각형을 구성할 수도 있습니다.
12.1. 메시지 다이렉트 작동 방식
다각형을 사용하면 클라이언트 애플리케이션 논리를 변경하지 않고도 한 주소로 라우팅되는 메시지를 투명하게 다른 주소로 전환할 수 있습니다. 브로커 서버의 다양한 유형을 메시지의 라우팅 테이블 유형으로 생각하십시오.
분산은 배타적 일 수 있습니다. 즉, 원래 주소로 이동하지 않고도 메시지가 지정된 전달 주소로 전환됩니다.
다각형은 비독점 일 수도 있습니다. 즉, 메시지는 원래 주소로 계속되는 반면 브로커는 지정된 전달 주소로 메시지 사본을 보냅니다. 따라서 메시지 흐름을 분할하는 데 비독점 다각형을 사용할 수 있습니다. 예를 들어 주문 큐로 전송된 모든 순서를 별도로 모니터링하려는 경우 메시지 흐름을 분할할 수 있습니다.
단일 주소에 대해 다중 다각형을 구성할 수 있습니다. 주소에 배타적 및 비독점 다이렉트가 구성되어 있는 경우 브로커는 독점적인 다이버를 먼저 처리합니다. 특정 메시지가 이미 배타적인 다이버트에 의해 변형된 경우 브로커는 해당 메시지에 대해 비독점 다이버를 처리하지 않습니다. 이 경우 메시지는 원래 주소로 이동하지 않습니다.
브로커가 메시지를 분산하면 브로커는 새 메시지 ID를 할당하고 메시지 주소를 새 전달 주소로 설정합니다. _AMQ_ORIG_ADDRESS
(문자열 유형) 및 _AMQ_ORIG_MESSAGE_ID
(long type) 메시지 속성을 통해 원래 메시지 ID 및 주소 값을 검색할 수 있습니다. Core API를 사용하는 경우 Message.HDR_ORIGINAL_ADDRESS
및 Message.HDR_ORIG_MESSAGE_ID
속성을 사용합니다.
동일한 브로커 서버의 주소로만 메시지를 전달할 수 있습니다. 다른 서버의 주소로 전환하려는 경우 일반적인 해결 방법은 먼저 메시지를 로컬 저장소 및 전달 큐로 전달하는 것입니다. 그런 다음 해당 대기열에서 사용하는 브릿지를 설정하고 다른 브로커의 주소로 메시지를 전달합니다. 다양한 브릿지를 브리지와 결합하면 지리적으로 분산된 브로커 서버 간에 분산 라우팅 연결 네트워크를 만들 수 있습니다. 이렇게 하면 글로벌 메시징 메시를 생성할 수 있습니다.