Couchbase Mobile v1.3의 새로운 기능: 동기화 게이트웨이의 인스턴스 간 복제

DNA undergoing replication.

복제 중인 DNA.

그래픽 제공 Madprime 라이선스에 따른 허가 CC BY-SA 2.0

동기화 게이트웨이

동기화 게이트웨이 사이의 "접착제"를 형성합니다. 카우치베이스 라이트 그리고 카우치베이스 서버 에서 카우치베이스 모바일 스택. 스택은 웹을 통해 동기화 및 데이터 액세스를 지원하는 보안 웹 게이트웨이입니다.

이는 동기화 게이트웨이를 제대로 설명하지 못하는 한 가지 방법입니다. 예를 들어 백엔드 없이 클라이언트를 지능적으로 연결하는 데 사용할 수 있습니다. 예를 들어 이전 게시물에서 OpenID Connect 지원에 대해 이야기했습니다. 동기화 게이트웨이는 전체 인증 흐름을 간소화하는 역할을 합니다. 더 많은 기능이 있지만 이 글에서는 버전 1.3에 추가된 새로운 기능에 초점을 맞추고자 합니다.

동기화에 대해 자세히 알아보기

동기화(동기화의 줄임말)는 두 개 이상의 데이터베이스 인스턴스 간에 데이터를 일관되게 유지하는 것을 말합니다. 동기화는 어려운 문제가 될 수 있습니다. 두 작성자가 서로 상충되는 변경을 시도할 때마다 아키텍처가 이를 처리해야 하기 때문입니다.

일부 데이터베이스는 단순히 문제를 무시하고 단일 작성자만 사용하도록 강제합니다. 다른 데이터베이스는 충돌을 실시간으로 감지하고 거부하는 방식에 의존합니다. 이러한 접근 방식은 서로 다른 데이터베이스 복사본이 항상 통신하여 조율할 수 없는 경우에는 작동하지 않습니다.

좋은 동기화 아키텍처는 장치가 네트워크 연결이 느리거나 일부 시간 동안 연결이 끊어질 수 있는 사용 환경을 해결하는 전체 솔루션의 중요한 구성 요소입니다. 동기화 게이트웨이는 이러한 아키텍처의 핵심 부분을 Couchbase에서 구현합니다.

우리는 전체 스택을 Couchbase Mobile이라고 부릅니다. 모바일 사용은 오프라인 성능이 중요할 수 있는 명백한 사례입니다. 하지만 실제로는 다른 많은 시나리오에서 Sync Gateway를 포함한 Couchbase Mobile을 사용할 수 있습니다. 카우치베이스 라이트와 싱크 게이트웨이는 다양한 플랫폼에서 실행되며, 일반적으로 새로운 플랫폼으로 쉽게 이식할 수 있습니다. 따라서 데스크톱(또는 노트북이라고 해야 할지도 모르겠지만)에서 IoT에 이르기까지 모든 플랫폼에서 Couchbase Mobile을 유용하게 사용할 수 있습니다.

다음은 동기화 게이트웨이 복제에 대해 일반적으로 알아야 할 몇 가지 주요 기능입니다:

  • 복제를 지정하는 JSON 구성
  • 동시에 실행되는 여러 복제 지원
  • 원샷 및 연속 복제 모두 실행 가능
  • 영구적으로 저장하지 않음
  • 무국적 - 부작용 없이 언제든지 중단/재시작 가능
  • 채널을 사용하여 복제 필터링

인스턴스 간 복제

릴리스 1.3에서는 동기화 게이트웨이 인스턴스 간에 복제(동기화)하는 기능인 동기화 게이트웨이에 새로운 기능이 추가되었습니다. 각 복제는 두 엔드포인트 간의 단방향 흐름으로 구성됩니다. 따라서 매우 유연합니다.

예를 들어, 간단한 복제를 통해 동일한 동기화 게이트웨이 인스턴스에 두 개의 데이터베이스를 지정할 수 있습니다. 이것은 그다지 흥미롭지 않을 수 있지만 각 데이터베이스가 자체 동기화 기능을 가질 수 있기 때문에 한 데이터베이스를 다른 데이터베이스의 피더로 사용하여 복잡한 비즈니스 로직이 전달되는 내용을 관리할 수 있습니다.

running-replications

이 다이어그램은 보다 일반적인 사용 사례를 보여줍니다. 여기에는 두 개의 Couchbase Server 클러스터와 두 개의 Sync Gateway 클러스터가 있습니다. 동기화 게이트웨이 클러스터는 양방향 복제를 실행합니다(실제로는 두 개의 단방향 복제). 이는 전 세계적으로 분산된 시스템의 기반이 될 수 있습니다. 표준 네트워크 라우팅 절차는 클라이언트가 가장 가까운 Sync 게이트웨이에 연결되도록 하여 네트워크 성능을 향상시킵니다. 동기화 게이트웨이의 복제에 대한 자세한 내용은 다음 문서를 참조하세요. 여기.

문서 수정 및 충돌

카우치베이스 모바일이 충돌 해결을 처리하는 방식을 이해하는 것이 중요합니다. CBM은 다중 버전 동시성 제어라는 것을 사용합니다. CBM은 문서의 한 버전만 저장하는 것이 아니라 수정본 트리를 저장한다고 생각할 수 있습니다. 문서의 동일한 원본 수정본을 업데이트하는 두 개의 연결이 끊어진 쓰기는 두 개의 새 수정본을 만듭니다. 둘 다 트리에 존재합니다. 카우치베이스는 충돌을 해결할 수 있는 몇 가지 방법을 제공합니다. 문서를 참조하세요. 여기 에서 자세한 내용을 확인하세요.

추가 리소스

Heroku의 공동 창립자인 Adam Wiggins는 다음과 같은 훌륭한 글을 썼습니다. 동기화는 더 나은 UX를 제공합니다..

곧 인스턴스 간 복제의 간단한 예를 설명하는 후속 글을 게시할 예정입니다. 코드는 다음에서 찾을 수 있습니다. github. (이것은 의도적으로 간단한 예시입니다. 프로덕션 품질 코드가 아닙니다.)

포스트 스크립트

더 많은 리소스를 확인하세요. 개발자 포털 트위터에서 팔로우하세요 카우치베이스 개발.

질문에 대한 답변을 게시할 수 있습니다. 포럼. 그리고 다음에도 적극적으로 참여합니다. 스택 오버플로.

다음 주소에서 저를 개인적으로 팔로우할 수 있습니다. 호드그릴리

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 호드 그릴리, 개발자 옹호자, 카우치베이스

호드 그레이리는 실리콘밸리에 거주하는 카우치베이스의 개발자 옹호자입니다. 그는 소프트웨어 엔지니어 및 엔지니어링 관리자로서 20년 이상의 경력을 보유하고 있습니다. 그는 전산 물리학 및 화학, 컴퓨터 및 네트워크 보안, 금융, 모바일 등 다양한 소프트웨어 분야에서 일해 왔습니다. 2016년 카우치베이스에 합류하기 전에는 삼성에서 모바일 개발자 관계를 이끌었습니다. 컬럼비아 대학교에서 화학 물리학 박사 학위를 받았습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.