인메모리 분산 캐시의 동적 클러스터링
XNUMXD덴탈의 NCache 인메모리 분산 캐시 클러스터는 자기 치유, 동적이며 확장성이 뛰어납니다. 애플리케이션 가동 중단 없이 런타임에 캐시 서버를 추가하거나 제거할 수 있습니다. 그만큼 NCache 클러스터는 애플리케이션 요청 처리 및 데이터 처리 측면에서 선형 확장성을 제공합니다. 캐시 클러스터가 최대 한도에 도달하면 더 많은 서버를 추가할 수 있습니다. redis요청 및 데이터 로드에 경의를 표합니다.
캐시 서버가 다운되면 캐시 클러스터는 자동으로 서버 장애를 감지하고 그에 따라 조정합니다. 캐시 서버가 다운되는 경우를 생각해 봅시다. 파티션-복제본 토폴로지에서 캐시 클러스터는 파티션과 데이터를 자동으로 재정렬합니다. 나머지 캐시 서버는 백업 서버에서 다운된 서버의 남은 데이터를 복사합니다.
모든 클러스터형 캐시에는 전용 TCP 기반 클러스터가 있습니다. 애플리케이션은 TCP를 통해 캐시 클러스터와 통신합니다. 따라서 애플리케이션 프로세스가 다운되더라도 캐시 클러스터에는 영향을 미치지 않습니다. 모든 캐시 클러스터에는 클러스터형 캐시를 구성할 때 별도의 TCP 포트가 필요합니다. 그만큼 파티션-복제본 토폴로지는 복제본에 대해 하나의 추가 TCP 포트를 차지합니다.
XNUMXD덴탈의 PXNUMXP 아키텍처 모든 캐시 서버가 다른 모든 캐시 서버와 TCP 연결을 설정할 수 있도록 합니다. 이를 통해 캐시 서버는 필요할 때마다 서로 직접 통신하거나 다른 시간에 요청을 브로드캐스트할 수 있습니다. 캐시 클러스터, 멀티스레드 아키텍처를 통해 다음과 같은 방식으로 작업을 실행할 수 있습니다. 병렬, 따라서 오늘날의 강력한 하드웨어의 이점을 누리십시오.
여러분의 시간과 재능으로 요청 시간 초과 구성 캐시 클러스터 구성 시 캐시 클러스터에 대한 정보입니다. 기본 요청 제한 시간은 60초입니다.
주의 사항
이 기능은 다음에서도 사용할 수 있습니다. NCache Professional.
주의 사항
캐시 클러스터에 할당된 클러스터 포트는 구성된 모든 캐시 서버에서 사용할 수 있어야 합니다. 마찬가지로 특정 클러스터 포트에서 캐시 서버 간의 통신을 허용하도록 방화벽을 구성해야 합니다. 기본 클러스터 포트 범위 ~부터 시작하다 7800.
메모리 내 분산 캐시의 클러스터 조정자
분산 환경에서는 서로 다른 작업의 조정이 불가피합니다. 캐시 클러스터에서 코디네이터 서버가 이 중요한 역할을 합니다. 모든 캐시 클러스터에는 하나의 조정자 캐시 서버가 있습니다.
에서 코디네이터 서버의 선택 NCache 간단합니다. 최상위 캐시 서버는 조정자 서버의 역할을 맡습니다. 따라서 먼저 클러스터에 가입한 캐시 서버가 코디네이터 서버가 됩니다. 코디네이터 캐시 서버가 캐시 클러스터를 떠나는 경우 우아하게 또는 갑자기 다음 최상위 캐시 서버가 조정자가 됩니다.
코디네이터 캐시 서버는 다음을 담당합니다.
클러스터 멤버십: 코디네이터 서버는 새 캐시 서버의 멤버십 요청을 수락하는 역할을 담당합니다. 또한 업데이트된 구성원 목록을 나머지 서버에 브로드캐스트합니다. 마찬가지로, 서버가 클러스터를 떠나면 코디네이터 서버는 다른 서버에 멤버십 변경 사항을 알립니다.
분포 맵 생성: 코디네이터 서버는 분산 맵을 생성하고 서버가 캐시 클러스터에 합류하거나 떠날 때마다 복제본을 관리합니다. 파티션 된 및 파티션-복제본 토폴로지.
주문 요청: 첨가 및 업데이트 데이터의 복제된 토폴로지 데이터 일관성을 달성하기 위해 모든 캐시 서버에 대한 작업이 동일한 순서로 실행되어야 합니다. 이러한 작업은 코디네이터 서버에서 시퀀스 토큰을 가져오고 작업 실행은 이러한 시퀀스 토큰에 따라 발생합니다. 이 메커니즘은 주어진 업데이트에 대해 동일한 업데이트를 보장합니다.
CacheItem
클러스터 전체에 적용됩니다.캐시 데이터 로더 및 리프레셔 관리: 캐시 시작 로더 및 리프레셔 작업은 코디네이터 서버에서 실행됩니다. 여러 경우 배포 힌트 캐시 시작 로더 또는 리프레셔에 대해 지정된 경우 코디네이터는 병렬 로드 및 새로 고침을 위해 이러한 힌트를 다른 클러스터 멤버에 할당합니다.
데이터 무효화 및 제거: 모든 캐시 서버 복제 및 거울 토폴로지에는 동일한 데이터 세트가 포함되어 있습니다. 따라서 코디네이터 서버는 데이터 무효화를 담당합니다(만료 및 종속성) 전체 클러스터에 걸쳐 있습니다. 코디네이터 서버는 어떤 항목이 포함될지 결정합니다. 만료 or 축출 된 캐시에서 해당 항목을 제거하고 클러스터 호출을 통해 전체 클러스터에서 해당 항목을 제거합니다.
서버가 인메모리 분산 캐시에서 캐시 클러스터에 가입하고 탈퇴하는 방법
다음은 서버 노드가 캐시 클러스터에 가입하고 탈퇴하는 프로세스입니다.
회원 검색 및 서버 가입
첫 번째 캐시 서버에서 캐시를 시작하면 캐시 클러스터가 형성됩니다. 구성원 검색 프로세스는 캐시 시작 시 모든 캐시 서버에서 실행됩니다. 검색 프로세스에서 캐시 서버는 다른 캐시 구성원과 TCP 연결을 설정하려고 시도합니다. 구성된 클러스터 포트.
첫 번째 캐시 서버가 시작되고 캐시 클러스터의 다른 캐시 서버와 연결할 수 없으면 다른 캐시 서버가 작동하지 않는 것으로 결론을 내립니다. 그러면 이 서버가 캐시 클러스터의 첫 번째 구성원이자 조정자 서버가 됩니다. 다른 서버는 시작하자마자 동일한 검색 프로세스를 거쳐 실행 중인 캐시 서버와 연결을 설정합니다.
이러한 캐시 서버는 이미 실행 중인 캐시 서버에서 캐시 클러스터의 코디네이터 서버에 대한 정보를 찾습니다. 탐색 프로세스가 종료되고 코디네이터 서버가 결정되면 새로 합류하는 캐시 서버가 코디네이터에게 참가 요청을 보냅니다.
코디네이터는 가입 요청을 수락하고 배포 맵을 생성합니다( 파티션 된 및 파티션-복제본 토폴로지), 새 구성원 목록을 전체 캐시 클러스터에 브로드캐스트합니다.
정상적인 서버 종료
. 캐시를 중지 캐시 서버에서 NCache 관리 센터 or PowerShell 도구, 탈퇴 캐시 서버는 코디네이터에게 탈퇴 요청을 보내 이를 알립니다. 코디네이터는 즉시 탈퇴 요청을 처리하고 배포 맵을 생성하며, 새 회원 목록을 전체 클러스터에 브로드캐스팅합니다. 따라서 클러스터는 새로운 분포 맵에 따라 빠르게 조정됩니다.
갑작스러운 서버 장애
캐시 서버가 코디네이터에게 알리지 않고 갑자기 다운되는 경우(예: 정전)가 있습니다. 캐시 서버가 갑자기 다운되면 떠나는 서버와 다른 캐시 서버 사이의 TCP 연결이 끊어집니다. 그들은 떠나는 서버와의 구성 가능한 재시도 횟수에 대해 TCP 연결을 재설정하려고 시도합니다. 이 메커니즘은 일시적인 연결 실패로부터 복구하고 서버의 잘못된 사망 선언을 방지하는 데 도움이 됩니다.
연결 재시도가 끝나면 해당 캐시 서버는 갑자기 나가는 서버의 종료를 종료합니다. 사망 결론이 나면 캐시 서버는 코디네이터에게 이를 알립니다. 비록 코디네이터가 이미 캐시 서버의 소멸을 발견했을지라도, 다른 캐시 서버에서 제공한 정보를 통해 코디네이터가 서버의 소멸을 발견한 경우 빠른 회원 조정이 가능합니다.
어떤 경우이든 코디네이터는 새로운 배포 맵을 생성하고 기존 캐시 서버에 새로운 구성원 목록을 브로드캐스트합니다.
심장의 고동
끊어진 TCP 연결 감지는 연결을 통과하는 트래픽에 따라 달라집니다. 예를 들어, 캐시 클러스터가 사용 중이고 여러 캐시 서버에 요청을 보내는 경우 연결 중단이 조기에 감지됩니다. 그러나 캐시 클러스터의 활동이 매우 낮은 경우 TCP 연결 중단을 감지하는 데 더 많은 시간이 걸릴 수 있습니다.
이 문제를 방지하려면 NCache 클러스터에 내장 하트비트 메커니즘 활성화할 수 있습니다. 클러스터가 유휴 상태일 때, 하트 비트 메시지는 서버 간에 주기적으로 교환됩니다. 그래서 하트비트 메커니즘 캐시 서버 간에 트래픽을 생성하고 갑자기 서버를 떠나는 경우 조기 사망 감지를 돕습니다.
나글링
NCache 클러스터는 여러 요청의 병렬 실행을 지원합니다. 용어 잔소리 여러 요청을 TCP 연결을 통해 보내기 전에 단일 요청으로 결합하는 것을 말합니다. 이렇게 하면 클러스터의 처리량이 증가합니다. 구성할 수 있습니다. 잔소리 그리고 그 임계값을 통해 서비스 구성 파일.
클러스터 구성원 변경 경고
클러스터 구성원의 변경은 중요한 활동입니다. 그래서, NCache 캐시 관리자 및 응용 프로그램에 구성원 변경에 대해 알리는 여러 메커니즘을 제공합니다.
캐시 로그: 캐시 로그 캐시 관리자를 위한 멤버십 변경 사항을 가장 먼저 확인할 수 있는 곳입니다.
이벤트 뷰어 : 회원가입 및 탈퇴 알림은 이벤트 뷰어에 로그인했습니다. Windows에서.
이메일 알림 : 여러분의 시간과 재능으로 이메일 알림 구성 특정 캐시에 대한 이벤트에 참여하고 나가는 서버의 수입니다. 회원정보가 변경될 때마다 이메일이 생성되어 등록된 이메일 수신자에게 발송됩니다.
애플리케이션 수준 알림: 클라이언트 응용 프로그램은 다음을 수행할 수도 있습니다. 알림 콜백 등록 클러스터 구성원 변경에 대해. 이러한 콜백은 클러스터 구성원이 변경될 때마다 호출됩니다.