Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Redis Sentinel은 신뢰성 측면에서 Redis 클러스터링과 어떻게 비교됩니까?


Redis Sentinel은 신뢰성 측면에서 Redis 클러스터링과 어떻게 비교됩니까?


Redis Sentinel과 Redis 클러스터는 Redis가 신뢰성과 가용성을 향상시키기 위해 제공하는 두 가지 다른 메커니즘이지만 아키텍처, 사용 사례 및 신뢰성 기능에서 크게 다릅니다.

Redis Sentinel은 주로 복제를 사용하지만 데이터를 보충하지 않는 Redis 설정을 위해 설계된 고 가용성 (HA) 솔루션입니다. Sentinel은 마스터 및 복제 Redis 인스턴스를 모니터링하여 클라이언트에게 자동 장애 조치 및 구성 업데이트를 제공합니다. 그것은 실패를 안정적으로 감지하기 위해 협력하는 여러 센티넬 인스턴스가있는 분산 시스템으로 작동합니다. 신뢰성의 핵심 강점은 마스터 실패를 감지하고 장애 조치를 시작하기 위해 센티넬의 단체 협약 (Quorum)에서 비롯됩니다. 이는 오 탐지를 줄이고 장애 조치 조치가 대다수에 의해 승인되어 시스템 일관성과 가용성을 보존합니다. Sentinel은 가장 업데이트 된 복제본을 마스터로 홍보하고, 다른 복제본을 재구성하고, 고객에게 새로운 마스터 주소를 알림으로써 장애 조치를 처리합니다. Sentinel의 아키텍처 설계는 독립 기계 나 영역에 여러 인스턴스를 요구함으로써 장애 조치 시스템이 단일 실패 지점이되는 것을 피합니다. 또한 지속적인 모니터링을 수행하고 Redis 인스턴스 상태에 대한 알림을 제공하여 운영 인식과 문제에 대한 응답 성을 향상시킵니다. Sentinel의 고 가용성 기능은 장애 조치 및 모니터링이 필요하지만 데이터 파티셔닝 또는 대규모 수평 스케일링이 필요하지 않은 더 작은 Redis 배포에 적합합니다.

반면 Redis Cluster는 데이터 샤드와 고 가용성을 결합한보다 복잡하고 통합 된 솔루션입니다. 클러스터는 여러 개의 Redis 노드 (마스터)에 걸쳐 데이터를 자동으로 파티션하며, 각각의 복제본이 있습니다. 클러스터링 아키텍처는 단일 관리 지점없이 분산되어 노드간에로드를 분배하여 수평으로 확장하고 더 큰 데이터 세트를 처리 할 수 ​​있습니다. Redis 클러스터에는 실패한 노드에 대한 내장 복제 및 자동 장애 조치가 포함되어 있으며 네트워크 파티션 또는 노드 고장 중에 지속적인 작동을 지원합니다. Sentinel과 달리 Redis Cluster는 본질적으로 데이터 배포 (Sharding)를 관리하여 워크로드를 최적화하고 마스터의 리소스 활용을 균형을 유지합니다. 그러나 Redis 클러스터에는 단일 계층 복제와 같은 일부 복제 제한이 있습니다 (각 마스터는 노예로만 복제합니다). 두 시스템 모두에서 비동기 복제에도 불구하고 클러스터는 샤딩 및 균형화로드 덕분에 더 높은 처리량과 스케일의 낮은 대기 시간을 위해 설계되었습니다.

신뢰성과 관련하여 Sentinel의 장애 조치 메커니즘은 리더 인 Sentinel의 판단 및 선거에 의존하여 장애 조치 작업을 수행하여 신중한 조정을 보장하고 분할 뇌 시나리오의 가능성을 줄입니다. Sentinel 설정에는 일반적으로 일부 Sentinel 노드가 실패하더라도 계속 작동 할 수있는 결함 내성 쿼럼 시스템을 유지하기 위해 적어도 3 개의 Sentinel 인스턴스가 포함됩니다. 그러나 Sentinel은 데이터 샤딩을 제공하지 않으며, 이는 하나의 마스터 핸들 만 쓰기 때문에 복제본의 활용률을 초래할 수 있습니다. 이는 데이터 크기 및 워크로드로 확장 할 수있는 능력을 제한합니다. 즉, 데이터 가용성 및 액세스 속도 측면에서 신뢰성이 더 큰 배포에서 저하 될 수 있습니다.

스케일링 할 때 Redis Cluster의 신뢰성이 빛납니다. 여러 마스터에 데이터를 배포하고 복제하여 결함 공차를 향상시킵니다. 대다수의 마스터 정족수가 유지되면 일부 노드가 실패하거나 도달 할 수 없을 때 클러스터는 계속 작동 할 수 있습니다. 분산 합의는 개별 마스터 노드에 대한 자동 장애 조치를 허용하고 부분 네트워크 파티션 중에도 클러스터를 작동시킵니다. 이로 인해 Redis 클러스터는 가용성과 수평 확장 성이 필요한 대형 고음 환경에 신뢰할 수 있습니다. 그러나 클러스터의 실패에서 실패로부터 설정, 관리 및 복구하는 것은 더 복잡 할 수 있으며, 쿼럼이 손실되거나 장애 조치 절차를 사용하는 경우 부적절한 구성 또는 네트워크 문제는 스플릿 브레인 또는 데이터 불일치로 이어질 수 있습니다.

요약하면, Redis Sentinel은 샤딩없이 마스터 반응 아키텍처에서 조정 된 모니터링 및 장애 조치를 통해 고 가용성에 중점을 둔 강력한 신뢰성을 제공합니다. 고 가용성이 중요하지만 단일 마스터가 데이터 볼륨과 액세스 부하를 관리하는 더 작은 배포 또는 시나리오에 적합합니다. 반면에 Redis Cluster는 데이터를 샤드하고 여러 노드에 걸쳐 복제하여 수평 확장 성과 결합 된 신뢰성을 제공하여 더 크고 더 까다로운 환경에서 노드 고장 및 네트워크 파티션에도 불구하고 진행중인 작동을 보장합니다. 이들 사이의 선택은 데이터 크기, 워크로드 및 시스템이 견딜 수있는 복잡성에 대한 특정 신뢰성 요구에 달려 있습니다.

이 개요에는 모니터링, 장애 조치 프로세스, 쿼럼 메커니즘, 복제 아키텍처, 확장 성 영향 및 Redis Sentinel과 Redis 클러스터 간의 신뢰성을위한 운영 트레이드 오프에 대한 자세한 고려 사항이 포함됩니다.