카우치베이스 모바일

카우치베이스 모바일에 익숙해지기: 명령줄을 통한 동기화 게이트웨이

소개

이번 글은 '카우치베이스 모바일에 익숙해지기' 시리즈(#5 포스트)를 이어갑니다. 이번에는 동기화 게이트웨이 명령줄에서 실행할 수 있습니다. 이는 이해와 테스트/디버깅 모두에 매우 유용할 수 있습니다. (시리즈의 다른 게시물 링크는 마지막에 제공됩니다.)

Couchbase Mobile Stack

배경

전체에 익숙해지려면 카우치베이스 모바일 스택을 사용하면 하나의 컴퓨터에서 모든 것을 설치하고 실행할 수 있습니다. 이 시리즈 게시물에서는 각 구성 요소를 시작하는 단계를 안내해 드리겠습니다. 그 과정에서 약간의 추가 탐색을 하는 방법도 보여드리겠습니다.

최소한의 구성만 하겠습니다. 이 글은 프로덕션 환경에 필요한 사항을 설명하기 위한 것이 아닙니다. NoSQL의 몇 가지 기본 사항에 익숙하고, Couchbase에 대해 어느 정도 이해하고 있으며, Java, Android 또는 iOS 등의 앱 빌드 방법을 알고 있다고 가정합니다. NoSQL 데이터베이스 또는 Couchbase에 대해 자세히 알아보려면 다음에서 많은 리소스를 찾을 수 있습니다. 카우치베이스 사이트.

카우치베이스는 오픈소스입니다. 여기서 사용하는 모든 기능은 무료로 사용해 볼 수 있습니다. 도움이 필요하면 게시물 끝부분에서 더 많은 리소스를 참조하세요.

동기화 게이트웨이

동기화 게이트웨이는 웹을 통해 데이터에 액세스하고 동기화하기 위한 동기화, REST, 스트림, 배치 및 이벤트 API를 갖춘 안전한 웹 게이트웨이 애플리케이션입니다. 동기화 게이트웨이는 무엇보다도 Couchbase Server와 Couchbase Lite 간의 안전한 데이터 복제를 가능하게 합니다.

동기화 게이트웨이는 종속성이 거의 없으며, 대부분의 Linux 배포판(라즈베리 파이 포함), Windows, OSX/macOS에서 실행할 수 있습니다. 구체적인 설치 단계는 플랫폼에 따라 다릅니다. 자세한 내용은 다운로드 사이트에서 사용 가능한 모든 패키지를 확인하세요. 지원되는 배포판 이외의 Linux 배포판에 설치하려면 다음을 참조하세요. 이 게시물.

구성 및 실행

동기화 게이트웨이를 설치했으면 명령줄 셸을 엽니다.

다음으로 두 가지 구성이 나열되어 있습니다. 이 구성은 예제 폴더로 이동하거나 여기에 있는 텍스트를 복사하여 붙여넣으세요.

다음과 같은 경우 먼저 사용할 수 있습니다. 카우치베이스 서버 를 실행해야 합니다. 다음에서 찾을 수 있는 구성은 다음과 같습니다. 예제/기본-카우치베이스-버킷.json.

또는 동기화 게이트웨이 독립형만 사용하려면(일반적으로 테스트용으로만 사용) 다음 구성을 사용하세요( 예제/기본-왈루스-버킷.json):

문서 만들기

명령줄에서 동기화 게이트웨이를 실행하고 구성 파일의 경로를 입력합니다.

이 시점에서 특수 GUEST 사용자가 활성화됩니다. 이제 문서를 만들 수 있습니다.

응답은 쓰기가 성공했음을 보여줍니다. 동기화 게이트웨이 로그 출력에서도 확인할 수 있으며, 백업 버킷의 카우치베이스 서버 웹 콘솔.

명령줄에 표시되는 응답은 다음과 같습니다.

문서 업데이트하기

다음으로 문서에서 변경을 시도해 보겠습니다.

출력에 실패한 것으로 표시됩니다.

왜 그럴까요? 이 블로그 시리즈의 다른 부분에서 기억하시겠지만, 카우치베이스 모바일은 멀티버젼 동시성 제어라는 것을 사용하여 수정본을 추적합니다. 즉, 문서를 변경할 때 "상위" 문서가 무엇인지 표시해야 합니다.

이번에는 상위 수정본을 지정하여 다시 시도해 보겠습니다.

작동합니다. 응답은 다음과 같습니다.

변경 사항 피드 모니터링

변경사항 피드는 데이터베이스를 추적할 수 있는 좋은 방법을 제공합니다. 이를 사용하여 이벤트 기반 서버 측 로직을 작성하거나 자동화된 충돌 해결 시스템을 구현할 수 있습니다.

피드가 계속 열려 있는 버전을 보여드리겠습니다. 다른 명령줄 창을 열어 출력을 볼 수 있습니다.

여기서는 피드 유형을 연속으로 설정했습니다. 네트워크 경로의 다양한 요소로 인해 유휴 상태로 표시되는 연결이 닫힐 수 있습니다. 동기화 게이트웨이는 이를 방지하기 위해 하트비트를 보낼 수 있습니다. 타임아웃은 26000밀리초로 설정했습니다.

마지막 매개변수입니다, 이후는 전체 변경 시퀀스에서 동기화 게이트웨이가 시작할 위치를 알려줍니다. 일반적으로 이 값은 불투명한 값으로 취급해야 합니다. 일반적으로 앱은 이 매개변수를 지정하지 않고 시작한 다음(모든 변경 사항을 가져오기), 전송된 값을 추적하여 향후 요청에 사용합니다.

일련의 변경 사항은 다음과 같습니다.

사용자 추가하기

이제 새 사용자를 추가해 보겠습니다, jdoe. 이 기능은 관리자 기능이므로 요청은 관리자 포트를 통해 이루어져야 합니다. (나열된 구성 중 하나를 사용하는 경우 포트 4985).

익명(GUEST) 액세스도 비활성화합니다.

사용자 이름과 비밀번호를 제공하지 않으면 더 이상 공용 포트(4984)에서 동기화 게이트웨이에 액세스할 수 없습니다.

채널

특수 필드가 있는 문서를 추가해 보겠습니다, 채널.

반환된 것을 확인해야 합니다.

동기화 게이트웨이는 문서가 업데이트될 때마다 동기화 함수라는 특수 함수를 통해 모든 문서를 전달합니다. 동기화 함수를 지정하지 않았으므로 기본값이 자동으로 사용됩니다.

기본 함수는 다음을 찾습니다. 채널 를 검색하세요. 문서가 발견되면 해당 채널에 문서가 할당됩니다.

사용자는 해당 채널에 할당된 문서를 받으려면 채널에 대한 액세스 권한이 있어야 합니다. 채널에 대해 자세히 알아보세요. 여기. 곧 그 영향력을 확인할 수 있을 것입니다.

인증하지 않을 때 어떤 일이 발생하는지 확인하려면 다음 명령을 사용해 보세요. 요청이 거부됩니다.

예상되는 응답과 함께.

올바른 사용자 아이디와 비밀번호를 입력하여 다시 시도해 보면 어떨까요?

때때로 사람들을 놀라게 하기도 합니다. 또다시 거절당하지만 다른 이유로 거절당합니다.

무슨 일이 있었나요? 문서를 작성할 때 채널에 할당했던 것을 기억하십니까? abc. 사용자 jdoe 문서에 대한 액세스 권한을 부여하지 않았습니다. abc 채널. 그게 없으면, jdoe 는 문서를 다시 읽을 수 없습니다.

채널 변경 jdoe 에 액세스 할 수 있습니다.

를 클릭하고 사용자가 이제 문서에 액세스할 수 있는지 확인합니다.

성공!

마무리

동기화 게이트웨이에 대한 인사이트를 얻으셨기를 바랍니다. 동기화 게이트웨이에 대한 자세한 내용은 REST API 더 자세히 알아보세요. 동기화 게이트웨이 기본 제공 웹 관리자 유틸리티(https://localhost:4985/_admin/)와 Couchbase Server 웹 콘솔을 살펴보면 더 흥미로운 정보를 찾을 수 있습니다.

동기화 게이트웨이 독립형 사용의 흥미로운 예는 CouchBase Connect 2016의 강연을 참조하세요: https://www.youtube.com/watch?v=6Ra4NeY7TNA

[buttongroup][button style="btn-link btn-lg" icon="fa fa-arrow-left" align="left" iconcolor="#dd3333″ type="link" target="false" title="이전: 동기화 게이트웨이 설치하기" link="https://www.couchbase.com/blog/편리한 카우치베이스 모바일 동기화 게이트웨이 설치하기/" linkrel=""][button style="btn-link btn-lg" icon="fa fa-arrow-right" align="왼쪽" iconcolor="#dd3333″ type="link" target="false" title="다음: 미정" link="" linkrel=""][/buttongroup]

포스트 스크립트

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

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

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

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

작성자

게시자 호드 그릴리

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

댓글 하나

  1. [...]를 사용해 볼 수 있습니다. 명령줄 도구 및 동기화 게이트웨이 관리자 인터페이스를 사용할 수도 있습니다. 자세한 내용은 [...]에서 확인하세요.

  2. [...] 이전: 명령줄을 통한 카우치베이스 서버 다음: 명령줄을 통한 동기화 게이트웨이 [...]

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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