그리고 동기화 게이트웨이 3.0 릴리스에서는 노드 레벨을 대체하는 동기화 게이트웨이 구성에 대한 모듈식 클러스터 인식 접근 방식을 도입합니다. JSON 구성 파일 기반 접근 방식에서 이전 버전으로 변경되었습니다. 이 게시물에서는 동기화 게이트웨이 구성에 대한 새로운 접근 방식을 자세히 살펴보고 기능 개선의 동기에 대한 배경 지식을 제공합니다. 자세한 내용은 동기화 게이트웨이 문서.
구성 워크플로
이 그림과 같이 동기화 게이트웨이 노드를 설정하고 구성하는 논리적 단계에 대한 설명부터 시작하겠습니다:
부트스트랩: 첫 번째 단계는 동기화 게이트웨이를 부트스트랩하여 적절한 인증 자격 증명을 사용하여 Couchbase Server 클러스터에 연결하는 것입니다.
데이터베이스 구성: 동기화 게이트웨이가 실행되고 나면 다음 단계는 동기화 게이트웨이 데이터베이스를 설정하는 것입니다. 여기서 데이터베이스 이름, 백업용 Couchbase Server 버킷을 제공하고 캐시 관리 정책 등을 구성합니다.
액세스 제어: 데이터베이스가 구성되면 문서에 대한 읽기 및 쓰기 액세스를 제어하는 액세스 제어 정책은 다음을 통해 정의됩니다. 동기화 기능.
사용자 관리: 마지막으로, 동기화 게이트웨이 사용자는 적절한 인증 체계를 통해 동기화 게이트웨이에 생성/등록됩니다. 이들은 데이터를 동기화하거나 동기화 게이트웨이 공용 REST 엔드포인트를 통해 데이터에 액세스하는 클라이언트입니다.
3.0부터 동기화 게이트웨이는 JSON 형식의 구성 파일을 통해 부트스트랩됩니다. 그 후 나머지 구성은 RESTful 인터페이스를 통해 처리됩니다.
정적 파일 기반 구성(레거시)
3.0에서 동기화 게이트웨이를 구성하는 방법에 대해 자세히 알아보기 전에 3.0 이전의 방법을 살펴보기로 하겠습니다. 이 구성 모델은 3.0에서도 계속 지원되며 다음을 통해 활성화할 수 있습니다. 구성 옵션 를 사용하여 영구 구성 기반 접근 방식을 비활성화합니다.
레거시 모델에서는 모든 노드가 독립적으로 구성됩니다. JSON 구성 파일 동기화 게이트웨이 노드로 범위가 지정된 구성 파일입니다. 구성 파일에는 부트스트랩 설정, 데이터베이스 수준 구성, 액세스 제어 정책 등이 포함됩니다. 유일한 예외는 사용자 및 동기화 게이트웨이 간 복제이며, 이 또한 다음을 통해 관리할 수 있습니다. 사용자 그리고 복제 REST 엔드포인트를 각각 사용합니다.
데이터베이스 구성을 업데이트해야 할 때마다 모든 동기화 게이트웨이 노드에서 구성 파일을 업데이트해야 합니다. 파일을 업데이트한 후 업데이트된 구성을 적용하려면 동기화 게이트웨이 노드를 다시 시작해야 합니다.
동기화 게이트웨이의 중앙 집중식 영구 구성
중앙 집중식 영구 구성을 살펴보겠습니다. 구성 워크플로 모델에 대해 설명합니다:
부트스트랩
중앙 집중식 영구 구성 모델에서 모든 동기화 게이트웨이 노드는 동기화 게이트웨이가 Couchbase Server 클러스터에 안전하게 연결할 수 있도록 하는 최소한의 정보를 포함하는 정적 JSON 형식의 부트스트랩 구성 파일로 구성됩니다.
구성 파일을 변경하면 동기화 게이트웨이를 다시 시작해야 적용될 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "부트스트랩": { "group_id": "group1", "서버": "couchbases://cb-server", "username": "관리자", "비밀번호": "비밀번호" }, "logging": { "콘솔": { "log_level": "추적", "log_keys": ["*"] } } } |
데이터베이스 구성
동기화 게이트웨이 데이터베이스를 생성하고 관리할 수 있습니다. 데이터베이스 관리 관리자 엔드포인트. REST API를 통해 이루어진 구성은 해당 Couchbase Server 버킷에 유지되며 클러스터의 다른 동기화 게이트웨이 노드에 자동으로 전파됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
curl --위치 --요청 PUT 'localhost:4985/travel-sample/' \ --헤더 '콘텐츠 유형: 애플리케이션/json' \ --헤더 'Authorization: 기본 c2d3X2NsdXN0ZXI6cGFzc3dvcmQ=' \ --데이터-raw '{ "버킷": "travel-sample", "name": "여행 샘플", "guest": { "disabled": true }, "import_docs": true, "NUM_INDEX_REPLICAS": 0, "enable_shared_버킷_액세스": true }' |
액세스 제어
마찬가지로, 자바스크립트 동기화 읽기/쓰기 액세스 제어 정책을 정의하는 함수는 REST 엔드포인트를 통해 구성할 수 있습니다. 이 기능은 데이터베이스 구성 엔드포인트 또는 동기화 엔드포인트.
1 2 3 4 5 |
curl --위치 --요청 PUT \ 'localhost:4985/travel-sample/_config/sync' \ --헤더 '콘텐츠 유형: 애플리케이션/자바스크립트' \ --헤더 'Authorization: 기본 c2d3X2FkbWluOnBhc3N3b3Jk'\ --데이터-raw 'function(doc, oldDoc) {if (doc.type){ channel("channel:"+ doc.type);}}' |
사용자 관리
사용자는 다음을 통해 구성됩니다. 사용자 생성 엔드포인트.
1 2 3 4 5 6 7 8 9 10 |
curl --위치 --요청 POST 'localhost:4985/travel-sample/_user/' \ --헤더 '콘텐츠 유형: 애플리케이션/json' \ --헤더 'Authorization: 기본 c2d3X2FkbWluOnBhc3N3b3Jk' \ --데이터-raw '{ "name": "데모", "비밀번호": "비밀번호", "admin_channels": ["*"], "이메일": "demo@example.com", "disabled": false }' |
REST API를 통해 이루어진 모든 구성 변경 사항은 해당 Couchbase Server 버킷에 유지되며 동기화 게이트웨이가 다시 시작되어도 유지됩니다.
데이터베이스 구성 범위 지정
데이터베이스 구성은 하나의 동기화 게이트웨이 노드에 적용되며 클러스터의 모든 노드에 자동으로 전파됩니다.
이제 모든 동기화 게이트웨이 노드가 동일한 데이터베이스 구성을 공유하지 않으려는 경우에는 어떻게 해야 할까요? 다음과 같은 개념을 소개합니다. 데이터베이스 구성 그룹. 높은 수준에서 데이터베이스 구성 그룹은 데이터베이스 구성이 적용될 동기화 게이트웨이 노드의 하위 집합을 지정합니다. 기본적으로 모든 노드는 기본 구성 그룹에 속하며 사용자는 구성 그룹을 정의하여 데이터베이스 구성의 범위를 좁힐 수 있습니다.
예를 들어, 5개의 노드 동기화 게이트웨이 클러스터 중 3개의 노드는 Couchbase Lite 클라이언트 복제를 위해 구성되고 나머지 2개의 노드는 다음을 위해 구성되는 경우를 가정해 보겠습니다. 동기화 게이트웨이 간 복제. 이 경우 세 노드는 기본 그룹에 속하도록 구성하고 나머지 두 노드는 다음과 같은 구성 그룹에 속하도록 구성할 수 있습니다. ISGR.
구성 그룹에 대한 자세한 내용은 문서 페이지.
요약
다음은 구성 모델의 주요 특징입니다:
안전한 원격 관리: 클라우드 또는 엣지 데이터 센터에 배포된 Sync Gateway 클러스터를 안전하게 관리합니다.
모듈식: 데이터베이스 구성의 다양한 측면을 모듈식으로 동적으로 구성하고 관리할 수 있습니다.
클러스터 인식: 하나의 동기화 게이트웨이 노드에 대한 데이터베이스 구성 변경 사항은 클러스터의 모든 또는 관련 동기화 게이트웨이 노드 하위 집합에 자동으로 전파됩니다.
지속성: REST 엔드포인트를 통해 이루어진 모든 데이터베이스 변경 사항은 유지되며 재시작 후에도 살아남습니다.
다음 단계
다음 내용을 확인하세요. 비디오 세션 에서 구성 접근 방식에 대해 설명하고 데모를 보여줍니다.
다운로드 동기화 게이트웨이를 무료로 사용해 보세요. 동기화 게이트웨이 문서 페이지에서 자세한 정보를 확인할 수 있습니다.
질문이나 피드백이 있으시면 아래에 댓글을 남기거나 다음을 통해 언제든지 저에게 연락해 주세요. 트위터 또는 이메일 나.
감사
다음 분들께 감사드립니다. 벤 브룩스동기화 게이트웨이 팀의 엔지니어에게 이 블로그 게시물에 대한 의견을 보내주셨습니다.