최대 로드, 장애, 시스템 중단은 캐시 클러스터의 일부일 가능성이 높으며 걱정할 사항이 아닙니다. 그러나 그러한 상황에 대한 해결 방법이 없는 것은 확실히 그렇습니다! 이러한 위험 유발 요인에 대한 장애 복원력은 캐싱 클러스터의 기본 요구 사항이므로 장애 시나리오에서 항상 편리하게 복구할 수 있습니다. 어떤 상황에서는 데이터 손실이 무시할 수 있고 쉽게 처리될 수 있지만 미션 크리티컬 데이터와 관련된 일부 경우에는 데이터 보호 및 가용성이 부차적인 요구 사항이 될 수 없습니다.
NCache 데이터를 잃지 마십시오!
NCache, 메모리 내 분산 데이터 캐싱 저장소인 은 최대 로드 또는 다운타임에서 데이터의 고가용성이 보장되는 아키텍처를 제공합니다. 노드가 클러스터를 영구적으로 떠나는 것과 같은 재난 상황에서도 데이터를 100% 사용할 수 있습니다. NCache 서버 노드의 런타임 추가 또는 제거를 처리하도록 설계되었습니다.
또한 최신 적용 가능한 기능을 사용하여 런타임 시 캐시 구성을 수정할 수 있습니다. 피어 투 피어 아키텍처로, NCache "단일 실패 지점"이라는 가장 큰 문제를 해결합니다. 장애 조치 지원은 캐시 클러스터 내에서만 제공되는 것이 아니라 캐시에 연결된 클라이언트에서도 제공됩니다. 그것은 만든다 NCache 데이터 손실이 없다고 주장하는 매우 역동적이고 매우 자신 있습니다. 이해를 돕기 위해 아래 그림을 보자 NCache의 가용성.
1단계는 클라이언트가 연결된 클러스터를 보여줍니다. NCache 피어 투 피어 아키텍처가 있는 클러스터.
그림 2는 재해로 인해 캐시 클러스터를 떠나는 노드를 보여줍니다.
아래 그림은 캐시 클러스터가 나머지 노드 간의 데이터 균형을 유지하고 클라이언트가 캐시 클러스터에 연결된 상태를 유지하는 것을 보여줍니다.
캐싱 토폴로지
NCache 데이터 저장을 위한 다양한 토폴로지를 제공하므로 자신의 요구 사항에 따라 데이터를 저장할 수 있습니다. 아래 토폴로지를 살펴보십시오.
- 미러링 토폴로지: 이름에서 알 수 있듯이 미러링 토폴로지는 두 개의 노드가 있는 클러스터를 의미하며, 하나는 수동 노드와 미러링된 활성 노드입니다.
- 복제된 토폴로지: In 복제 된 토폴로지에서 각 노드에는 동일한 데이터가 복제됩니다.
- 파티션된 캐시:에서 분할 된 토폴로지에서 모든 서버 노드에는 파티션이 있으며 데이터는 노드와 해당 파티션 간에 균등하게 분할됩니다.
- 복제본 캐시 파티션: 복제본 파티션 토폴로지는 모든 파티션의 복제본을 유지하므로 가장 빠른 토폴로지입니다. 모든 파티션은 다른 서버에 복제되고 복제본은 수동적이므로 클라이언트가 해당 파티션에 연결할 수 없습니다.
이제 데이터 가용성 wrt 캐싱 토폴로지에 대해 논의해 보겠습니다. 언급된 각 토폴로지는 서로 다른 특성을 가지고 있습니다. 복제된 토폴로지 데이터가 모든 노드에서 복제되도록 하여 데이터를 100% 사용 가능하게 유지합니다. 에 분할된 토폴로지, 단일 노드가 다운되면 데이터의 일부가 손실됩니다. 그러나 분할된 복제본 토폴로지, 모든 파티션에 복제본이 있으므로 노드가 손실되면 데이터는 redis나머지 노드 사이에 공물. 이는 데이터 가용성과 관련하여 POR 토폴로지를 가장 효율적으로 만듭니다. 비동기식 분할 복제본 토폴로지에는 데이터 손실이 발생할 수 있는 백그라운드 데이터 복제가 있지만 동기식 POR 토폴로지에서는 클라이언트 응용 프로그램을 통해 복제가 발생하므로 데이터 손실이 발생하지 않습니다.
캐싱 토폴로지 자가 치유 동적 클러스터링 NCache 아키텍처
피어 투 피어 아키텍처 NCache
피어 투 피어 아키텍처는 마스터 또는 슬레이브 노드의 개념이 없음을 의미합니다. NCache. 클러스터는 잘 정의된 서버 집합으로 구성되며 각 서버는 캐시 클러스터의 다른 모든 서버에 연결됩니다. 전체 클러스터를 관리하는 코디네이터 노드가 있습니다. 조정자 노드는 클러스터에 참여하는 노드와 관련하여 가장 높은 노드입니다. 조정자 노드가 클러스터를 떠나면 다음으로 가장 높은 노드가 조정자 노드가 됩니다. 코디네이터 노드는 또한 다른 노드의 데이터 배포에 대한 전체 정보를 공유하므로 다음 코디네이터 노드는 이미 데이터 배포에 대한 모든 정보를 알고 있습니다.
데이터 배포는 버킷을 기반으로 이루어집니다. 단일 버킷은 데이터 배포의 최소 단위입니다. 모든 버킷은 캐시 클러스터의 노드에 고르게 분산됩니다.
예를 들어, 두 개의 노드와 1000개의 데이터 버킷이 있는 캐시 클러스터는 각 노드에 500개의 데이터 버킷을 보관합니다. NCache 분포도를 기반으로 데이터를 배포합니다. 분산 맵은 버킷이 상주하는 노드와 버킷을 매핑합니다.
한 노드에서 다른 노드로 데이터를 전송하는 프로세스를 호출 국가 이전. 기존(소스 노드)에서 새(할당) 노드로 데이터 버킷을 버킷별로 전송합니다. 상태 이전이 발생하는 동안 주어진 버킷과 관련된 모든 작업은 전체 상태 이전 프로세스가 수행될 때까지 소스 노드로 전달됩니다. 상태 이전 프로세스가 완료되면 모든 노드에 상태 이전이 완료되었음을 알립니다.
클러스터 및 클라이언트 내 런타임 검색
NCache 동적 기능에 대한 데이터 가용성이 뛰어납니다. 노드가 캐시 클러스터에 참여하면 런타임 시 모든 서버 및 클라이언트 노드에 이 정보가 제공되어 데이터 배포가 발생합니다. 조정자 노드는 새 서버가 캐시 클러스터에 합류했는지 확인하고 캐시 클러스터의 노드 목록에 새 서버 노드를 추가합니다. 또한 캐시 클러스터에 들어가는 새 서버 노드에 대해 다른 모든 서버 노드에 알립니다. 그런 다음 새 서버 노드는 다른 모든 서버 노드와 TCP 연결을 얻습니다. 따라서 새 서버에는 캐시 클러스터에 합류할 때까지 기존 캐시 서버 노드에 대한 정보가 없습니다.
마찬가지로 캐시 클라이언트도 런타임에 검색됩니다. 캐시 클러스터에 연결할 때 클라이언트는 전체 캐시 클러스터와 모든 서버 노드에 대해 알 필요가 없습니다. 실행 중인 단일 캐시 서버의 정보만 필요합니다. 이 연결을 사용하여 연결할 캐시 서버를 확인합니다. 다음은 연결 설정 후 클라이언트에 제공되는 중요한 정보입니다.
- 데이터 분포 맵: 어떤 데이터가 어떤 서버 노드에 있는지에 대한 정보를 담고 있어 쉽게 접근할 수 있는 맵입니다.
- 캐싱 토폴로지: 연결할 캐시 서버를 결정하기 위한 캐시 토폴로지에 대한 정보입니다.
- 클러스터 멤버십 정보: 클러스터에 진입하는 새 노드나 클러스터를 떠나는 기존 노드 등 클러스터의 구성원에 대한 정보입니다.
- 에 관한 정보 압축 또는 암호화.
- 직렬화 정보: 바이너리 또는 JSON.
동적 클러스터링 스플릿 브레인 자동 복구 유지 관리 모드
연결 장애 조치 지원
NCache 클러스터는 동적 자가 치유 클러스터이며 런타임 시 모든 장애 조치를 처리합니다. 두 가지 유형의 장애 조치 지원이 제공됩니다. NCache:
- 클러스터 내 장애 조치 지원: 캐시 서버가 언제든지 클러스터를 떠나면 캐시 클러스터가 캐시 서버의 손실로부터 매우 효율적으로 스스로를 치유합니다. 더 자세히 설명하면 캐시 클러스터가 데이터 버킷을 나머지 캐시 서버 노드로 나누어 새로운 배포에 대한 모든 캐시 서버 노드를 업데이트한다는 의미입니다.
- 클라이언트 내 장애 조치 지원: 캐시 서버와 마찬가지로 캐시 클라이언트도 기존의 다른 캐시 서버에 따라 조정됩니다. 클라이언트가 캐시 서버에 연결되어 있는 상태에서 서버 노드를 사용할 수 없어 연결이 끊긴 경우 연결된 모든 클라이언트는 자동으로 기존의 다른 노드로 이동합니다.
유지 관리 모드
유지 관리 모드 에서 제공하는 또 다른 사용자 중심 기능입니다. NCache. 앞서 논의한 바와 같이 상태 전송은 클러스터를 떠나거나 클러스터에 합류하는 모든 노드에서 발생합니다. 서버 노드가 불필요한 상태 전송을 피하기 위해 클러스터를 떠나는 시나리오에서는 유지 관리 모드가 유용합니다. 유지 관리를 위해 노드를 중지하고 값비싼 상태 전송 프로세스 비용을 클러스터에 저장할 수 있는 제어 기능을 제공합니다. 노드가 유지 관리되는 동안 모든 작업은 복제본 노드에서 제공됩니다. 노드가 클러스터에 다시 참여하는 즉시 상태를 복제본 노드와 동기화합니다.
결론
데이터 가용성은 캐시 데이터를 다룰 때 가장 큰 문제입니다. NCache 재난 상황에서 즉각적인 손상 제어를 제공하는 모든 비용으로 데이터 가용성을 처리하는 고급 기능이 풍부합니다. 뿐만 아니라, NCache 고가용성을 제공할 뿐만 아니라 캐시 클러스터를 선형으로 확장할 수 있는 확장 가능한 아키텍처가 있습니다. 그래서 이렇게 말하는 것이 안전하다. NCache 애플리케이션 아키텍처에 필요한 최고의 캐싱 계층입니다.