고가용성을 위한 동적 캐시 클러스터링

NCache 100% 가동 시간을 제공하기 위해 피어 투 피어 아키텍처를 기반으로 하는 자가 치유 동적 캐시 클러스터링이 있습니다. 이것은 마스터/슬레이브 노드가 없고 대신 클러스터의 모든 서버가 피어인 TCP 기반 클러스터입니다. 이를 통해 캐시나 애플리케이션을 중지하지 않고 런타임 시 클러스터에서 캐시 서버를 추가하거나 제거할 수 있습니다.

피어 투 피어 아키텍처(자가 치유)

NCache 클러스터에는 피어 투 피어 아키텍처가 있습니다. 이것은 마스터/슬레이브 노드가 없고 각 서버가 피어임을 의미합니다. 클러스터에서 가장 오래된 노드인 Cluster Coordinator 노드가 있습니다. Cluster Coordinator 노드가 다운되면 다음으로 오래된 노드가 자동으로 Coordinator가 됩니다.

Cluster Coordinator는 노드 추가 또는 제거 시 클러스터 멤버십, 파티션된 캐시 / 파티션 복제본 캐시 토폴로지 및 기타 캐시 구성 정보. 또한 Cluster Coordinator는 클러스터 상태를 관리하고 클러스터의 다른 모든 서버에 부분적으로 연결된 모든 캐시 서버를 강제로 제거합니다.

동적 캐시 클러스터

동적 클러스터링

NCache 있다 동적 클러스터링 아키텍처. 이것은 당신이 할 수 있음을 의미합니다 더하다 또는 캐시 또는 응용 프로그램을 중지하지 않고 클러스터에서 캐시 서버를 제거합니다. 캐시 서버를 추가하거나 제거할 때마다 클러스터 구성원이 런타임에 즉시 업데이트되고 클러스터의 모든 서버와 클러스터에 연결된 모든 클라이언트에 전파됩니다. 이 런타임 업데이트 및 전파는 NCache 이러한 변경 사항이 적용되는 경우에도 항상 가동 및 실행되도록 합니다.

동적 클러스터링을 사용하면 다음을 수행할 수 있습니다.

  • 런타임 시 캐시 서버 추가/제거: 캐시 또는 애플리케이션을 중지하지 않고
  • 클러스터 멤버십: 런타임에 업데이트되고 클러스터의 모든 서버와 클러스터에 연결된 모든 클라이언트에 전파됩니다.

동적 클라이언트 연결

NCache 또한 추가하거나 제거할 수 있습니다. 캐시 클라이언트 캐시 또는 다른 클라이언트를 중지하지 않고 런타임에 클라이언트를 추가할 때 이 클라이언트는 연결할 클러스터의 캐시 서버 중 하나에 대해 알고 있으면 됩니다. 해당 서버에 연결되면 연결할 다른 서버를 결정하는 기반으로 클러스터 구성원 및 캐싱 토폴로지 정보를 수신합니다.

  • 런타임 시 클라이언트 추가/제거: 캐시 또는 애플리케이션을 중지하지 않고
  • 파티션된 캐시/파티션-복제본 캐시: 클라이언트는 모든 캐시 서버의 모든 파티션에 연결합니다(파티션이 복제본과 대화하기 때문에 복제본이 아님). 이를 통해 클라이언트는 읽기 및 쓰기용 데이터가 있는 곳으로 직접 이동할 수 있습니다. 그리고 클러스터에 새 서버가 추가되면 클라이언트는 업데이트된 클러스터 구성원 정보를 수신하고 새로 추가된 이 캐시 서버에도 연결합니다.
  • 복제된 캐시:복제된 캐시, 클라이언트는 클러스터의 하나의 캐시 서버에 연결하지만 모든 캐시 서버에 동일한 수의 클라이언트가 있는지 확인하기 위해 로드 밸런싱 방식으로 연결합니다. 클라이언트는 이 캐시 서버에서 로드 밸런싱 정보를 얻고 이를 기반으로 필요한 경우 적절한 캐시 서버에 다시 연결합니다. 클라이언트는 각 서버에 전체 캐시가 있으므로 모든 읽기 및 쓰기가 바로 그곳에서 가능하기 때문에 클라이언트는 하나의 캐시 서버에만 연결합니다.
  • 미러링된 캐시:미러링된 캐시, 클라이언트는 이 2노드 클러스터의 활성 노드에만 연결합니다. 클라이언트가 수동 노드에 연결하면 수동 노드는 클라이언트에게 능동 노드에 대해 알리고 클라이언트는 자동으로 능동 노드에 다시 연결합니다. 활성 노드가 다운되고 수동 노드가 활성이 되면 모든 클라이언트가 자동으로 새 활성 노드에 연결합니다.
동적 클라이언트 연결

동적 구성

NCache 또한 캐시 및 클라이언트의 동적 구성을 제공합니다. 목적은 캐시나 애플리케이션을 중지하지 않고 캐시가 실행 중일 때 나중에 변경할 수 있도록 하는 것입니다.

  • 런타임 시 모든 서버 및 클라이언트에 전파: 여기에는 모든 구성과 변경 사항, 배포 맵이 포함됩니다.
  • 캐시 구성: 관리 도구를 통해 캐시 구성을 생성하면 이 구성 정보가 당시 알려진 모든 캐시 서버에 복사됩니다. 그리고 런타임에 추가되는 모든 새 서버는 이 전체 캐시 구성을 수신하여 로컬 디스크에 복사합니다.
  • 핫 적용 구성 변경 사항: "를 통해 런타임에 일부 캐시 구성을 변경할 수 있습니다.뜨거운 적용"의 특징 NCache. 그렇게 하면 업데이트된 구성 정보가 런타임 시 모든 캐시 서버에 전파되고 해당 디스크에 저장됩니다. 이 정보의 일부는 또한 그들의 요구와 관련된 모든 클라이언트에게 전송됩니다.
  • 배포 맵(파티션/파티션-복제본 캐시): 이것은 캐시가 시작될 때 생성되고 모든 캐시 서버와 캐시 클라이언트에 복사됩니다. 이 분포 맵에는 어떤 버킷(클러스터형 캐시의 총 1000개 버킷 중)이 어느 파티션에 있는지에 대한 정보가 포함되어 있습니다.

클러스터 내 연결 장애 조치

클러스터의 모든 캐시 서버는 TCP를 통해 서로 연결됩니다. 그리고 모든 캐시 서버는 런타임에 추가된 새 서버를 포함하여 클러스터의 다른 모든 캐시 서버에 연결됩니다. NCache 연결 끊김에도 불구하고 클러스터 내의 모든 연결이 활성 상태로 유지되도록 하는 다양한 방법을 제공합니다. 연결 끊김은 일반적으로 라우터나 방화벽으로 인한 네트워크 결함이나 네트워크 카드 또는 네트워크 드라이버 문제로 인해 발생합니다.

  • 연결 재시도: 두 캐시 서버 간의 연결이 끊어지면 NCache 서버는 이 연결을 설정하기 위해 자동으로 여러 번 재시도합니다. 이러한 재시도는 "시간 초과" 기간이 다 될 때까지 수행됩니다. 대부분의 경우 이렇게 하면 연결이 다시 설정됩니다.
  • 연결 유지 하트비트: NCache 또한 각 캐시 서버가 다른 모든 서버에 하트비트로 일부 작은 데이터 패키지를 계속 보내도록 하는 기능이 있습니다. 이렇게 하면 네트워크 소켓 파손 문제가 있는 경우 캐시 서버가 이를 인식하고 재시도를 통해 문제를 해결할 수 있습니다.
  • 부분적으로 연결된 서버: 재시도에도 불구하고 제한 시간 내에 연결이 복원되지 않고 캐시 서버가 하나 이상의 다른 캐시 서버가 다운된 것으로 가정하는 경우가 있습니다. 그래서 그것들 없이 계속 작동합니다. 그러나 실제로 다른 서버는 다운되지 않고 실제로 클러스터의 다른 서버에서 볼 수 있습니다. 이것을 부분적으로 연결된 서버라고 합니다. 이 경우 클러스터 조정자는 이를 기록하고 클러스터에서 "부분적으로 연결된" 서버를 강제로 제거합니다. 이렇게 하면 클러스터가 다시 정상 상태가 됩니다. 그리고 제거된 서버는 수동 개입을 통해 클러스터에 다시 참여할 수 있습니다.

클라이언트와의 연결 장애 조치

모든 캐시 클라이언트는 캐싱 토폴로지에 따라 TCP를 통해 클러스터에 있는 하나 이상의 캐시 서버에 연결됩니다. Partitioned / Partition-Replica Cache의 경우 각 클라이언트는 모든 캐시 서버에 연결됩니다. 복제된 캐시의 경우 각 클라이언트는 일반적으로 캐시 서버에서 사용하는 로드 밸런싱 알고리즘을 통해 캐시 서버 중 하나에만 연결됩니다. 그리고 Mirrored Cache의 경우 모든 클라이언트는 Active Node에만 연결되며 Active Node가 다운되어 Passive Node가 Active Node가 될 때만 Passive Node에 연결됩니다.

  • 연결 재시도: 클라이언트와 캐시 서버 간의 연결이 끊어지면 NCache 클라이언트는 자동으로 여러 연결 재시도 이 연결을 설정합니다. 이러한 재시도는 "시간 초과" 기간이 소진될 때까지 수행됩니다. 대부분의 경우 클라이언트 응용 프로그램이 알아차리지 못한 채 연결을 다시 설정합니다. 연결을 설정할 수 없으면 클라이언트 응용 프로그램에서 처리할 수 있도록 예외가 throw됩니다.
  • 연결 유지 하트비트: NCache 또한 각 클라이언트가 다음과 같이 작은 데이터 패키지를 계속 보내도록 하는 기능이 있습니다. 심장 박동 연결된 모든 캐시 서버에 이렇게 하면 네트워크 소켓 파손 문제가 있는 경우 클라이언트가 이에 대해 알고 연결 재시도를 통해 문제를 해결할 수 있습니다.
  • 부분적으로 연결된 클라이언트(파티션/파티션-복제본 캐시): 재시도에도 불구하고 시간 초과 기간 내에 연결이 복원되지 않고 캐시 클라이언트가 다운되지 않은 경우에도 하나 이상의 다른 캐시 서버에 연결할 수 없다고 가정하는 경우가 있습니다. 따라서 Partitioned / Partition-Replica Cache의 경우 Distribution Map에서 통신할 수 없는 서버에 데이터가 있다고 알려도 모든 데이터를 읽거나 쓰기 위해 다른 서버와 상호 작용합니다. 이 경우 다른 캐시 서버가 중개 역할을 하여 작업을 성공적으로 수행합니다.
  • 서버 연결 해제(복제/미러 캐시): Replicated Cache의 경우 클라이언트는 하나의 서버에만 연결되며 이 연결이 끊어지면 클라이언트는 다른 캐시 서버 중 하나에 자동으로 연결됩니다. Mirrored Cache의 경우 클라이언트가 Active Node에 연결할 수 없으면 다운된 것으로 간주하고 Passive Node에 연결을 시도합니다.

다음에 무엇을할지?

© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.