개발자와 소프트웨어 설계자 사이에 공통적인 악몽 중 하나는 유일한 웹 서버/데이터 소스가 충돌하여 연결된 수천 개의 클라이언트, 애플리케이션 및 소중한 데이터를 잃는 것입니다. 다음과 같은 분산된 로드 밸런싱된 캐싱 레이어의 도움으로 NCache 확장성과 가용성이 높은 애플리케이션 계층을 만들 수 있습니다. 트랜잭션 부하가 증가하면 더 많은 서버를 추가할 수 있습니다. 분산 아키텍처는 단일 실패 지점이 없도록 합니다.
NCache 인메모리입니다 분산 애플리케이션에 최적의 성능을 제공하는 데이터 저장소입니다. 그만큼 NCache 클러스터는 자기 치유 그리고 다이나믹. 여기에는 모든 클러스터 업데이트에 대한 사용자 개입 없이 자동으로 로드 균형을 조정하는 노드가 포함됩니다.
NCache 세부 정보 NCache 기술 문서 분할된 복제본
이 블로그는 방법에 대한 빠른 둘러보기를 제공합니다. NCache 이벤트 확장 성 100% 가동 시간을 유지하면서 성능을 제공합니다. 이해를 돕기 위해 NCache 아키텍처에 대해 자세히 알아보려면 이 비디오를 확인할 수 있습니다.
고가용성 유지 NCache 클러스터
NCache의 분산 및 복제 아키텍처는 100% 가동 시간 노드가 예기치 않게 다운되더라도. NCache의 피어 투 피어 아키텍처와 사용자 개입 없이 클러스터 및 클라이언트의 런타임 검색은 이러한 고가용성을 보장합니다. 더구나, NCache 지능형 장애 조치 지원을 제공하므로 연결된 모든 클라이언트에서 클러스터를 항상 사용할 수 있습니다.
PXNUMXP 아키텍처
NCache 제공 동적 캐시 클러스터링 와 피어 투 피어 아키텍처 단일 실패 지점이 없는 곳. 캐시 클러스터에는 상호 연결된 서버가 있으며 클러스터에 대한 구성원을 관리하는 조정자(최상위 서버 노드)가 있습니다. 조정자가 다운되면 역할은 클러스터에서 다음으로 가장 높은 서버로 넘어갑니다. 클러스터 구성원 관리에서 단일 실패 지점이 없도록 합니다.
클러스터 및 클라이언트 내 런타임 검색
클러스터:
서버가 시작되면 클러스터에 있는 적어도 하나의 다른 서버를 알아야 합니다. 서버에는 여러 캐시 서버 목록이 포함되어 있으며 그 중 누구에게나 연결을 시도합니다. 서버에 연결되면 해당 서버에 클러스터 조정자에 대해 묻고 조정자에게 클러스터의 구성원 목록에 추가하도록 요청합니다.
코디네이터는 런타임에 이 새 서버를 클러스터에 추가하고 연결된 다른 서버에 새 서버가 클러스터에 합류했음을 알립니다. 또한 클러스터의 모든 구성원에 대해 새 서버에 알립니다. 그런 다음 새 서버는 클러스터의 모든 서버와 TCP 연결을 설정합니다.
고객:
클라이언트가 캐시 서버에 연결되면 런타임 시 해당 서버에서 다음 정보를 수신합니다.
- 클러스터 멤버십 정보
- 캐싱 토폴로지 정보
- 데이터 분포도
클라이언트는 이 정보를 사용하여 연결할 캐시 서버와 캐싱 토폴로지를 기반으로 캐시에 액세스하는 방법을 결정하는 데 도움을 줍니다.
클러스터 및 클라이언트 내 런타임 검색
In NCache, 런타임 중 클러스터 및 클라이언트 검색은 다음과 같은 방식으로 발생합니다.
클러스터:
클러스터는 노드 모음이므로 서버가 시작되면 클러스터에 있는 다른 서버 중 하나 이상을 알아야 합니다. 서버에는 여러 캐시 서버 목록이 포함되어 있으며 그 중 누구에게나 연결을 시도합니다. 서버에 연결되면 해당 서버에 클러스터 조정자에 대해 묻고 조정자 노드에 클러스터 구성원 목록에 추가하도록 요청합니다.
코디네이터는 런타임에 이 새 서버를 클러스터에 추가하고 연결된 다른 서버에 새 서버가 클러스터에 가입했음을 알립니다. 또한 클러스터의 모든 구성원에 대한 새 서버를 업데이트합니다. 그런 다음 새 서버는 TCP 연결 클러스터의 모든 서버와 함께.
고객:
클라이언트가 캐시 서버에 연결되면 런타임 시 해당 서버에서 다음 정보를 수신합니다.
- 클러스터 멤버십 정보
- 캐싱 토폴로지 정보
- 데이터 분포도
클라이언트는 이 정보를 사용하여 연결할 캐시 서버와 다음을 기반으로 캐시에 액세스하는 방법을 결정하는 데 도움을 줍니다. 캐싱 토폴로지.
장애 조치 지원
으로 NCache 클러스터는 자가 치유적이며 런타임 시 서버가 추가되거나 제거되는 경우 클러스터 내에서 그리고 클라이언트에 대해 장애 조치 지원을 제공합니다.
- 클러스터 장애 조치 지원: 클러스터는 모든 클러스터 업데이트 시 다른 서버에 대한 연결을 업데이트하여 자동으로 재정렬합니다.
- 클라이언트 장애 조치 지원: 서버 연결이 끊긴 경우 클라이언트는 자동으로 클러스터의 다른 서버에 연결합니다. 마찬가지로 서버가 추가되면 클라이언트가 스스로 업데이트하고 새 서버에 연결할 수 있습니다.
고가용성 기능에 대한 자세한 내용은 블로그를 참조하십시오. 고가용성 보장 NCache.
캐싱 토폴로지 자가 치유 동적 클러스터링 NCache 아키텍처
유지 관리 모드
NCache 에 대한 유지 관리 모드를 지원합니다. 복제본 분할됨 토폴로지. POR 토폴로지 자체가 각 노드의 복제본으로 고가용성을 보장하지만. 단, 캐시에 대한 업그레이드나 패치 업데이트가 필요한 경우에는 각 클러스터 노드를 하나씩 중지해야 합니다. 그러나 캐시 노드를 중지하면 국가 이전 전체 캐시 클러스터 내에서 네트워크 및 CPU와 같은 리소스를 과도하게 사용하여 캐시 가용성에 큰 영향을 미칩니다.
XNUMXD덴탈의 NCache 유지 관리 모드는 유지 관리를 위해 노드를 중지할 수 있는 옵션을 제공하여 이 문제를 해결합니다. 일단 노드는 정지, 특정 시간 초과 기간 동안 상태 전송을 중단하도록 클러스터에 알립니다. 클러스터가 유지 관리를 거치면 이 노드의 복제본이 활성 노드 역할을 하고 클라이언트 데이터 요청을 처리합니다. 노드 자체가 클러스터에 다시 참여하면 복제본 노드에서 데이터를 요청합니다. 기본적으로 유지 관리 모드는 값비싼 상태 전송 프로세스 비용을 클러스터에 저장합니다.
NCache 세부 정보 NCache 기술 문서 유지 관리 모드 NCache 기술 문서
런타임 확장성 확보 NCache 클러스터
이후 NCache 다음과 같은 고급 기능을 제공하면서 데이터를 저장합니다. 게시/구독 메시징 및 쿼리 실행, 모든 트랜잭션이 하나의 서버에만 있는 경우 메모리 또는 계산 제한이 발생할 것으로 예상할 수 있습니다. 이는 이유 NCache 증가하는 요청/초를 처리하고 더 많은 데이터를 저장하기 위해 원활한 선형 확장을 제공합니다.
NCache 웹 관리자 버튼을 클릭하는 것처럼 간단하게 환경을 확장할 수 있으며, 짜잔, 클라이언트를 중지하지 않고도 추가 노드가 있는 동적 클러스터가 있습니다. 다음 GIF는 클러스터를 동적으로 확장하는 것이 얼마나 간단한지 보여줍니다. NCache:
병렬 작업
NCache 있다 동적 클러스터 클라이언트가 사용자 개입 없이 클러스터 내에서 효과적으로 처리되기 때문에 클라이언트가 단 하나의 홉에서 필요한 데이터를 수신할 수 있습니다. 또한 클라이언트 작업은 모든 노드에서 병렬로 전송 및 실행됩니다. 각 노드의 결과는 단일 결과로 컴파일되어 작업을 확장할 수 있습니다. 또한 병렬 처리로 인해 트랜잭션의 성능이 향상됩니다.
파이프 라이닝
와 파이프 라이닝, NCache 서버에 대한 하나의 TCP 호출로 전송된 여러 클라이언트 작업을 결합하여 네트워크 오버헤드를 줄입니다. 마찬가지로 클라이언트는 한 번의 호출로 단일 청크의 작업 결과를 수신합니다. 운영을 확장하는 데 도움이 됩니다.
객체 풀링
개체 풀링을 사용하면 NCache 서버는 개체를 풀링하고 재사용하여 Garbage Collector를 계속해서 호출하는 것을 방지합니다. 가비지 수집은 성능 집약적인 작업이므로 GC를 호출할 필요성을 줄이면 환경의 성능과 확장성이 향상됩니다.
클라이언트 캐시
NCache 이벤트 클라이언트 캐시, 응용 프로그램이 있는 위치에 있는 캐시 상단의 캐시입니다. 클라이언트 캐시는 애플리케이션과 클러스터 캐시 사이에 있기 때문에 자동으로 동기화되고 특히 읽기 작업의 경우 성능이 향상됩니다. 클라이언트 캐시를 사용하면 네트워크 오버헤드가 줄어듭니다.
자세한 내용은 다음 블로그에서 확인할 수 있습니다. 확장성 아키텍처 NCache – 통찰력
NCache 세부 정보 클라이언트 측 작업 파이프라이닝 NCache
결론
NCache, .NET 네이티브 분산 캐싱 솔루션은 애플리케이션 스택에 완벽하게 맞습니다. 개체 풀링, 병렬 작업 및 응용 프로그램 옆에 있는 클라이언트 캐시로 인해 성능이 크게 향상됩니다. 확장성 외에도 항상 100% 가동 시간을 유지하여 다음을 보장합니다. 고가용성 데이터와 클라이언트의.