도구 및 SDK

Couchbase Java SDK 3.0 알파 소개

지난 몇 달 동안 열심히 노력해 온 내용을 발표할 수 있게 되어 매우 기쁩니다. SDK 팀 전체가 합심하여 더 빠르고, 더 간단한 API를 제공하며, 향후 출시될 서버 기능에 대비하고, 프레임워크 에코시스템과의 통합을 용이하게 하는 완전히 새로운 SDK를 출시하기 시작했습니다.

Java SDK를 개선하는 것 외에도 완전히 새로운 Scala SDK! Scala로 개발하는 모든 사람을 위한 최고 수준의 지원을 제공하며 앞으로 Scala 에코시스템에 훨씬 쉽게 통합할 수 있습니다.

이 모든 것이 새로운 것이니, 용들이 여기 있습니다. 최고의 SDK가 될 수 있도록 모든 피드백과 버그 보고에 감사드립니다.

하이라이트

이 글에서는 주요 내용을 두 섹션으로 나누어 설명합니다. 한 섹션에서는 개편된 API(모든 SDK에 걸쳐)에 대해 설명하고 다른 섹션에서는 Java SDK별 개선 사항을 다룹니다.

크로스 SDK API 개선 사항

API의 사용성을 개선하기 위해 API를 상당히 많이 다듬고 리팩토링했습니다. 그 결과 매우 응집력 있고 규칙적인 API 구조가 만들어졌으며, 처음 사용하는 사용자나 오랜 Couchbase 사용자 모두 훨씬 더 쉽게 사용할 수 있게 되었습니다.

간단한 비교를 위해 다음은 2.x Java SDK의 일부 API입니다:

그리고 물론 타임아웃 과부하도 있습니다:

이를 새 API와 비교해 보세요:

각 메서드는 결과 라는 선택적 블록이 있으며 끝에 옵션. 이전 문서 개념이 API 전체에서 더 간단하고 규칙적인 개념으로 대체되었습니다. 타임아웃, 내구성 요구 사항 또는 CAS와 같은 옵션 속성이 모두 옵션 매개변수로 이동되어 과부하가 줄어들고 "한 곳에서만" 확인할 수 있게 되었습니다.

추후 블로그 게시물에서 API 개편에 대해 자세히 살펴보겠지만, 지금은 Java 관련 개선 사항으로 넘어가겠습니다.

Java 관련 개선 사항

사용자에게 가장 눈에 띄는 두 가지 변경 사항은 다음과 같습니다:

  • 기본 자바 버전인 Java 8
  • RxJava에서 Reactor로 마이그레이션된 반응형 API

RxJava 1.x는 수년 동안 잘 사용되어 왔지만(사실 저희는 이 기술을 가장 먼저 채택한 기업 중 하나였습니다), 수명이 다한 것으로 표시되어 대안을 모색해야 했습니다. 리액티브 스트림이 서로 다른 구현 간의 통합을 위한 사실상의 표준으로 떠오르면서 RxJava 2.x와 리액터 중 하나를 결정해야 했습니다. 두 가지 모두 (대부분) 성능 면에서 정면으로 맞섰지만, 오랜 평가 기간 끝에 다음과 같은 이유로 리액터를 선택하기로 결정했습니다:

  • 네이티브 자바 8 API
  • 일부 주요 워크로드에서 성능이 약간 향상되었습니다.
  • 더 많은 커뮤니티 견인력과 지속적인 성장 (스프링 코어에 통합되어 있기 때문이기도 함)

애플리케이션 플랫폼이 RxJava 2로 구축된 경우에도 걱정하지 마세요. 두 플랫폼 모두 반응형 스트림을 지원하므로 반응형 API 위에 플러그인하기만 하면 됩니다.

2.x SDK에는 차단 API와 RxJava를 통해 노출되는 비동기 API라는 두 가지 API가 있었습니다. SDK 3에서는 더 많은 제어 기능을 제공하기 위해 세 번째 API를 추가했습니다:

  • 차단 API는 그대로 유지됩니다.
  • 반응형 API는 리액터의 모노 및 플럭스 응답을 노출합니다.
  • 비동기 API는 최고 수준의 성능이 필요한 경우 빌딩 블록으로 사용할 수 있는 CompletableFutures를 노출합니다.

마지막으로 모든 반응형 쿼리 API의 주요 개선 사항 중 하나는 백프레셔에 대한 선택적 지원입니다. 대용량 결과를 읽어야 하는데 한 번에 모두 힙에 넣지 않으려는 경우, 이제 내부 비동기 IO 계층까지 확장된 리액터 백프레셔 메카니즘을 사용할 수 있습니다. 이 주제에 대한 심층적인 블로그 포스팅을 준비 중이니 기대해 주세요!

시작하기

사용해 보고 싶으시다면 사전 릴리스 메이븐 리포지토리에서 다운로드할 수 있습니다:

 

종속성이 해결되면 Couchbase Server 5.0보다 이전 버전인 모든 클러스터에 연결할 수 있습니다. 그런 다음 버킷을 열고 원하는 컬렉션을 사용합니다(컬렉션 지원은 곧 출시될 Couchbase Server 릴리즈의 API에 이미 포함되어 있습니다). 이전 릴리즈의 경우 기본 컬렉션 를 입력하면 바로 작동합니다:

이제 문서를 작성하고 읽을 수 있습니다:

자세한 내용을 알아보시려면 새로운 문서 현재 지속적으로 작성되고 구체화되고 있습니다. 코드 예제를 찾아볼 수도 있습니다. 여기.

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

작성자

게시자 마이클 니칭어, 수석 소프트웨어 엔지니어, Couchbase

마이클 니칭어는 Couchbase의 수석 소프트웨어 엔지니어로 일하고 있습니다. 그는 JVM에서 최초의 완전 반응형 데이터베이스 드라이버 중 하나인 Couchbase Java SDK의 설계자이자 유지 관리자입니다. 또한 Couchbase Spark Connector를 작성하고 유지 관리하고 있습니다. Michael은 오픈 소스 커뮤니티에서 활발히 활동 중이며, RxJava 및 Netty와 같은 다양한 프로젝트에 기여하고 있습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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