각 클러스터 구성원 브로커에 대한 클러스터 구성 등록 정보를 지정하여 클러스터를 정의합니다. 이러한 등록 정보는 클러스터의 각 브로커에 대해 개별적으로 설정할 수도 있지만 모든 브로커가 참조하는 중앙 클러스터 구성 파일에 모으는 것이 일반적으로 더 편리합니다. 이렇게 하면 설정이 달라지지 않으므로 클러스터의 모든 브로커가 동일하고 일관된 구성 정보를 공유하게 됩니다.
클러스터 구성 등록 정보는 표 14–9에서 자세히 설명합니다. 여기에는 다음 항목이 포함됩니다.
imq.cluster.brokerlist 클러스터에 속하는 모든 브로커의 호스트 이름과 포트 번호를 지정합니다.
imq.cluster.masterbroker 상태 변경을 추적하는 마스터 브로커에 해당하는 브로커(있는 경우)를 지정합니다.
imq.cluster.hostname 클러스터 내의 브로커 간 내부 통신에 사용되는 cluster 연결 서비스의 호스트 이름 또는 IP 주소를 지정합니다. 이 설정은 컴퓨터에 여러 개의 네트워크 인터페이스 카드가 있을 때처럼사용 가능한 호스트가 두 개 이상인 경우에 유용합니다.
imq.cluster.transport cluster 연결 서비스에 사용되는 전송 프로토콜(예: tcp 또는 ssl)을 지정합니다.
hostname 및 port 등록 정보는 각 개별 브로커에 대해 독립적으로 설정할 수 있지만 brokerlist, masterbroker, url 및 transport는 클러스터 내의 모든 브로커에 대해 동일한 값을 가져야 합니다.
다음 절에서는 클러스터 구성 파일을 사용하여 브로커의 클러스터 구성 등록 정보를 설정하는 방법(클러스터의 각 브로커에 대해 개별 설정 또는 중앙 설정)에 대해 설명합니다.
인스턴스 구성 파일(또는 브로커를 시작할 때 명령줄에서) 브로커 클러스터 구성 등록 정보를 설정할 수 있습니다. 예를 들어, host1의 9876 포트, host2의 5000 포트 및 ctrlhost의 기본 포트(7676)에서 여러 브로커로 구성된 클러스터를 만들려면 세 브로커 모두의 인스턴스 구성 파일에 다음 등록 정보를 포함시켜야 합니다.
imq.cluster.brokerlist=host1:9876,host2:5000,ctrlhost
이 방법을 사용하면 클러스터 구성을 변경해야 하는 경우 클러스터 내 모든 브로커의 인스턴스 구성 파일을 업데이트해야 합니다.
일관성과 간편한 유지 관리를 위해서는 클러스터 구성 등록 정보를 브로커별로 개별 설정하는 대신 모든 공유 클러스터 구성 등록 정보를 단일 클러스터 구성 파일에 모으는 것이 좋습니다. 이 방법에서 각 브로커의 인스턴스 구성 파일은 클러스터 구성 파일의 위치를 가리키도록 imq.cluster.url 등록 정보를 설정해야 합니다. 예를 들면, 다음과 같습니다.
imq.cluster.url=file:/home/cluster.properties
그런 다음 클러스터 구성 파일은 클러스터 내의 모든 브로커에 대해 연결할 브로커 목록(imq.cluster.brokerlist), cluster 연결 서비스에 사용할 전송 프로토콜(imq.cluster.transport ) 및 마스터 브로커의 주소(imq.cluster.masterbroker)와 같은 공유 구성 등록 정보를 정의합니다. 다음 코드는 마스터 브로커 역할을 하는 ctrlhost에서 실행되는 브로커와 함께 이전 예에서와 같은 클러스터를 정의합니다.
imq.cluster.brokerlist=host1:9876,host2:5000,ctrlhost imq.cluster.masterbroker=ctrlhost