Computer >> 컴퓨터 >  >> 프로그램 작성 >> Redis

데이터 복제 설명:예, 유형 및 사용 사례

데이터 복제란 무엇입니까?

데이터 복제는 모든 데이터 리소스 간에 실시간으로 모든 정보가 동일하게 유지되도록 데이터를 복사하는 방법입니다. 데이터베이스 복제를 정보를 포착하고 계속해서 정보를 틈 사이로 떨어뜨리고 잃어버리게 하는 그물이라고 생각하십시오. 데이터는 거의 정체되어 있지 않습니다. 끊임없이 변화하고 있습니다. 이는 기본 데이터베이스의 데이터가 지구 반대편에 있는 복제본에 미러링되도록 하는 지속적인 프로세스입니다.

요즘은 "즉각적"으로 충분하지 않습니다. 대기 시간을 밀리초 미만 간격으로 줄이는 것이 보편적인 목표입니다. 웹사이트에서 새로 고침 버튼을 누르고 정보가 업데이트되는 것을 보기 위해 영원(초)처럼 느껴지는 시간을 기다리면서 이러한 상황을 모두 본 적이 있습니다. 대기 시간은 사용자의 생산성을 감소시킵니다. 거의 실시간 달성 목표입니다. 제로 타임 랙은 모든 사용 사례에 대한 새로운 이상입니다.

데이터 복제는 어떻게 작동합니까?

데이터 복제는 하나의 호스트에서 다른 호스트로 데이터를 복사하는 것입니다. 예를 들어 두 개의 온프레미스 간에 또는 하나의 온프레미스에서 클라우드로 복사하는 등의 작업입니다. 요점은 데이터에 액세스하는 모든 사용자의 데이터와 실시간 일관성을 달성하는 것입니다. 게임 산업과 마찬가지로 데이터 기반 비즈니스 모델(DDBM)은 실시간 데이터를 통해 얻은 분석에 크게 의존합니다. DDBM에 실시간 접근성이 얼마나 필요한지 더 명확하게 이해하려면 아래 동영상을 시청하세요.

데이터 복제의 이점은 무엇입니까?

신뢰성 향상/재해 복구

비상 상황이 발생하면 기본 인스턴스가 손상될 경우 교체할 수 있는 복제본으로 미션 크리티컬 애플리케이션을 보호하는 것이 중요합니다. 재해 복구 복제 방법은 백업 생성기와 유사하게 작동합니다. 중요한 퓨즈가 끊어지거나 전력망이 어두워진다고 상상해 보세요. 대체 발전기로 급습하여 조명을 계속 작동시킬 수 있는 백업 발전기가 있기 때문에 걱정할 필요가 없습니다.

복제본 인스턴스는 기본 인스턴스의 정확한 복사본이므로 기본 인스턴스에 어떤 일이 발생하더라도 성능이 저하되지 않음을 보장할 수 있습니다. Primary와 Replica 사이의 연결이 끊어지더라도 Primary는 부분적인 재동기화를 수행하여 연결이 끊긴 동안 Replica에 전달되지 않은 명령을 수집하므로 성능은 여전히 ​​보장됩니다. 가능하지 않은 경우 스냅샷을 사용하여 전체 재동기화가 시작됩니다.

앱 성능 향상

여러 인스턴스에 데이터를 분산하여 읽기 성능을 최적화하는 데 도움이 됩니다. 또한 여러 위치에서 데이터에 액세스할 수 있도록 하여 성능을 최적화하여 지연 문제를 최소화합니다. 또한 복제본이 대부분의 읽기를 처리하도록 지정되면 기본 서버에서 쓰기 작업의 대부분을 처리할 수 있는 공간이 열립니다.

더 효율적인 IT 팀

수동으로 데이터를 복제하는 IT 인력 감소

전체 데이터 복제와 부분 복제 이해

전체 데이터베이스 복제 사용 가능한 모든 복제본 인스턴스 내에서 전체 기본 데이터베이스가 복제될 때 발생합니다. 이는 기존 데이터, 신규 데이터 및 업데이트된 데이터를 모든 대상에 미러링하는 전체론적 접근 방식입니다. 이 접근 방식은 매우 포괄적이지만 상당한 양의 처리 능력이 필요하며 복사되는 데이터의 크기가 크기 때문에 네트워크 부하를 방해합니다.

전체 복제와 달리 부분 복제 데이터의 일부만 미러링합니다. 일반적으로 최근에 업데이트된 데이터입니다. 부분 복제는 특정 위치에서 데이터의 중요성에 따라 특정 데이터 비트를 분리합니다. 예를 들어, 런던에 본사가 있는 대규모 금융 회사는 보스턴에 사무실, 쿠알라룸푸르에 사무실 등 전 세계에 많은 위성 사무실을 운영할 수 있습니다.

부분 복제를 통해 런던의 분석가는 자신의 사이트에 영국 관련 데이터만 보유하고 해당 데이터만 필요에 따라 일관되게 복제할 수 있습니다. 미국과 말레이시아에 있는 다른 위성 사무소는 각각 동일한 작업을 수행할 수 있으며 한 시스템에 장애가 발생하지 않으므로 성능이 향상되고 네트워크 트래픽이 최소화됩니다.

데이터 복제의 예

트랜잭션 복제

이 형태의 데이터베이스 복제는 이러한 변경 사항을 기본 데이터베이스에서 수행된 순서대로 미러링하여 복제본 인스턴스에 실시간으로 데이터를 복제하는 기본 데이터베이스의 데이터를 봅니다. 이것은 일관성을 최적화합니다. 복제는 기본에 있는 데이터의 "스냅샷"을 가져와 다른 곳에서 복제해야 하는 항목의 청사진으로 해당 스냅샷을 사용합니다. 트랜잭션 복제를 사용하면 필요에 따라 변경 사항을 추적하고 배포할 수 있습니다. 트랜잭션 복제를 사용하면 필요에 따라 변경 사항을 추적하고 배포할 수 있습니다.

데이터 복제 설명:예, 유형 및 사용 사례 데이터 복제 설명:예, 유형 및 사용 사례

이 프로세스의 증분 특성을 감안할 때 트랜잭션 복제는 백업 데이터베이스 옵션을 찾을 때 최적의 선택이 아닙니다. 트랜잭션 복제는 모든 데이터 위치에서 실시간 일관성이 필요하고, 변경의 전반적인 영향뿐만 아니라 각 사소한 변경도 고려해야 하고, 데이터가 특정 위치에서 정기적으로 변경되는 경우에 유용한 선택입니다.

스냅샷 복제

이름에서 알 수 있듯이 스냅샷 복제는 특정 시점에 나타나는 기본 데이터의 "스냅샷"을 가져와 복제본으로 이동합니다. 사진과 마찬가지로 스냅샷 복제는 데이터가 기본에서 복제본으로 이동할 때와 같이 특정 시점의 데이터 모양을 캡처하지만 나중에 업데이트되는 방식은 고려하지 않습니다. 따라서 스냅샷 복제를 사용하여 백업하지 마십시오.

스토리지 오류가 발생하는 경우 스냅샷 복제에는 업데이트된 정보에 대한 경로가 없습니다. 정보의 일관성을 유지하기 위해 스냅샷으로 시작할 수 있지만 기본에 대한 모든 변경 사항이 모든 복제본에 전달되도록 해야 합니다.

반면 이 방법은 실수로 삭제한 경우 복구하는 데 오히려 유용합니다. Google 문서의 버전 기록과 같다고 생각하십시오. 4시간 전의 프레젠테이션 작업을 원하십니까? Google 문서도구가 시간 간격으로 작업의 스냅샷을 찍는 경우 4시간 전의 해당 버전 또는 "스냅샷"을 다시 클릭하여 정보가 어떻게 생겼는지 확인할 수 있습니다.

복제 병합

이 방법은 일반적으로 데이터의 스냅샷으로 시작하여 해당 데이터를 복제본에 배포하고 전체 시스템 간의 데이터 동기화를 유지 관리합니다. 병합 복제가 다른 점은 각 노드가 독립적으로 데이터를 변경할 수 있지만 모든 업데이트를 통합된 전체로 병합한다는 것입니다.

병합 복제는 또한 각 노드에서 수행된 각 변경 사항을 설명합니다. 이전 Google 문서도구 예시로 돌아가려면 동료와 문서를 공유한 적이 있고 문서에 댓글과 수정사항을 남긴 적이 있다면 누가 언제 무엇을 변경했는지 알 수 있습니다. 매우 유사한 방식으로 복제 기능을 병합합니다.

키 기반 복제

키 기반 증분 데이터 복제라고도 하는 이 방법은 복제 키를 활용하여 마지막 업데이트 이후 변경된 특정 데이터만 식별하고 찾고 변경합니다. 해당 정보를 분리하여 백업 프로세스를 용이하게 하여 필요한 만큼만 작업합니다. 키 기반 복제를 사용하면 새 데이터를 빠르게 새로 고칠 수 있지만 삭제된 데이터를 복제할 수 없다는 단점이 있습니다.

활성-활성 지리적 분포

피어 투 피어 복제라고도 하는 활성-활성 지리적 분포 , 노드를 통한 지속적인 트랜잭션 데이터에 의존하기 때문에 트랜잭션 복제와 비슷하게 작동합니다. 활성-활성을 사용하면 동일한 네트워크의 모든 노드가 해당하는 모든 노드와 데이터베이스를 동기화하여 서로 지속적으로 데이터를 전송합니다. 모든 노드는 쓰기 가능합니다. 즉, 누구나 전 세계 어디에서나 데이터를 변경할 수 있으며 다른 모든 노드에 반영됩니다. 이는 변경 사항이 전 세계 어디에서 발생하더라도 실시간 일관성을 보장합니다.

CRDT(충돌 없는 복제 데이터 유형)는 이 데이터가 복제되는 방식을 정의합니다. 복제본 또는 노드 중 하나에 네트워크 장애가 발생하는 경우 해당 노드가 다시 온라인 상태가 되면 다른 복제본에 필요한 모든 데이터가 복제될 준비가 됩니다. 이것은 전 세계에 위치한 여러 데이터 센터가 필요한 기업을 위한 견고한 솔루션입니다. Active-Active Geo-Distribution 사용 사례의 예는 아래 비디오를 참조하십시오.

동기/비동기 복제

동기 복제를 사용하면 데이터가 기본 및 복제본 모두에 동시에 기록되므로 이름이 지정됩니다. 반면에 비동기식 복제는 쓰기가 이미 기본에서 발생한 후에만 복제본에 데이터를 복사합니다. 비동기식 복제는 가능하지만 실시간으로 발생하지 않는 경향이 있습니다. 비동기식 배치로 발생하는 경향이 있는 예약된 쓰기 작업으로 인해 장애 조치 이벤트가 발생하는 대부분의 경우 데이터가 손실되는 경우가 있습니다. 그러나 실시간 구성 요소가 미션 크리티컬한 요소가 아니기 때문에 비동기식은 장거리 데이터를 복제해야 하는 경우 적절한 솔루션입니다.

일반적인 데이터 복제 구현 과제는 무엇입니까?

여러 인스턴스에서 데이터를 유지 관리하려면 일관된 리소스 집합이 필요합니다. 비용 여러 복제본 인스턴스가 있는 기본 인스턴스를 갖는 것은 많은 인스턴스에서 상당히 높을 수 있습니다. 이러한 작업을 유지하고 시스템 오류가 발생하지 않도록 하려면 전담 팀 이 필요합니다. 전문가의. 그리고 아키텍처에 따라 네트워크 대역폭 대기 시간, 읽기 및 쓰기에 영향을 줄 수 있는 새 프로세스가 배치될 때 과부하가 걸릴 수 있습니다.

Redis는 데이터 복제를 편리하고 비용 효율적이며 구현하기 쉽게 만듭니다. Redis Enterprise 대우를 받을 준비가 되셨습니까?