검색

14.2. 브로커 클러스터 생성

download PDF

클러스터에 참여해야 하는 각 브로커에 클러스터 연결을 구성하여 브로커 클러스터를 생성합니다. 클러스터 연결은 브로커가 다른 브로커에 연결하는 방법을 정의합니다.

정적 검색 또는 동적 검색(UDP 멀티 캐스트 또는 Cryostat)을 사용하는 브로커 클러스터를 생성할 수 있습니다.

사전 요구 사항

14.2.1. 정적 검색을 사용하여 브로커 클러스터 생성

브로커의 정적 목록을 지정하여 브로커 클러스터를 생성할 수 있습니다. 네트워크에서 UDP 멀티 캐스트 또는 Cryostat를 사용할 수 없는 경우 이 정적 검색 방법을 사용합니다.

프로세스

  1. &lt ;broker_instance_dir> /etc/broker.xml 구성 파일을 엽니다.
  2. < core&gt; 요소 내에서 다음 커넥터를 추가합니다.

    • 다른 브로커가 이 계정에 연결하는 방법을 정의하는 커넥터
    • 이 브로커가 클러스터의 다른 브로커에 연결하는 방법을 정의하는 하나 이상의 커넥터
    <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>
    1
    이 커넥터는 다른 브로커가 이 옵션에 연결하는 데 사용할 수 있는 연결 정보를 정의합니다. 이 정보는 검색 중에 클러스터의 다른 브로커로 전송됩니다.
    2
    broker2broker3 커넥터는 이 브로커가 클러스터의 다른 두 브로커에 연결하는 방법을 정의합니다. 이 중 하나는 항상 사용할 수 있습니다. 클러스터에 다른 브로커가 있는 경우 초기 연결이 생성되면 이러한 커넥터 중 하나에 의해 검색됩니다.

    커넥터에 대한 자세한 내용은 2.3절. “커넥터 정보” 을 참조하십시오.

  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
    이 브로커가 클러스터의 다른 브로커에 초기 연결을 만드는 데 사용할 수 있는 하나 이상의 커넥터입니다. 이 초기 연결을 사용하면 브로커가 클러스터의 다른 브로커를 검색합니다. 클러스터가 정적 검색을 사용하는 경우에만 이 속성을 구성해야 합니다.
  4. 클러스터 연결에 대한 추가 속성을 구성합니다.

    이러한 추가 클러스터 연결 속성에는 대부분의 일반적인 사용 사례에 적합한 기본값이 있습니다. 따라서 기본 동작을 원하지 않는 경우에만 이러한 속성을 구성해야 합니다. 자세한 내용은 부록 C. 클러스터 연결 구성의 내용을 참조하십시오.

  5. 클러스터 사용자 및 암호를 만듭니다.

    AMQ Broker는 기본 클러스터 인증 정보와 함께 제공되지만 권한이 없는 원격 클라이언트가 이러한 기본 인증 정보를 사용하여 브로커에 연결하지 못하도록 변경해야 합니다.

    중요

    클러스터 암호는 클러스터의 모든 브로커에서 동일해야 합니다.

    <configuration>
        <core>
            ...
            <cluster-user>cluster_user</cluster-user>
            <cluster-password>cluster_user_password</cluster-password>
            ...
        </core>
    </configuration>
  6. 추가 브로커마다 이 절차를 반복합니다.

    클러스터 구성을 추가 브로커마다 복사할 수 있습니다. 그러나 다른 AMQ Broker 데이터 파일(예: 바인딩, 저널, 대규모 메시지 디렉터리)을 복사하지 마십시오. 이러한 파일은 클러스터의 노드 간에 고유해야 합니다. 그렇지 않으면 클러스터가 올바르게 포맷되지 않습니다.

추가 리소스

14.2.2. UDP 기반 동적 검색을 사용하여 브로커 클러스터 생성

브로커가 UDP 멀티 캐스트를 통해 동적으로 서로를 검색하는 브로커 클러스터를 생성할 수 있습니다.

프로세스

  1. &lt ;broker_instance_dir&gt; /etc/broker.xml 구성 파일을 엽니다.
  2. < core&gt; 요소 내에서 커넥터를 추가합니다.

    이 커넥터는 다른 브로커가 이 옵션에 연결하는 데 사용할 수 있는 연결 정보를 정의합니다. 이 정보는 검색 중에 클러스터의 다른 브로커로 전송됩니다.

    <configuration>
        <core>
            ...
            <connectors>
                <connector name="netty-connector">tcp://localhost:61617</connector>
            </connectors>
            ...
        </core>
    </configuration>
  3. 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
    브로드캐스트해야 하는 이전에 구성된 클러스터 커넥터입니다.
  4. 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 보다 훨씬 높은 값으로 설정합니다. 그렇지 않으면 브로커가 여전히 브로드캐스트되어 있어도 목록에서 주기적으로 사라질 수 있습니다 (시간의 약간의 차이로 인해).

  5. 클러스터 연결을 생성하고 동적 검색을 사용하도록 구성합니다.

    기본적으로 클러스터 연결은 대칭 토폴로지의 모든 주소에 대한 메시지를 로드 밸런싱합니다.

    <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
    이 브로커가 클러스터의 다른 멤버를 찾는 데 사용해야 하는 검색 그룹입니다. 클러스터가 동적 검색을 사용하는 경우에만 이 속성을 구성해야 합니다.
  6. 클러스터 연결에 대한 추가 속성을 구성합니다.

    이러한 추가 클러스터 연결 속성에는 대부분의 일반적인 사용 사례에 적합한 기본값이 있습니다. 따라서 기본 동작을 원하지 않는 경우에만 이러한 속성을 구성해야 합니다. 자세한 내용은 부록 C. 클러스터 연결 구성의 내용을 참조하십시오.

  7. 클러스터 사용자 및 암호를 만듭니다.

    AMQ Broker는 기본 클러스터 인증 정보와 함께 제공되지만 권한이 없는 원격 클라이언트가 이러한 기본 인증 정보를 사용하여 브로커에 연결하지 못하도록 변경해야 합니다.

    중요

    클러스터 암호는 클러스터의 모든 브로커에서 동일해야 합니다.

    <configuration>
        <core>
            ...
            <cluster-user>cluster_user</cluster-user>
            <cluster-password>cluster_user_password</cluster-password>
            ...
        </core>
    </configuration>
  8. 추가 브로커마다 이 절차를 반복합니다.

    클러스터 구성을 추가 브로커마다 복사할 수 있습니다. 그러나 다른 AMQ Broker 데이터 파일(예: 바인딩, 저널, 대규모 메시지 디렉터리)을 복사하지 마십시오. 이러한 파일은 클러스터의 노드 간에 고유해야 합니다. 그렇지 않으면 클러스터가 올바르게 포맷되지 않습니다.

추가 리소스

14.2.3. Cryostat 기반 동적 검색을 사용하여 브로커 클러스터 생성

이미 사용자 환경에서 Cryostat를 사용하는 경우 이를 사용하여 브로커가 서로 동적으로 검색하는 브로커 클러스터를 만들 수 있습니다.

사전 요구 사항

프로세스

  1. &lt ;broker_instance_dir&gt; /etc/broker.xml 구성 파일을 엽니다.
  2. < core&gt; 요소 내에서 커넥터를 추가합니다.

    이 커넥터는 다른 브로커가 이 옵션에 연결하는 데 사용할 수 있는 연결 정보를 정의합니다. 이 정보는 검색 중에 클러스터의 다른 브로커로 전송됩니다.

    <configuration>
        <core>
            ...
            <connectors>
                <connector name="netty-connector">tcp://localhost:61617</connector>
            </connectors>
            ...
        </core>
    </configuration>
  3. &lt ;core&gt; 요소 내에서 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
    브로드캐스트해야 하는 이전에 구성된 클러스터 커넥터입니다.
  4. 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 보다 훨씬 높은 값으로 설정합니다. 그렇지 않으면 브로커가 여전히 브로드캐스트되어 있어도 목록에서 주기적으로 사라질 수 있습니다 (시간의 약간의 차이로 인해).

  5. 클러스터 연결을 생성하고 동적 검색을 사용하도록 구성합니다.

    기본적으로 클러스터 연결은 대칭 토폴로지의 모든 주소에 대한 메시지를 로드 밸런싱합니다.

    <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
    이 브로커가 클러스터의 다른 멤버를 찾는 데 사용해야 하는 검색 그룹입니다. 클러스터가 동적 검색을 사용하는 경우에만 이 속성을 구성해야 합니다.
  6. 클러스터 연결에 대한 추가 속성을 구성합니다.

    이러한 추가 클러스터 연결 속성에는 대부분의 일반적인 사용 사례에 적합한 기본값이 있습니다. 따라서 기본 동작을 원하지 않는 경우에만 이러한 속성을 구성해야 합니다. 자세한 내용은 부록 C. 클러스터 연결 구성의 내용을 참조하십시오.

  7. 클러스터 사용자 및 암호를 만듭니다.

    AMQ Broker는 기본 클러스터 인증 정보와 함께 제공되지만 권한이 없는 원격 클라이언트가 이러한 기본 인증 정보를 사용하여 브로커에 연결하지 못하도록 변경해야 합니다.

    중요

    클러스터 암호는 클러스터의 모든 브로커에서 동일해야 합니다.

    <configuration>
        <core>
            ...
            <cluster-user>cluster_user</cluster-user>
            <cluster-password>cluster_user_password</cluster-password>
            ...
        </core>
    </configuration>
  8. 추가 브로커마다 이 절차를 반복합니다.

    클러스터 구성을 추가 브로커마다 복사할 수 있습니다. 그러나 다른 AMQ Broker 데이터 파일(예: 바인딩, 저널, 대규모 메시지 디렉터리)을 복사하지 마십시오. 이러한 파일은 클러스터의 노드 간에 고유해야 합니다. 그렇지 않으면 클러스터가 올바르게 포맷되지 않습니다.

추가 리소스

  • Cryostat와 함께 동적 검색을 사용하는 브로커 클러스터의 예는 clustered-jgroups 예제 를 참조하십시오.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.