에서 이전 블로그 사용 방법을 설명한 게시물 Docker 컨테이너를 실행하여 테스트합니다. 두 게시물 모두 클러스터와 데이터가 이미 구성된 상태에서 자체 Couchbase Docker 이미지를 빌드해야 한다는 요구 사항이 있었습니다. 이 게시물에서는 테스트 설정 단계에서 공식 Docker 이미지를 사용하여 원하는 대로 클러스터를 설정하는 방법을 알려드리겠습니다.

사용자 정의 카우치베이스 테스트 컨테이너

테스트 컨테이너는 이미 몇 가지 특정 유형의 컨테이너를 지원하는데, 특히 관계형 세계에서 볼 수 있듯이 문서. 기본 데이터베이스를 직접 사용할 수 있는 JDBC 연결과 같은 몇 가지 고급 기능을 제공합니다. 같은 맥락에서 테스트 중에 클러스터와 버킷을 구성할 수 있는 사용자 정의 CouchbaseContainer를 만들 수도 있습니다.

이 함수는 도커 이미지를 시작하고 구성된 CouchbaseCluster 인스턴스를 반환합니다. 먼저 기본 도커 이미지 식별자를 정의하고 Liveness 포트를 포트 8091로 정의합니다. 이 포트는 '/ui/index.html#/' 경로에 대한 기본 HTTP 대기 전략에 의해 테스트될 포트입니다. 이 페이지에 도달하면 클러스터 설정을 시작할 수 있습니다.

두 번째 단계는 구성 메서드를 재정의하여 필요한 모든 포트를 노출하고 HTTP 대기 전략을 설정하는 것입니다,

이 시점에서 일반 컨테이너를 테스트할 수 있습니다. Couchbase를 구성해야 하는 상태에서 이미지를 실행할 수 있습니다. 마법사의 모든 단계를 거쳐야 합니다. 이러한 단계는 CLI 도구 또는 REST API를 통해 자동화할 수 있습니다. 여기서는 API를 사용하여 클러스터를 설정하겠습니다.

세 가지 필수 호출을 수행해야 합니다. 하나는 램 할당량을 설정하는 것이고, 하나는 관리자 사용자의 사용자 이름과 비밀번호를 설정하는 것이고, 다른 하나는 클러스터에서 사용 가능한 서비스(키/값, 인덱스, 쿼리 및 fts)를 설정하는 것입니다.

curl을 사용하면 이러한 호출은 다음과 같이 표시됩니다:

Java에서 POST를 수행하는 방법은 여러 가지가 있으며, 다음은 그 예입니다:

이 모든 통화는 initCluster 메서드를 호출합니다. 이러한 호출의 내용은 컨테이너에 제공된 구성에 따라 달라집니다. 몇 가지 메서드를 추가하여 활성화할 서비스, 사용자 이름과 비밀번호, 램 할당량 또는 설치할 샘플 버킷을 정의할 수 있습니다.

이 메서드를 구현한 후, CouchbaseEnvironment와 CouchbaseCluster를 노출해 보겠습니다. 환경 가져오는 함수는 initCluster 를 초기화하지 않은 경우 이 메서드를 사용하려면 맞춤형 대기 전략 가 이전 글에서 설명한 대로입니다. 기본적으로 첫 번째 노드가 정상 상태를 나타낼 때까지 '/pools/default'에서 폴링합니다.

전체 클래스의 코드는 다음과 같습니다:

사용법

CouchbaseContainer를 사용하려면 다음과 같이 하면 됩니다:

모든 데이터 샘플을 가져온 상태에서 K/V 서비스만 실행하려는 경우:

보시다시피 이것은 매우 간단하며 Docker만 설치되어 있으면 누구나 Couchbase에 대해 테스트를 실행할 수 있습니다.

 결론

이 기능이 마음에 드시고 테스트 중에 Couchbase 클러스터를 설정하기 위한 추가 구성 및 바로 가기를 원하시면 아래 댓글로 알려주세요.

작성자

게시자 로랑 도귄

Laurent는 파리에 사는 괴짜 금속공학도입니다. 주로 Java로 코드를 작성하고 AsciiDoc으로 구조화된 텍스트를 작성하며 데이터, 리액티브 프로그래밍 및 기타 유행어에 대해 자주 이야기합니다. 또한 Clever Cloud와 Nuxeo의 개발자 옹호자로 활동하며 해당 커뮤니티가 더 크고 강력하게 성장할 수 있도록 자신의 시간과 전문성을 바쳤습니다. 현재 Couchbase에서 개발자 관계를 운영하고 있습니다.

댓글 남기기