카우치베이스 서버

Docker와 Vaadin, 카우치베이스와 만나다 - 1부

라트노팜 차크라바티 는 현재 에릭슨에서 근무하는 소프트웨어 개발자입니다. 그는 오랫동안 IoT, 기계 간 기술, 커넥티드 카, 스마트 시티 분야에 집중해 왔습니다. 그는 새로운 기술을 배우고 이를 실무에 적용하는 것을 좋아합니다. 일하지 않을 때는 3살 난 아들과 함께 시간을 보내는 것을 즐깁니다.

Ratnopam Chakrabarti

소개

Couchbase를 Docker 컨테이너로 실행하는 것은 매우 쉽습니다. 최신 공식 Couchbase 이미지에서 상속하고 요구 사항에 따라 사용자 정의된 동작을 추가하기만 하면 됩니다. 이 글에서는 Spring Boot, Vaadin, 그리고 물론 Couchbase(백엔드로서)를 사용하여 웹 애플리케이션을 실행하는 방법(모두 Docker를 사용)을 보여드리겠습니다.

이 글은 2부로 구성된 시리즈 중 1부로서, Docker 도구 세트를 사용하여 Couchbase 기반의 완전한 기능을 갖춘 웹 애플리케이션을 NoSQL 백엔드로 실행하는 방법에 대해 설명합니다. 이 글에서는 Docker를 사용하여 Couchbase 환경을 설정하고 구성하는 단계를 설명하고, 웹 애플리케이션(이 경우에는 Vaadin을 사용하는 Spring Boot 애플리케이션)을 Docker화하는 방법과 CRUD 작업을 위해 Couchbase 백엔드에 연결하는 방법에 대해서도 언급할 것입니다.

전제 조건

Docker를 설정하고 작동시켜야 합니다. 설치에 대한 자세한 내용은 다음 링크를 참조하세요: https://docs.docker.com/engine/installation/ macOS 또는 Windows 10을 사용하는 경우 기본 Docker 패키지를 사용할 수 있습니다. 저처럼 이전 버전의 Windows(7 또는 8)를 사용 중이라면 Docker achine과 함께 제공되는 Docker Toolbox를 사용할 수 있습니다.

애플리케이션

저희는 서점을 관리하기 위한 간단한 CRUD 애플리케이션입니다. 애플리케이션 사용자는 제목 및/또는 저자 등의 정보를 입력하여 책을 추가할 수 있으며, 책 목록을 보고, 일부 정보를 편집하고, 책을 삭제할 수도 있습니다. 이 앱은 Spring Boot를 기반으로 구축되었습니다. 백엔드는 Couchbase 4.6으로 구동되며, 프론트엔드에는 Spring Boot 프레임워크와 매우 깔끔하게 통합되는 Vaadin 7을 사용했습니다.

이 앱을 구축하는 주요 단계는 다음과 같습니다:

  • Docker를 사용하여 버킷 및 서비스 설정을 포함하여 Couchbase 4.6을 실행하고 구성합니다.
  • Spring Boot, Vaadin 및 Couchbase를 사용하여 애플리케이션을 빌드합니다.
  • 애플리케이션을 도커라이즈하고 실행합니다.

Docker를 사용하여 Couchbase 4.6 실행하기

Docker 호스트 IP를 확인합니다. 사용할 수 있습니다:

다음 작업은 카우치베이스를 실행하고 구성하기 위한 Docker파일을 작성하는 것입니다. 애플리케이션이 Couchbase 백엔드와 통신하려면 "books"라는 이름의 버킷을 설정하고 Couchbase 노드에서 인덱스 쿼리 서비스도 활성화해야 합니다. 이 모든 것을 위한 Docker 파일은 다음에서 찾을 수 있습니다. 여기.

Docker파일은 구성 스크립트를 사용하여 Couchbase 노드를 설정합니다. Couchbase는 쿼리, N1QL 및 인덱스와 같은 서비스를 쉽게 활성화할 수 있는 REST 엔드포인트를 제공합니다. 이러한 REST API를 사용하여 버킷을 설정할 수도 있습니다. 구성 스크립트는 다음에서 다운로드할 수 있습니다. 여기를 클릭하세요.

이제 Couchbase 이미지를 빌드하고 실행해 보겠습니다.

Docker파일이 있는 디렉토리로 이동합니다.

 

리포지토리 태그 이미지 ID 생성된 크기

chakrar27/couchbase books 93e7ba199eef 1 시간 전 581 MB

couchbase 최신 337dab68d2d1 9 일 전 581 MB

다음을 입력하여 이미지를 실행합니다.

샘플 출력:

다음을 입력하여 구성을 확인합니다. http://192.168.99.100:8091 를 즐겨찾는 브라우저에 입력하세요.

Configuration

사용자 아이디에 '관리자'를 입력하고 비밀번호 필드에 '비밀번호'를 입력한 다음 로그인을 클릭합니다.

Couchbase 노드의 설정을 확인하고 위에서 사용한 configure.sh와 일치하는지 확인합니다.

Couchbase Setting Cluster Ram Quota

버킷 "책".

Data bucket settings

이 시점에서 백엔드 Couchbase 인프라가 가동되고 실행 중입니다. 이제 이 백엔드를 사용하여 기능적인 무언가를 만들 수 있는 애플리케이션을 구축해야 합니다.

Spring Boot, Vaadin, Couchbase를 사용하여 애플리케이션 빌드하기

start.spring.io로 이동하여 Couchbase를 종속성으로 추가합니다. 이렇게 하면 애플리케이션 클래스 경로에 spring-data-couchbase 라이브러리가 배치됩니다. Couchbase는 Spring Boot 에코시스템의 일류 시민으로 간주되므로, 런타임에 Spring Boot 자동 구성 기능을 사용하여 Couchbase 버킷에 액세스할 수 있습니다.

또한 프로젝트에 Vaadin을 종속성으로 추가하세요. UI 레이어를 빌드하는 데 사용할 것입니다.

프로젝트 객체 모델(pom) 파일은 다음과 같이 찾을 수 있습니다. 여기.

다음과 같이 Couchbase 리포지토리를 생성합니다:

이 주석은 뷰 기반 쿼리를 지원하기 위해 런타임에 "book"이라는 이름의 뷰가 제공되도록 합니다. N1QL 쿼리를 지원하기 위해 기본 인덱스가 생성됩니다. 또한 보조 인덱스도 제공됩니다.

메서드는 List을 반환하도록 정의되었습니다. 이는 스프링 데이터 카우치베이스에서 이미 백그라운드에서 제공되므로 구현을 제공할 필요가 없습니다.

엔티티를 정의해야 하는데, 이 경우 Book입니다. 문서에 주석을 달면 됩니다.

문서

자동 구성을 사용하려면 아래와 같이 application.properties 또는 application.yml 파일을 사용하세요:

여기서 한 가지 주의해야 할 점은 애플리케이션 컨테이너가 실행될 때 Couchbase 컨테이너에 연결하고 자동 구성을 설정해야 한다는 것입니다. 속성 spring.couchbase.bootstrap-hosts 에는 Couchbase 노드의 IP 주소가 나열됩니다. 여기서는 127.0.0.1을 지정했는데, 런타임에 앱 컨테이너가 해당 IP에서 실행 중인 Couchbase 컨테이너를 찾지 못하기 때문에 작동하지 않습니다. 따라서 애플리케이션의 Docker 이미지를 실행할 때 환경 변수(env 변수)를 전달해야 합니다.

위에서 언급한 대로 환경 변수를 전달하려면 애플리케이션의 도커파일을 작성하여 spring.couchbase.bootstrap-hosts 속성을 환경 변수로 전달할 수 있습니다. 다음은 앱의 도커파일입니다:

보시다시피, 우리는 기본적으로 spring.couchbase.bootstrap-hosts 환경 변수 HOSTS에 의해 application.properties 파일에 정의된 속성입니다.

이것이 스프링 부트를 Couchbase와 연결하기 위해 해야 할 거의 모든 것입니다.

UI(U 및 I)

UI의 경우 스프링-바딘 통합을 활용하고 있습니다. 저는 Vaadin 버전 7.7.3, vaadin-spring 버전 1.1.0, 그리고 유용한 Vaadin 애드온인 "Viritin"을 사용하고 있습니다. Viritin을 설치하려면 다음 종속성을 추가하세요:

UI 클래스에 다음과 같이 주석을 추가합니다.

SpringUI

@Theme("valo")

public 클래스 BookstoreUI extends UI {

//////

}

그런 다음 리포지토리 메소드를 UI 요소와 연결합니다.

구현하는 빈은 CommandLineRunner 인터페이스는 일부 초기 값으로 데이터베이스를 미리 채우는 데 사용됩니다.

전체 소스 코드는 다음을 참조하세요. 이 링크.

애플리케이션 도커화

Maven을 사용하면 Spotify의 docker-maven 플러그인을 사용하여 애플리케이션을 매우 쉽게 도커화할 수 있습니다. pom.xml 파일 플러그인 섹션을 확인하세요.

또는 Docker 명령줄 -> ->을 사용하여 빌드할 수 있습니다.

그런 다음 이미지를 실행합니다 -> 앱 컨테이너가 Couchbase 컨테이너에 연결을 시도할 때 찾을 변수 HOSTS의 값을 전달해야 한다는 점에 유의하세요. 실행 명령은 다음과 같습니다:

애플리케이션이 시작되면 다음으로 이동합니다. http://192.168.99.100:8080/

다음 페이지가 표시됩니다:

pasted image 0 2

항목을 편집하고 저장할 수 있습니다.

pasted image 0 1

그 아래에서 실행되는 N1QL 쿼리가 제공하는 깔끔한 필터링 기능도 있습니다.

pasted image 0 3

사용자는 새 책을 추가하고 기존 기록을 삭제할 수도 있습니다. 이 간단한 애플리케이션의 모든 CRUD(만들기/읽기/업데이트/삭제) 기능은 Couchbase N1QL 쿼리에 의해 구동되며, "BookStoreRepository"를 생성하여 활성화하고 "CouchbasePagingAndSortingRepository"를 차례로 확장합니다.

 

이 게시물은 카우치베이스 커뮤니티 글쓰기 프로그램의 일부입니다.

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

작성자

게시자 Laura Czajkowski, 개발자 커뮤니티 관리자, Couchbase

로라 챠코브스키는 카우치베이스의 Snr. 개발자 커뮤니티 매니저로 카우치베이스의 커뮤니티를 총괄하고 있습니다. 그녀는 월간 개발자 뉴스레터를 담당하고 있습니다.

댓글 하나

  1. [...] Docker 도구 세트를 사용하여 Couchbase 기반, 완전한 기능을 갖춘 Spring Boot 웹 애플리케이션을 실행하세요. 시리즈의 1부에서는 [...]를 사용하여 두 개의 Docker 컨테이너를 실행하여 기능적인 애플리케이션을 실행하는 방법을 보여드렸습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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