분류

Java SDK 2.2 정식 버전 출시 발표

SDK 팀을 대표하여, Java SDK 버전의 2.2 이제 GA입니다!

이번 버전은 개선 사항과 버그 수정으로 가득 차 있습니다. 무엇보다도 이 버전은 새롭게 선보이는 모든 새로운 기능과의 호환성을 제공합니다. 카우치베이스 서버 4.0 가 제공하는 기능입니다.

피드백 덕분에 몇 번의 반복을 거친 후 ( 하나 하지만 이번 릴리스의 개발자 프리뷰!), 이제 다음에서 마이그레이션할 때 활용할 수 있는 다양한 개선 사항을 제공합니다. 2.0/2.12.2.

참조 릴리스 노트 에서 전체 변경 사항 목록을 확인하시기 바랍니다:

이 릴리스를 사용하려면 다음과 같이 업데이트하면 됩니다. pom.xml (또는 아카이브):

또한 자바독스 그리고 SDK 문서 이 릴리스에서는

새로운 기능

N1QL 및 MDS 지원

SDK는 다음과 원활하게 작동하도록 조정되었습니다. 카우치베이스 서버 4.0:

  • 전체 DSL을 살펴보고 N1QL로 작업하고 SELECT를 수행하며 인덱스로 작업하세요.
  • SDK와 쿼리 서비스에서 자주 실행하는 쿼리를 최적화할 수 있습니다. adhoc(false) 튜닝 N1qlParams 당신 안에 N1qlQuery.
  • SDK를 사용하여 다음과 같은 사항을 파악할 수 있습니다. MDS 클러스터 (다차원 스케일링를 통해 노드에 서로 다른 서비스를 활성화할 수 있으므로 필요에 따라 노드를 확장할 수 있습니다(예: 데이터 노드에 더 많은 RAM, 쿼리 노드에 더 많은 CPU).

쿼리 최적화 정보이니셜을 대체합니다. 준비 API를 개발자 미리 보기에서 확인할 수 있습니다. 더 이상 준비된 페이로드 또는 쿼리 계획. 다음을 사용하여 최적화를 위한 쿼리 표시 N1qlParams's adhoc(false) 메서드는 내부적으로 쿼리 엔진의 준비된 문 기능을 사용하여 최대 5000개의 실행 계획을 캐싱하여 더 빠른 실행을 지원합니다.

향상된 내구성

에 도입된 또 다른 가능성은 카우치베이스 서버 4.0 의 가장 큰 장점은 향상된 내구성입니다. CAS를 사용하여 데이터의 올바른 지속성과 복제를 확인하는 대신, 더 세밀한 수준의 돌연변이 토큰 를 서버에서 각 돌연변이마다 방출하여 내구성 관찰에 사용할 수 있습니다.

그 사이에 새로운 변이가 발생하더라도 복제본에서 특정 변이를 확인할 수 있습니다(마스터와 복제본의 CAS가 다시 변경됨). 또한 클러스터에서 하드 장애 조치가 트리거된 경우 보다 정확한 상태를 감지할 수 있습니다.

이 기능을 활성화하려면 카우치베이스 환경 를 사용하여 변이 토큰 활성화(true) 메서드를 사용합니다.

참고 이는 각 변이 응답에 대해 서버에서 추가 바이트를 전송하므로 약간의 오버헤드가 발생하므로 기본적으로 해제되어 있습니다.

메트릭

SDK 내부에서 무슨 일이 일어나고 있나요? 내 JVM의 상태는 어떤가요? 네트워크 왕복으로 인한 지연인가요, 아니면 SDK에서 발생하는 지연인가요?

새로운 메트릭 기능을 통해 이 모든 질문과 그 이상의 질문에 대한 답을 찾아보세요!

런타임 그리고 지연 시간 메트릭은 항상 수집되며 정기적으로 이벤트 버스 (an 관찰 가능 자체), 기본적으로 매시간마다 덤프됩니다. 덤프 간격을 변경하는 것 외에도 이러한 메트릭 이벤트를 기록하는 소비자를 쉽게 구성할 수 있습니다.

자세한 내용은 문서를 참조하세요.)

리포지토리 API를 사용한 간단한 ODM

ODM(객체-문서 매핑)의 형태로 리포지토리 엔티티 클래스를 직접 저장할 수 있는 인터페이스로, 충분히 간단하고 (예를 들어 지금은 빈 생성자가 필요하고) 문서, @Id 그리고 필드.

뜨거운 관측에서 차가운 관측까지

이것은 동작에 대한 주요 변경 사항입니다. 비동기 API. In RxJava, a hot 관찰 가능 는 누군가의 청취/구독 여부에 관계없이 데이터를 전송하며, 신규 구독자에게 항상 동일한 데이터를 제공합니다.

이것이 이전에는 Couchbase SDK Observables의 동작이었습니다. 즉, 다음과 같은 경우 필요 새 구독을 사용하여 데이터베이스에 대한 새 작업을 트리거합니다(예를 들어 다시 시도)로 통화를 마무리해야 했습니다. Observable.defer().

그렇지 않으면 모든 재시도에 동일한 첫 번째 결과가 표시됩니다. 임시 실패 예외.

에서 2.2 이후에는 기본 동작은 cold 관찰 가능의 래핑이 defer 는 이제 중복됩니다. 모든 SDK 호출은 다음에서 원활하게 작동합니다. RxJava's 다시 시도 의미론.

명시적으로 구독()관찰 가능 를 반환하지 않으면 DB 상호 작용이 트리거되지 않습니다. 이는 "필요할 때까지 아무것도 하지 않는" 느린 접근 방식으로, 폴백 스트림을 선언하는 동안에도 유용합니다( 관찰 가능 1TP5톤 에러 재개 다음()).

API 개선 사항

getFromReplica 반복

동기화 API에서 이제 다음과 같은 과부하가 발생합니다. getFromReplica 를 반환하는 이터레이터를 사용하여 응답의 일부만 쉽게 사용할 수 있습니다(예: 가장 빠른 응답에만 관심이 있는 경우).

포함 문서 in ViewQuery

아직 동기화 API를 사용 중이라면 ViewQuery 를 사용하여 백그라운드에서 문서의 전체 콘텐츠를 효율적으로 검색할 수 있습니다. 포함 문서 옵션을 선택합니다.

카운터 시맨틱

이전에는 카운터 메서드는 카운터 문서가 없으면 기본값인 0으로 초기화합니다. 초기값 가 과부하로 제공되었습니다.

이 기능이 변경되어 대신 문서가 존재하지 않음 예외 가 이러한 종류의 오버로드와 함께 던져집니다(1.4 SDK 세대와 같이). 에러 대신 0으로 초기화하려면 오버로드 중 하나를 사용하면 됩니다. 초기값.

다음에 대한 내구성 요구 사항 지원 카운터, 추가 그리고 prepend

이전에는 과부하가 발생하지 않으면 PersistTo 및/또는 ReplicateTo 내구성 요구 사항. 이제 이 요구 사항이 구현되었습니다.

CASMismatchException 대신 카우치베이스 예외 에 대한 추가 그리고 prepend

제목에서 알 수 있듯이, 두 메서드 모두 일반적인 카우치베이스 예외

디자인 문서 옵션

이제 디자인 문서를 만들거나 교체할 때 디자인 문서별로 다양한 옵션을 지정할 수 있습니다.

카우치베이스환경: 혼동 피하기

그리고 CouchbaseEnvironment.Builder 는 더 이상 인터페이스를 구현하지 않으므로 다음을 호출해야 합니다. build() 를 사용하여 실제 환경과 혼동하지 않도록 (따라서 널포인터 예외 사용 중).

기타

이름 변경

다음과 관련된 일부 클래스 N1QL 의 이름을 변경하여 혼동을 피하고 다른 유사한 클래스 및/또는 다른 SDK와 더 잘 일치하도록 했습니다:

  • 대부분 쿼리 관련 클래스 앞에 N1QL (예. 비동기 쿼리 결과AsyncN1qlQueryResult). 이는 뷰(ViewQuery, N1qlQuery).
  • 쿼리 매개변수N1qlParams 그리고 QueryMetricsN1qlMetrics.
  • 단어의 다양한 예시 매개변수화 로 대체되었습니다. 매개변수화 를 문서와 SDK 전반에서 사용할 수 있습니다. 예를 들어 N1qlQuery.parameterized(문 st, JsonObject paramValues) 공장 방식...

종속성 업그레이드

다음과 같은 외부 종속성이 업데이트되었습니다:

  • RxJava 에서 1.0.41.0.14

또한 내부 종속성도 업데이트되었습니다:

  • Netty 에서 4.0.25.Final4.0.30.Final
  • LMAX 디스럽터 3.3.03.3.2
  • Jackson 에서 2.4.22.6.1
  • LatencyUtils 버전에 새로 추가됨 2.0.2

이번 릴리스, 해피 코딩을 즐기시기 바랍니다!

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

작성자

게시자 Simon Basle, 소프트웨어 엔지니어, 피보탈

Simon Basl_은 파리에 거주하는 소프트웨어 엔지니어로 피보탈의 Spring 팀에서 근무하고 있습니다. 이전에는 Couchbase Java SDK 팀에서 근무했습니다. 그의 관심 분야는 소프트웨어 설계 측면(OOP, 디자인 패턴, 소프트웨어 아키텍처), 리치 클라이언트, 코드 너머의 것(지속적 통합, (D)VCS, 모범 사례), 반응형 프로그래밍 등 다양합니다. 또한 프랑스어 버전의 InfoQ.com의 편집자이기도 합니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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