WebSphere Message Broker 브로커 도메인의 기초가 되는
WebSphere MQ 네트워크를 설계할 때,
클러스터의 사용 여부를 고려하십시오.
큐 관리자 클러스터를 사용하면
다음과 같은 중요한 혜택이 있습니다.
- 시스템 관리 감소
클러스터에는 네트워크를 설정하기 위한 정의가 거의 필요하지 않습니다. 네트워크를
보다 빠르고 쉽게 설정 및 변경할 수 있습니다.
- 증가된 사용가능성 및 워크로드 밸런스
둘 이상의 큐 관리자에 대해 동일한 큐 인스턴스를 정의한 다음 클러스터를 통해 워크로드를 분배하면 도움이 됩니다.
WebSphere Message Broker와 함께 클러스터를 사용하는 경우,
다음을 고려하십시오.
- SYSTEM.BROKER 큐의 경우:
- SYSTEM.BROKER 큐는 WebSphere Message Broker 구성요소를 작성하고
클러스터 큐로 정의하지 않을 때 정의됩니다. 이 속성을 변경하지 마십시오.
- 브로커의 경우, 구성 관리자 및 사용자 이름 서버 연결성:
- 클러스터에 브로커, 구성 관리자 및 사용자 이름 서버를
지원하는 큐 관리자를 정의할 경우, WebSphere MQ 클러스터에서
제공하는 단순화된 관리를 이용할 수 있습니다.
모든 WebSphere MQ를
상호 연결해야 하는 집합의 브로커에 대해 특별한 연관성을 찾을 수 있습니다.
- 메시지 플로우 입력 큐의 경우:
- 입력 큐를 클러스터 큐로 정의한 경우, 세그먼트된 메시지의 세그먼트 또는 메시지의 순서에 대한 관계를 고려하십시오. 관계는 모든 WebSphere MQ 클러스터 큐에 대한 관계와 동일합니다. 특히,
응용프로그램에서 세그먼트된 메시지를 송신 중인 경우 동일한 대상 큐, 즉 동일한 브로커에 있는
동일한 메시지 플로우 인스턴스에 의해 모든 세그먼트가 처리되는지를 확인해야 합니다.
- 메시지 플로우 출력 큐의 경우:
-
- WebSphere Message Broker는 출력 큐를 열 때 항상 MQOO_BIND_AS_Q_DEF를 지정합니다. 세그먼트된 메시지를 출력 큐에 넣거나 동일한 프로세스에서 일련의 메시지를 핸들링하게 하려면, 해당 큐를 정의할 때 DEFBIND(OPEN)를 지정해야 합니다.
그러면 단일 메시지의 모든 세그먼트 또는 순서 내의 모든 메시지가 동일한 대상 큐에
넣어지며 동일한 수신 응용프로그램 인스턴스에서 처리됩니다.
- 사용자 고유의 출력 노드를 작성할 때, 메시지 순서를 보장해야 하거나 세그먼트된 메시지의 단일 대상을 보장해야 하는 경우, 출력 큐를 열 때 MQOO_BIND_AS_Q_DEF를 지정하고 큐를 정의할 때 DEFBIND(OPEN)를 지정하십시오.
- publish/subscribe의 경우:
-
- Publication의 대상 큐가 클러스터 큐일 경우, publish/subscribe
메시지 플로우를 클러스터의 큐 관리자에 있는 모든 브로커로 전개해야 합니다. 그러나 클러스터는 브로커 도메인 토폴로지 및 기능에 오류 복구(failover) 기능을 제공하지 않습니다.
메시지를 publish하거나 subscriber가 등록할 브로커가 사용 불가능할 경우, 다른 브로커가 publication 또는 등록 분배를 대신하지 않습니다.
- 클러스터의 구성원인 큐 관리자에서 실행 중인 브로커에 클라이언트가 subscription을 등록할 경우,
브로커는 프록시 등록을 브로커 도메인 내의 이웃에 전달합니다. 등록 세부사항은 클러스터의 다른 구성원에게
알려지지 않습니다.
- 클라이언트가 클러스터된 subscriber가 되려고 선택할 수도 있으므로
해당 subscriber 큐는 제공된 모든 publication을 수신하는 클러스터 큐의 세트 중 하나여야
합니다. 이 경우, subscription을 등록하면 클러스터와 연관된 "가상의" 큐 관리자 이름을
사용하십시오. 이는 publication을 송신할 큐 관리자가 아니지만, 사용할 브로커의
별명입니다. 관리 활동으로서, 클러스터된 모든 subscriber에 대해 이 subscription을
만족하는 브로커에서 이 큐 관리자에 공백 큐 관리자 별명 정의가
작성됩니다. 브로커가 이 큐 관리자의 이름을 지정하는 subscriber 큐에 publish하는
경우, 큐 관리자 이름의 해석에 따라 publication이 subscriber 클러스터 큐를 호스트하는
모든 큐 관리자에 전송되며 하나의 클러스터 subscriber만이 publication을
수신합니다.
예를 들면, 클러스터 subscriber 큐가
SUBS_QUEUE이며 "가상의" subscriber 큐 관리자가 CLUSTER_QM이면
브로커 정의는 다음과 같습니다.
DEFINE QREMOTE(CLUSTER_QM)
RQMNAME(' ') RNAME(' ')
이로써, CLUSTER_QM에 있는 SUBS_QUEUE의
브로커 publication이 클러스터에 있는 SUBS_QUEUE라는 클러스터
큐의 한 인스턴스에 송신됩니다.
클러스터 및 클러스터 큐 사용에 대한 의미를 자세히 이해하려면
WebSphere MQ Queue Manager Clusters 서적을 참조하십시오.