14.2. 브로커 클러스터 생성
클러스터에 참여해야 하는 각 브로커에 클러스터 연결을 구성하여 브로커 클러스터를 생성합니다. 클러스터 연결은 브로커가 다른 브로커에 연결하는 방법을 정의합니다.
정적 검색 또는 동적 검색(UDP 멀티 캐스트 또는 Cryostat)을 사용하는 브로커 클러스터를 생성할 수 있습니다.
사전 요구 사항
브로커 클러스터의 크기를 결정해야합니다.
자세한 내용은 14.1.7절. “클러스터 크기 조정 고려 사항”의 내용을 참조하십시오.
14.2.1. 정적 검색을 사용하여 브로커 클러스터 생성
브로커의 정적 목록을 지정하여 브로커 클러스터를 생성할 수 있습니다. 네트워크에서 UDP 멀티 캐스트 또는 Cryostat를 사용할 수 없는 경우 이 정적 검색 방법을 사용합니다.
프로세스
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. <
core>
; 요소 내에서 다음 커넥터를 추가합니다.- 다른 브로커가 이 계정에 연결하는 방법을 정의하는 커넥터
- 이 브로커가 클러스터의 다른 브로커에 연결하는 방법을 정의하는 하나 이상의 커넥터
<configuration> <core> ... <connectors> <connector name="netty-connector">tcp://localhost:61617</connector> 1 <connector name="broker2">tcp://localhost:61618</connector> 2 <connector name="broker3">tcp://localhost:61619</connector> </connectors> ... </core> </configuration>
커넥터에 대한 자세한 내용은 2.3절. “커넥터 정보” 을 참조하십시오.
클러스터 연결을 추가하고 정적 검색을 사용하도록 구성합니다.
기본적으로 클러스터 연결은 대칭 토폴로지의 모든 주소에 대한 메시지를 로드 밸런싱합니다.
<configuration> <core> ... <cluster-connections> <cluster-connection name="my-cluster"> <connector-ref>netty-connector</connector-ref> <static-connectors> <connector-ref>broker2-connector</connector-ref> <connector-ref>broker3-connector</connector-ref> </static-connectors> </cluster-connection> </cluster-connections> ... </core> </configuration>
cluster-connection
-
name
속성을 사용하여 클러스터 연결의 이름을 지정합니다. Connector-ref
- 다른 브로커가 이 계정에 연결하는 방법을 정의하는 커넥터입니다.
static-connectors
- 이 브로커가 클러스터의 다른 브로커에 초기 연결을 만드는 데 사용할 수 있는 하나 이상의 커넥터입니다. 이 초기 연결을 사용하면 브로커가 클러스터의 다른 브로커를 검색합니다. 클러스터가 정적 검색을 사용하는 경우에만 이 속성을 구성해야 합니다.
클러스터 연결에 대한 추가 속성을 구성합니다.
이러한 추가 클러스터 연결 속성에는 대부분의 일반적인 사용 사례에 적합한 기본값이 있습니다. 따라서 기본 동작을 원하지 않는 경우에만 이러한 속성을 구성해야 합니다. 자세한 내용은 부록 C. 클러스터 연결 구성의 내용을 참조하십시오.
클러스터 사용자 및 암호를 만듭니다.
AMQ Broker는 기본 클러스터 인증 정보와 함께 제공되지만 권한이 없는 원격 클라이언트가 이러한 기본 인증 정보를 사용하여 브로커에 연결하지 못하도록 변경해야 합니다.
중요클러스터 암호는 클러스터의 모든 브로커에서 동일해야 합니다.
<configuration> <core> ... <cluster-user>cluster_user</cluster-user> <cluster-password>cluster_user_password</cluster-password> ... </core> </configuration>
추가 브로커마다 이 절차를 반복합니다.
클러스터 구성을 추가 브로커마다 복사할 수 있습니다. 그러나 다른 AMQ Broker 데이터 파일(예: 바인딩, 저널, 대규모 메시지 디렉터리)을 복사하지 마십시오. 이러한 파일은 클러스터의 노드 간에 고유해야 합니다. 그렇지 않으면 클러스터가 올바르게 포맷되지 않습니다.
추가 리소스
-
정적 검색을 사용하는 브로커 클러스터의 예는
clustered-static-discovery
예제 를 참조하십시오.
14.2.2. UDP 기반 동적 검색을 사용하여 브로커 클러스터 생성
브로커가 UDP 멀티 캐스트를 통해 동적으로 서로를 검색하는 브로커 클러스터를 생성할 수 있습니다.
프로세스
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. <
core>
; 요소 내에서 커넥터를 추가합니다.이 커넥터는 다른 브로커가 이 옵션에 연결하는 데 사용할 수 있는 연결 정보를 정의합니다. 이 정보는 검색 중에 클러스터의 다른 브로커로 전송됩니다.
<configuration> <core> ... <connectors> <connector name="netty-connector">tcp://localhost:61617</connector> </connectors> ... </core> </configuration>
UDP 브로드캐스트 그룹을 추가합니다.
브로드캐스트 그룹을 사용하면 브로커가 클러스터 연결에 대한 정보를 클러스터의 다른 브로커로 내보낼 수 있습니다. 이 브로드캐스트 그룹은 UDP를 사용하여 연결 설정을 브로드캐스트합니다.
<configuration> <core> ... <broadcast-groups> <broadcast-group name="my-broadcast-group"> <local-bind-address>172.16.9.3</local-bind-address> <local-bind-port>-1</local-bind-port> <group-address>231.7.7.7</group-address> <group-port>9876</group-port> <broadcast-period>2000</broadcast-period> <connector-ref>netty-connector</connector-ref> </broadcast-group> </broadcast-groups> ... </core> </configuration>
달리 명시하지 않는 한 다음 매개변수가 필요합니다.
broadcast-group
-
name
속성을 사용하여 브로드캐스트 그룹의 고유 이름을 지정합니다. local-bind-address
- UDP 소켓이 바인딩된 주소입니다. 브로커에 네트워크 인터페이스가 여러 개 있는 경우 브로드캐스트에 사용할 네트워크 인터페이스를 지정해야 합니다. 이 속성을 지정하지 않으면 소켓이 운영 체제에서 선택한 IP 주소에 바인딩됩니다. UDP 특정 속성입니다.
local-bind-port
-
데이터그램 소켓이 바인딩된 포트입니다. 대부분의 경우 기본값
-1
을 사용하여 익명 포트를 지정합니다. 이 매개변수는local-bind-address
와 관련하여 사용됩니다. UDP 특정 속성입니다. group-address
-
데이터를 브로드캐스트할 멀티 캐스트 주소입니다.
224.0.0.0
-239.255.255.255
범위의 D IP 주소입니다. 주소224.0.0.0
이 예약되었으며 사용할 수 없습니다. UDP 특정 속성입니다. group-port
- 브로드캐스트에 사용되는 UDP 포트 번호입니다. UDP 특정 속성입니다.
broadcast-period
(선택 사항)- 연속 브로드캐스트 사이의 간격(밀리초)입니다. 기본값은 2000밀리초입니다.
Connector-ref
- 브로드캐스트해야 하는 이전에 구성된 클러스터 커넥터입니다.
UDP 검색 그룹을 추가합니다.
검색 그룹은 이 브로커가 다른 브로커에서 커넥터 정보를 수신하는 방법을 정의합니다. 브로커는 커넥터 목록을 유지 관리합니다 (각 브로커마다 하나의 항목). 브로커에서 브로드캐스트를 수신하므로 해당 항목을 업데이트합니다. 브로커에서 오랜 시간 동안 브로드캐스트를 수신하지 못하면 해당 항목을 제거합니다.
이 검색 그룹은 UDP를 사용하여 클러스터의 브로커를 검색합니다.
<configuration> <core> ... <discovery-groups> <discovery-group name="my-discovery-group"> <local-bind-address>172.16.9.7</local-bind-address> <group-address>231.7.7.7</group-address> <group-port>9876</group-port> <refresh-timeout>10000</refresh-timeout> </discovery-group> <discovery-groups> ... </core> </configuration>
달리 명시하지 않는 한 다음 매개변수가 필요합니다.
discovery-group
-
name
속성을 사용하여 검색 그룹의 고유 이름을 지정합니다. local-bind-address
(선택 사항)- 브로커가 실행 중인 시스템이 여러 네트워크 인터페이스를 사용하는 경우 검색 그룹이 수신해야 하는 네트워크 인터페이스를 지정할 수 있습니다. UDP 특정 속성입니다.
group-address
-
수신 대기할 그룹의 멀티 캐스트 주소입니다. 수신 대기하려는 브로드캐스트 그룹의
group-address
와 일치해야 합니다. UDP 특정 속성입니다. group-port
-
멀티 캐스트 그룹의 UDP 포트 번호입니다. 수신 대기하려는 브로드캐스트 그룹의
group-port
와 일치해야 합니다. UDP 특정 속성입니다. refresh-timeout
(선택 사항)해당 브로커의 커넥터 쌍 항목을 목록에서 제거하기 전에 검색 그룹이 특정 브로커에서 마지막 브로드캐스트를 수신한 후 대기하는 시간(밀리초)입니다. 기본값은 10000밀리초(10초)입니다.
브로드캐스트 그룹의
broadcast-period
보다 훨씬 높은 값으로 설정합니다. 그렇지 않으면 브로커가 여전히 브로드캐스트되어 있어도 목록에서 주기적으로 사라질 수 있습니다 (시간의 약간의 차이로 인해).
클러스터 연결을 생성하고 동적 검색을 사용하도록 구성합니다.
기본적으로 클러스터 연결은 대칭 토폴로지의 모든 주소에 대한 메시지를 로드 밸런싱합니다.
<configuration> <core> ... <cluster-connections> <cluster-connection name="my-cluster"> <connector-ref>netty-connector</connector-ref> <discovery-group-ref discovery-group-name="my-discovery-group"/> </cluster-connection> </cluster-connections> ... </core> </configuration>
cluster-connection
-
name
속성을 사용하여 클러스터 연결의 이름을 지정합니다. Connector-ref
- 다른 브로커가 이 계정에 연결하는 방법을 정의하는 커넥터입니다.
discovery-group-ref
- 이 브로커가 클러스터의 다른 멤버를 찾는 데 사용해야 하는 검색 그룹입니다. 클러스터가 동적 검색을 사용하는 경우에만 이 속성을 구성해야 합니다.
클러스터 연결에 대한 추가 속성을 구성합니다.
이러한 추가 클러스터 연결 속성에는 대부분의 일반적인 사용 사례에 적합한 기본값이 있습니다. 따라서 기본 동작을 원하지 않는 경우에만 이러한 속성을 구성해야 합니다. 자세한 내용은 부록 C. 클러스터 연결 구성의 내용을 참조하십시오.
클러스터 사용자 및 암호를 만듭니다.
AMQ Broker는 기본 클러스터 인증 정보와 함께 제공되지만 권한이 없는 원격 클라이언트가 이러한 기본 인증 정보를 사용하여 브로커에 연결하지 못하도록 변경해야 합니다.
중요클러스터 암호는 클러스터의 모든 브로커에서 동일해야 합니다.
<configuration> <core> ... <cluster-user>cluster_user</cluster-user> <cluster-password>cluster_user_password</cluster-password> ... </core> </configuration>
추가 브로커마다 이 절차를 반복합니다.
클러스터 구성을 추가 브로커마다 복사할 수 있습니다. 그러나 다른 AMQ Broker 데이터 파일(예: 바인딩, 저널, 대규모 메시지 디렉터리)을 복사하지 마십시오. 이러한 파일은 클러스터의 노드 간에 고유해야 합니다. 그렇지 않으면 클러스터가 올바르게 포맷되지 않습니다.
추가 리소스
-
UDP와 함께 동적 검색을 사용하는 브로커 클러스터 구성의 예는
클러스터형 대기열
예제 를 참조하십시오.
14.2.3. Cryostat 기반 동적 검색을 사용하여 브로커 클러스터 생성
이미 사용자 환경에서 Cryostat를 사용하는 경우 이를 사용하여 브로커가 서로 동적으로 검색하는 브로커 클러스터를 만들 수 있습니다.
사전 요구 사항
Cryostat를 설치하고 구성해야 합니다.
Cryostat 구성 파일의 예는
클러스터형-jgroups
예제 를 참조하십시오.
프로세스
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. <
core>
; 요소 내에서 커넥터를 추가합니다.이 커넥터는 다른 브로커가 이 옵션에 연결하는 데 사용할 수 있는 연결 정보를 정의합니다. 이 정보는 검색 중에 클러스터의 다른 브로커로 전송됩니다.
<configuration> <core> ... <connectors> <connector name="netty-connector">tcp://localhost:61617</connector> </connectors> ... </core> </configuration>
<
;core>
; 요소 내에서 Cryostat 브로드캐스트 그룹을 추가합니다.브로드캐스트 그룹을 사용하면 브로커가 클러스터 연결에 대한 정보를 클러스터의 다른 브로커로 내보낼 수 있습니다. 이 브로드캐스트 그룹은 Cryostat를 사용하여 연결 설정을 브로드캐스트합니다.
<configuration> <core> ... <broadcast-groups> <broadcast-group name="my-broadcast-group"> <jgroups-file>test-jgroups-file_ping.xml</jgroups-file> <jgroups-channel>activemq_broadcast_channel</jgroups-channel> <broadcast-period>2000</broadcast-period> <connector-ref>netty-connector</connector-ref> </broadcast-group> </broadcast-groups> ... </core> </configuration>
달리 명시하지 않는 한 다음 매개변수가 필요합니다.
broadcast-group
-
name
속성을 사용하여 브로드캐스트 그룹의 고유 이름을 지정합니다. Cryostat-file
- Cryostat 채널을 초기화할 Cryostat 구성 파일의 이름입니다. 브로커가 로드할 수 있도록 Java 리소스 경로에 파일이 있어야 합니다.
jgroups-channel
- 브로드캐스트를 위해 연결할 Cryostat 채널의 이름입니다.
broadcast-period
(선택 사항)- 연속 브로드캐스트 사이의 간격(밀리초)입니다. 기본값은 2000밀리초입니다.
Connector-ref
- 브로드캐스트해야 하는 이전에 구성된 클러스터 커넥터입니다.
Cryostat 검색 그룹을 추가합니다.
검색 그룹은 커넥터 정보가 수신되는 방법을 정의합니다. 브로커는 커넥터 목록을 유지 관리합니다 (각 브로커마다 하나의 항목). 브로커에서 브로드캐스트를 수신하므로 해당 항목을 업데이트합니다. 브로커에서 오랜 시간 동안 브로드캐스트를 수신하지 못하면 해당 항목을 제거합니다.
이 검색 그룹은 Cryostat를 사용하여 클러스터의 브로커를 검색합니다.
<configuration> <core> ... <discovery-groups> <discovery-group name="my-discovery-group"> <jgroups-file>test-jgroups-file_ping.xml</jgroups-file> <jgroups-channel>activemq_broadcast_channel</jgroups-channel> <refresh-timeout>10000</refresh-timeout> </discovery-group> <discovery-groups> ... </core> </configuration>
달리 명시하지 않는 한 다음 매개변수가 필요합니다.
discovery-group
-
name
속성을 사용하여 검색 그룹의 고유 이름을 지정합니다. Cryostat-file
- Cryostat 채널을 초기화할 Cryostat 구성 파일의 이름입니다. 브로커가 로드할 수 있도록 Java 리소스 경로에 파일이 있어야 합니다.
jgroups-channel
- 브로드캐스트 수신을 위해 연결할 Cryostat 채널의 이름입니다.
refresh-timeout
(선택 사항)해당 브로커의 커넥터 쌍 항목을 목록에서 제거하기 전에 검색 그룹이 특정 브로커에서 마지막 브로드캐스트를 수신한 후 대기하는 시간(밀리초)입니다. 기본값은 10000밀리초(10초)입니다.
브로드캐스트 그룹의
broadcast-period
보다 훨씬 높은 값으로 설정합니다. 그렇지 않으면 브로커가 여전히 브로드캐스트되어 있어도 목록에서 주기적으로 사라질 수 있습니다 (시간의 약간의 차이로 인해).
클러스터 연결을 생성하고 동적 검색을 사용하도록 구성합니다.
기본적으로 클러스터 연결은 대칭 토폴로지의 모든 주소에 대한 메시지를 로드 밸런싱합니다.
<configuration> <core> ... <cluster-connections> <cluster-connection name="my-cluster"> <connector-ref>netty-connector</connector-ref> <discovery-group-ref discovery-group-name="my-discovery-group"/> </cluster-connection> </cluster-connections> ... </core> </configuration>
cluster-connection
-
name
속성을 사용하여 클러스터 연결의 이름을 지정합니다. Connector-ref
- 다른 브로커가 이 계정에 연결하는 방법을 정의하는 커넥터입니다.
discovery-group-ref
- 이 브로커가 클러스터의 다른 멤버를 찾는 데 사용해야 하는 검색 그룹입니다. 클러스터가 동적 검색을 사용하는 경우에만 이 속성을 구성해야 합니다.
클러스터 연결에 대한 추가 속성을 구성합니다.
이러한 추가 클러스터 연결 속성에는 대부분의 일반적인 사용 사례에 적합한 기본값이 있습니다. 따라서 기본 동작을 원하지 않는 경우에만 이러한 속성을 구성해야 합니다. 자세한 내용은 부록 C. 클러스터 연결 구성의 내용을 참조하십시오.
클러스터 사용자 및 암호를 만듭니다.
AMQ Broker는 기본 클러스터 인증 정보와 함께 제공되지만 권한이 없는 원격 클라이언트가 이러한 기본 인증 정보를 사용하여 브로커에 연결하지 못하도록 변경해야 합니다.
중요클러스터 암호는 클러스터의 모든 브로커에서 동일해야 합니다.
<configuration> <core> ... <cluster-user>cluster_user</cluster-user> <cluster-password>cluster_user_password</cluster-password> ... </core> </configuration>
추가 브로커마다 이 절차를 반복합니다.
클러스터 구성을 추가 브로커마다 복사할 수 있습니다. 그러나 다른 AMQ Broker 데이터 파일(예: 바인딩, 저널, 대규모 메시지 디렉터리)을 복사하지 마십시오. 이러한 파일은 클러스터의 노드 간에 고유해야 합니다. 그렇지 않으면 클러스터가 올바르게 포맷되지 않습니다.
추가 리소스
- Cryostat와 함께 동적 검색을 사용하는 브로커 클러스터의 예는 clustered-jgroups 예제 를 참조하십시오.