Couchbase 개발자 커뮤니티에서 자주 묻는 질문은 "대량 작업을 수행하려면 어떻게 해야 하나요?"입니다. 고성능 데이터 플랫폼은 성능 향상을 위해 일괄 처리를 지원할 것이라는 기대가 있습니다. 모든 Couchbase SDK 클라이언트는 일괄 처리 작업을 지원합니다. 일괄 처리를 통해 요청은 네트워크를 통해 파이프라인화됩니다. 네트워크 처리량 증가, 지연 시간 단축, 네트워크 리소스 활용도 향상은 일괄 처리 작업의 핵심입니다. Couchbase 개발자 가이드에는 일괄 처리와 관련된 보다 심층적인 정보와 아키텍처 고려 사항이 포함되어 있습니다. 익숙하지 않으시다면 개발자 가이드는 Couchbase를 사용한 개발의 모든 것을 배울 수 있는 좋은 곳입니다. 이 블로그에 사용된 예제를 포함하여 개발 가이드에 참조된 모든 코드 예제는 모두 하나의 편리한 곳에 있습니다. 깃허브 리포지토리.
Go 대량 작업 연습
Couchbase를 사용하여 간단한 애플리케이션을 빌드하려면 먼저 애플리케이션의 가져오기 패키지에 "gocb"를 포함하세요. 다시 말해, 애플리케이션에서 Couchbase로의 연결은 한 번 인스턴스화되고 클러스터에 대한 경량 영구 연결로 재사용됩니다. 이렇게 하면 애플리케이션을 중단하지 않고도 동적 토폴로지를 변경할 수 있으며 버킷 수준 작업이 효율적으로 실행됩니다.
Couchbase에서 문서에 대한 CRUD 작업을 수행하려면 버킷 API를 사용합니다. golang의 버킷 API에는 대량 작업을 수행하기 위한 인터페이스인 BulkOp라는 유형이 포함되어 있습니다. 먼저 클러스터에 대한 연결을 연 다음 애플리케이션에서 사용하기 위해 정의한 버킷 참조를 사용해야 합니다.
이 애플리케이션의 목표는 Couchbase에 10개의 문서를 삽입하는 것입니다. Couchbase는 문서 데이터베이스이며 기본적으로 JSON을 사용합니다. 대량 작업에 사용할 문서를 만드는 쉬운 방법은 먼저 "Item"이라는 단일 필드가 있는 JSON 유형 구조체를 만드는 것입니다. 작업을 더 간단하게 하기 위해 두 개의 변수가 인스턴스화되어 키의 이름과 각 문서의 값을 지정하는 데 도움이 됩니다.
아래 예제에서는 두 개의 gocb.BulkOp 배열이 생성됩니다. 하나는 대량 삽입을 수행하기 위한 것이고 다른 하나는 대량 가져오기를 수행하기 위한 것입니다.
골랑의 멋진 JSON 마샬링을 통해 InsertOp 유형에 대한 참조를 사용하는 10개의 항목이 대량 삽입될 항목 배열에 추가됩니다.
BulkOp 유형에는 클러스터에서 일괄 작업으로 요청의 파이프라인을 실제로 수행하는 "Do"라는 메서드가 있습니다. Do 메서드는 오류가 있는 경우 오류를 반환하고 그렇지 않으면 nil을 반환합니다.
일괄 가져오기를 사용하여 항목을 검색하는 것도 같은 방식으로 작동합니다. 두 번째 배열 "itemsGet"을 사용하면 GetOp 유형에 대한 참조를 사용하여 항목 그룹이 만들어집니다.
이 짧은 예시는 Couchbase에서 대량 작업을 사용하는 단순함과 go sdk의 강력한 성능을 보여줍니다. 다른 대량 연산도 지원되며, 여기에는 추가, 제거, 교체, get및터치, 업서트, 터치 등이 포함됩니다. 모든 메서드가 나열된 API 문서는 다음에서 확인할 수 있습니다. godocs.