16.3.3.2. 복제 고가용성을 위한 브로커 클러스터 구성

다음 절차에서는 6-broker 클러스터에 대해 HA(고가용성)를 구성하는 방법을 설명합니다. 이 토폴로지에서는 6개의 브로커가 3개의 라이브 백업 쌍으로 그룹화됩니다. 세 개의 라이브 브로커는 각각 전용 백업 브로커와 연결됩니다.

복제에는 네트워크 격리 위험을 줄일 수 있도록 최소 세 개의 라이브 백업 쌍이 필요합니다.Replication requires at least three live-backup pairs to lessen (but not eliminate) the risk of network isolation.

사전 요구 사항

  • 6개 이상의 브로커가 있는 브로커 클러스터가 있어야 합니다.

    6 명의 브로커는 3 개의 라이브 백업 쌍으로 구성됩니다. 클러스터에 브로커를 추가하는 방법에 대한 자세한 내용은 16장. 브로커 클러스터 설정 을 참조하십시오.

절차

  1. 클러스터의 브로커를 라이브 백업 그룹으로 그룹화합니다.

    대부분의 경우 라이브 백업 그룹은 라이브 브로커와 백업 브로커라는 두 개의 브로커로 구성되어야 합니다. 클러스터에 6개의 브로커가 있는 경우 라이브 백업 그룹 3개가 필요합니다.

  2. 하나의 라이브 브로커와 하나의 백업 브로커로 구성된 첫 번째 라이브 백업 그룹을 생성합니다.

    1. 라이브 브로커의 < broker-instance-dir> /etc/broker.xml 구성 파일을 엽니다.
    2. HA 정책에 복제를 사용하도록 실시간 브로커를 구성합니다.

      <configuration>
          <core>
              ...
              <ha-policy>
                  <replication>
                      <master>
                          <check-for-live-server>true</check-for-live-server>
                          <group-name>my-group-1</group-name>
                          <vote-on-replication-failure>true</vote-on-replication-failure>
                          ...
                      </master>
                  </replication>
              </ha-policy>
              ...
          </core>
      </configuration>
      check-for-live-server

      실시간 브로커가 실패하면 이 속성은 클라이언트가 재시작할 때 클라이언트가 해당 브로커로 장애 조치할지 여부를 제어합니다.

      이 속성을 true 로 설정하면 이전 장애 조치 후 라이브 브로커가 다시 시작되면 동일한 노드 ID를 사용하여 클러스터에서 다른 브로커를 검색합니다. 라이브 브로커가 동일한 노드 ID로 다른 브로커를 찾는 경우, 이는 라이브 브로커가 실패했을 때 백업 브로커가 성공적으로 시작되었음을 나타냅니다. 이 경우 라이브 브로커는 데이터를 백업 브로커와 동기화합니다. 그런 다음 라이브 브로커는 백업 브로커를 종료하도록 요청합니다. 다음과 같이 백업 브로커가 failback에 대해 구성된 경우 해당 브로커가 종료됩니다. 그런 다음 라이브 브로커는 활성 역할을 다시 시작하고 클라이언트가 다시 연결합니다.

      주의

      실시간 브로커에서 check-for-live-servertrue 로 설정하지 않으면 이전 페일오버 후 실시간 브로커를 다시 시작할 때 중복 메시징 처리가 발생할 수 있습니다. 특히 이 속성이 false 로 설정된 실시간 브로커를 다시 시작하면 라이브 브로커는 데이터를 백업 브로커와 동기화하지 않습니다. 이 경우 라이브 브로커는 백업 브로커가 이미 처리한 것과 동일한 메시지를 처리하여 중복을 일으킬 수 있습니다.

      group-name
      이 Live-backup 그룹의 이름입니다. 실시간 백업 그룹을 만들려면 라이브 및 백업 브로커를 동일한 그룹 이름으로 구성해야 합니다.
      vote-on-replication-failure

      이 속성은 라이브 브로커가 중단된 복제 연결 시 실시간 투표라고 하는 쿼럼 투표를 시작하는지 여부를 제어합니다.

      실시간 투표는 라이브 브로커가 중단 된 복제 연결의 원인인지 아니면 파트너가 있는지 여부를 결정하는 방법입니다. 투표 결과에 따라 실시간 브로커는 계속 실행 중이거나 종료됩니다.

      중요

      쿼럼 투표가 성공하려면 클러스터의 크기를 통해 대부분의 결과를 얻을 수 있어야 합니다. 따라서 복제 HA 정책을 사용하는 경우 클러스터에 3개 이상의 라이브 백업 브로커 쌍이 있어야 합니다.

      클러스터에서 구성하는 브로커 쌍이 많을수록 클러스터의 전체 내결함성을 늘릴 수 있습니다. 예를 들어, 세 개의 라이브 백업 브로커 쌍이 있다고 가정합니다. 전체 실시간 백업 쌍에 대한 연결이 끊어지면 나머지 두 라이브 백업 쌍은 더 이상 쿼럼 투표로 인한 대부분의 결과를 얻을 수 없습니다. 이러한 상황은 후속 복제 중단으로 인해 라이브 브로커가 종료되고 백업 브로커가 시작되지 않을 수 있습니다. 5개 브로커 쌍을 사용하여 클러스터를 구성하면 클러스터에서 두 개 이상의 오류가 발생할 수 있으며 쿼럼 투표로 인한 대부분의 결과를 얻을 수 있습니다.

    3. 라이브 브로커에 대한 추가 HA 속성을 구성합니다.

      이러한 추가 HA 속성에는 대부분의 일반적인 사용 사례에 적합한 기본값이 있습니다. 따라서 기본 동작을 원하지 않는 경우에만 이러한 속성을 구성해야 합니다.Therefore, you only need to configure these properties if you do not want the default behavior. 자세한 내용은 부록 F. 복제 고가용성 구성 요소의 내용을 참조하십시오.

    4. 백업 브로커의 < broker-instance-dir> /etc/broker.xml 구성 파일을 엽니다.
    5. HA 정책에 복제를 사용하도록 백업(즉, 슬레이브) 브로커를 구성합니다.

      <configuration>
          <core>
              ...
              <ha-policy>
                  <replication>
                      <slave>
                          <allow-failback>true</allow-failback>
                          <restart-backup>true</restart-backup>
                          <group-name>my-group-1</group-name>
                          <vote-on-replication-failure>true</vote-on-replication-failure>
                          ...
                      </slave>
                  </replication>
              </ha-policy>
              ...
          </core>
      </configuration>
      allow-failback

      장애 조치가 발생하고 백업 브로커가 실시간 브로커에 대해 인수한 경우 이 속성은 백업 브로커가 다시 시작되고 클러스터에 다시 연결할 때 백업 브로커가 원래 라이브 브로커로 실패할지 여부를 제어합니다.

      참고

      failback은 실시간 백업 쌍(단일 백업 브로커와 연결된 라이브 브로커)을 위한 것입니다. 라이브 브로커가 여러 백업으로 구성된 경우 failback이 발생하지 않습니다. 대신 장애 조치(failover) 이벤트가 발생하면 백업 브로커가 활성 상태가 되고 다음 백업이 백업됩니다.Instead, if a failover event occurs, the backup broker will become live, and the next backup will become its backup. 원래의 라이브 브로커가 다시 온라인 상태가 되면 현재 활성 상태인 브로커에 백업이 있기 때문에 failback을 시작할 수 없습니다.

      restart-backup
      이 속성은 백업 브로커가 라이브 브로커로 다시 실패한 후 자동으로 다시 시작되는지 여부를 제어합니다. 이 속성의 기본값은 true 입니다.
      group-name
      이 백업이 연결해야 하는 라이브 브로커의 그룹 이름입니다. 백업 브로커는 동일한 그룹 이름을 공유하는 라이브 브로커에만 연결됩니다.
      vote-on-replication-failure

      이 속성은 라이브 브로커가 중단된 복제 연결 시 실시간 투표라고 하는 쿼럼 투표를 시작하는지 여부를 제어합니다. 활성 상태가 된 백업 브로커는 실시간 브로커로 간주되며 실시간 투표를 시작할 수 있습니다.

      실시간 투표는 라이브 브로커가 중단 된 복제 연결의 원인인지 아니면 파트너가 있는지 여부를 결정하는 방법입니다. 투표 결과에 따라 실시간 브로커는 계속 실행 중이거나 종료됩니다.

    6. (선택 사항) 백업 브로커가 시작하는 쿼럼 투표의 속성을 구성합니다.

      <configuration>
          <core>
              ...
              <ha-policy>
                  <replication>
                      <slave>
                      ...
                          <vote-retries>12</vote-retries>
                          <vote-retry-wait>5000</vote-retry-wait>
                      ...
                      </slave>
                  </replication>
              </ha-policy>
              ...
          </core>
      </configuration>
      vote-retries
      이 속성은 백업 브로커가 백업 브로커를 시작할 수 있는 대부분의 결과를 수신하기 위해 백업 브로커가 투표를 재시도하는 횟수를 제어합니다.
      vote-retry-wait
      이 속성은 쿼럼 투표를 재시도할 때마다 백업 브로커가 대기하는 시간(밀리초)을 제어합니다.
    7. 백업 브로커에 대한 추가 HA 속성을 구성합니다.

      이러한 추가 HA 속성에는 대부분의 일반적인 사용 사례에 적합한 기본값이 있습니다. 따라서 기본 동작을 원하지 않는 경우에만 이러한 속성을 구성해야 합니다.Therefore, you only need to configure these properties if you do not want the default behavior. 자세한 내용은 부록 F. 복제 고가용성 구성 요소의 내용을 참조하십시오.

  3. 클러스터의 추가 라이브 백업 그룹에 대해 2단계를 반복합니다.

    클러스터에 6개의 브로커가 있는 경우 이 절차를 두 번 반복하여 나머지 라이브 백업 그룹에 대해 한 번 더 반복합니다.

추가 리소스