미러 캐시 토폴로지
미러링 토폴로지에서 캐시 클러스터는 2개 이상의 노드를 가질 수 없습니다. 한 번에 두 노드 중 하나만 활성 노드로 작동하고 다른 노드는 수동 노드로 작동합니다. 백업 노드라고도 하는 패시브 노드는 단일 실패 지점을 완화합니다. 활성 노드가 작동 중지되면 수동 노드가 활성 노드의 역할을 맡으므로 이 토폴로지에 단일 실패 지점이 존재하지 않습니다. 읽기 및 쓰기 작업은 모두 활성 노드에서 수행된 다음 쓰기가 백업 또는 수동 노드에 비동기식으로 복제됩니다. 그러나 이 토폴로지의 복제 수준은 여러 복제본을 가질 수 있는 복제 토폴로지와 달리 하나의 노드로 제한됩니다.
주의 사항
이 기능은 다음에서도 사용할 수 있습니다. NCache Professional.
미러링된 캐시 클러스터는 사용자 로드가 증가하지 않을 것으로 예상되는 소량의 데이터를 캐싱하는 데 적합합니다. 모든 클라이언트 작업이 클러스터의 활성 노드에서만 수행되기 때문에 토폴로지는 읽기 또는 쓰기 작업에 대해 확장할 수 없습니다. 그러나 토폴로지는 백업 노드로의 복제를 통해 일종의 고가용성을 제공합니다. 능동 노드가 클러스터를 떠나면 수동 노드가 자동으로 능동 노드의 역할을 인수하고 모든 클라이언트 응용 프로그램이 이 새 능동 노드와 통신을 시작합니다.
미러링된 캐시에서 활성 노드 선택
클러스터의 최상위 노드는 클러스터의 활성 노드로 간주됩니다. 클러스터가 중지되거나 실행 중인 경우에도 활성 노드를 선택할 수 있지만 실행 중인 클러스터의 활성 노드를 변경할 경우 변경 사항을 적용하려면 클러스터를 다시 시작해야 합니다. 활성 노드가 클러스터를 떠나면 해당 수동 노드가 자동으로 활성 노드가 됩니다. 이전에 활성 노드가 다시 온라인 상태가 되면 클러스터에 수동 노드로 합류합니다.
비동기 복제
클라이언트는 클러스터의 활성 노드에만 직접 연결되는 반면, 클러스터의 두 번째 노드(수동 노드)에는 활성 노드의 백업이 있습니다. 클러스터의 활성 노드는 수동 노드의 백업을 유지 관리합니다. 활성 노드의 모든 쓰기 작업은 백그라운드 대기열을 통해 수동 노드로 복제됩니다. 모든 쓰기 작업은 대기열에 추가되며 전용 백그라운드 스레드는 이 대기열에서 데이터를 청크로 선택하여 패시브 노드에 복제합니다. 클라이언트는 활성 노드에서 쓰기 작업이 성공적으로 수행된 직후에 응답을 받습니다. 작업은 대기열에 추가되고 나중에 패시브 노드에 복제됩니다.
주의 사항
작업이 활성 노드에서 수동 노드로 비동기식으로 복제되는 동안 클라이언트 응용 프로그램의 성능 저하가 발생하지 않는다는 점에 유의해야 합니다.
데이터 복제가 비동기식으로 이루어지기 때문에 데이터가 손실될 가능성이 있습니다. 대기 중인 작업을 복제하지 않고 활성 노드가 다운되면 데이터 손실이 발생합니다.
코디네이터 서버의 역할
캐시 클러스터의 활성 서버 노드는 코디네이터 서버 역할을 합니다. 코디네이터 서버는 상태 전송, write-behind 작업, 데이터 무효화(만료 및 종속성) 등과 같은 여러 작업을 수행하는 역할을 담당합니다. 캐시에서 항목을 제거하기로 결정한 후 다른 노드(패시브 노드)에 요청합니다. 캐시 저장소에서도 제거합니다. 코디네이터 서버(액티브 노드)가 캐시 클러스터를 떠나면 패시브 노드가 코디네이터 서버가 되어 해당 역할을 재개합니다.
클라이언트 연결
미러링 토폴로지에서 클라이언트는 클러스터의 활성 노드에만 연결됩니다. 즉, 클러스터의 패시브 노드에서 클라이언트 연결이 차단됩니다. 클라이언트는 동일한 데이터를 포함하는 클러스터의 두 노드(활성 및 수동)와 연결을 설정할 필요가 없습니다. 앞에서 설명한 대로 활성 노드가 다운되면 수동 노드는 자동으로 활성 노드가 되고 클라이언트는 자동으로 해당 노드와 연결을 설정합니다.
국가 이전
상태 전송은 두 번째 노드가 미러링된 토폴로지의 캐시 클러스터에 가입할 때 트리거됩니다. 이 경우 코디네이터 서버(능동 노드)는 데이터를 두 번째(수동) 노드와 동기화합니다.