14.3.3. 복제 고가용성 구성
HA(복제 고가용성) 정책을 사용하여 브로커 클러스터에서 HA를 구현할 수 있습니다. 복제를 사용하면 라이브 및 백업 브로커 간에 영구 데이터가 동기화됩니다. 라이브 브로커가 실패하는 경우 메시지 데이터는 백업 브로커와 동기화되며 실패한 라이브 브로커에 대해 인수됩니다.
공유 파일 시스템이 없는 경우 공유 저장소에 대한 대안으로 복제를 사용해야 합니다. 그러나 복제를 사용하면 라이브 브로커와 해당 백업이 동시에 작동하는 네트워크 분리가 발생할 수 있습니다.
복제에는 네트워크 격리 위험을 줄일 수 있도록 최소 세 개의 라이브 백업 쌍이 필요합니다.Replication requires at least three live-backup pairs to lessen (but not eliminate) the risk of network isolation. 라이브 백업 브로커 쌍을 3개 이상 사용하면 클러스터에서 쿼럼 투표를 사용하여 두 개의 라이브 브로커가 발생하지 않습니다.
다음 섹션에서는 쿼럼 투표가 작동하는 방법과 3개 이상의 실시간 백업 쌍을 사용하여 브로커 클러스터의 복제 HA를 구성하는 방법을 설명합니다.
실시간 및 백업 브로커가 네트워크를 통해 메시징 데이터를 동기화해야 하므로 복제는 성능 오버헤드를 추가합니다. 이 동기화 프로세스는 저널 작업을 차단하지만 클라이언트를 차단하지는 않습니다. 데이터 동기화를 위해 저널 작업을 차단할 수 있는 최대 시간을 구성할 수 있습니다.
14.3.3.1. 쿼럼 투표 정보
라이브 브로커와 백업이 중단된 복제 연결이 발생하는 경우 쿼럼 투표 프로세스를 구성하여 네트워크 격리(또는 "split brain") 문제를 완화할 수 있습니다. 네트워크 분리 중에 라이브 브로커와 해당 백업이 동시에 활성화될 수 있습니다.
다음 표에서는 AMQ Broker에서 사용하는 두 가지 유형의 쿼럼 투표를 설명합니다.
투표 유형 | 설명 | 이니시에이터 | 필수 구성 | 참가자 | 투표 결과에 따른 작업 |
---|---|---|---|---|---|
백업 투표 | 백업 브로커가 라이브 브로커에 대한 복제 연결을 분실하는 경우 백업 브로커는 이 투표의 결과에 따라 시작할지 여부를 결정합니다. | 백업 브로커 | 없음. 백업 브로커가 복제 파트너에 대한 연결이 끊어지면 백업 투표가 자동으로 수행됩니다. 그러나 이러한 매개변수에 사용자 정의 값을 지정하여 백업 투표의 속성을 제어할 수 있습니다.
| 클러스터의 다른 실시간 브로커 | 백업 브로커는 클러스터의 다른 라이브 브로커로부터 대다수(즉, 쿼럼) 투표를 수신하면 시작되며 복제 파트너를 더 이상 사용할 수 없음을 나타냅니다. |
라이브 투표 | 라이브 브로커가 복제 파트너에 대한 연결이 끊어지면, 라이브 브로커는 이 투표에 따라 계속 실행할지 여부를 결정합니다. | 실시간 브로커 |
실시간 투표는 라이브 브로커가 복제 파트너에 대한 연결을 잃고 | 클러스터의 다른 실시간 브로커 | 클러스터 연결이 여전히 활성 상태임을 나타내는 클러스터 의 다른 라이브 브로커로부터 대다수의 투표를 받지 못 하면 실시간 브로커가 종료됩니다. |
아래에는 브로커 클러스터 구성이 쿼럼 투표 동작에 미치는 영향에 대한 몇 가지 중요한 사항이 나와 있습니다.
- 쿼럼 투표가 성공하려면 클러스터의 크기를 통해 대부분의 결과를 얻을 수 있어야 합니다. 따라서 복제 HA 정책을 사용하는 경우 클러스터에 3개 이상의 라이브 백업 브로커 쌍이 있어야 합니다.
- 클러스터에 추가하는 라이브 백업 브로커 쌍을 더 많이 사용하면 클러스터의 전반적인 내결함성을 높일 수 있습니다. 예를 들어, 세 개의 라이브 백업 쌍이 있다고 가정합니다. 전체 실시간 백업 쌍이 손실되면 나머지 두 개의 라이브 백업 쌍은 후속 쿼럼 투표에서 대부분의 결과를 얻을 수 없습니다. 이 경우 클러스터에서 추가 복제 중단으로 인해 라이브 브로커가 종료되고 백업 브로커가 시작되지 않을 수 있습니다. 5개 브로커 쌍을 사용하여 클러스터를 구성하면 클러스터에서 두 개 이상의 오류가 발생할 수 있으며 쿼럼 투표로 인한 대부분의 결과를 얻을 수 있습니다.
- 클러스터의 라이브 백업 브로커 쌍 수를 의도적으로 줄이 면 대다수 투표에 대한 이전에 설정된 임계값이 자동으로 감소되지 않습니다. 이 기간 동안 손실된 복제 연결에 의해 트리거된 쿼럼 투표는 성공할 수 없으므로 클러스터가 네트워크 격리에 더 취약합니다. 클러스터에서 쿼럼 투표에 대한 대다수 임계값을 다시 계산하도록 하려면 먼저 클러스터에서 제거 중인 실시간 백업 쌍을 종료합니다. 그런 다음 클러스터에서 나머지 실시간 백업 쌍을 다시 시작합니다. 나머지 브로커를 모두 다시 시작하면 클러스터에서 쿼럼 투표 임계값을 다시 계산합니다.