>  기사  >  백엔드 개발  >  Couchbase용 C++ SDK의 일반 출시 발표

Couchbase용 C++ SDK의 일반 출시 발표

王林
王林원래의
2024-07-19 16:37:42698검색

Announcing General Availability of the C++ SDK for Couchbase

Couchbase용 C++ SDK의 일반 출시(GA)를 발표하게 되어 기쁘게 생각합니다! 이번 릴리스는 11개 프로그래밍 언어로 된 기존의 포괄적인 SDK 라이브러리 세트에 기본 C++ 언어에 대한 지원을 추가하고 개발자가 현대적이고 확장 가능한 애플리케이션을 구축할 수 있도록 강력한 고성능 도구를 제공하려는 우리의 노력에 있어 중요한 이정표입니다. 실제로 이 C++ SDK는 기존 Python, NodeJS, Ruby 및 PHP SDK의 핵심 라이브러리이며 이러한 모든 프로그래밍 언어에서 일관되고 성능이 뛰어나며 효율적인 환경을 제공하기 위해 노력하고 있습니다.

왜 C++ SDK인가?

C++는 성능, 효율성 및 시스템 리소스 제어로 인해 많은 개발자에게 중요한 언어로 남아 있습니다. C++ SDK를 도입함으로써 Couchbase는 개발자가 Couchbase의 고급 NoSQL 기능을 최대한 활용하면서 이러한 이점을 활용할 수 있도록 지원합니다. 이번 출시가 판도를 바꾸는 몇 가지 주요 이유는 다음과 같습니다.

성능

C++는 속도와 낮은 수준의 메모리 관리로 유명하므로 성능이 중요한 애플리케이션에 이상적입니다. Couchbase용 C++ SDK를 사용하면 속도나 효율성을 희생하지 않고도 고성능 애플리케이션을 구축할 수 있습니다.

원활한 통합

C++ SDK는 Couchbase 서버와의 원활한 통합을 제공하여 개발자가 KV 작업, SQL++ 쿼리 및 트랜잭션과 같은 작업을 쉽게 수행할 수 있도록 합니다. 이러한 긴밀한 통합을 통해 고성능을 유지하면서 애플리케이션을 효과적으로 확장할 수 있습니다.

최신 API 디자인

C++ SDK는 최신 C++ 표준에 부합하는 현대적이고 관용적인 API를 갖추고 있습니다. 이는 C++ 개발자에게 강력할 뿐만 아니라 직관적이어서 학습 곡선을 줄이고 애플리케이션 구축을 빠르게 시작할 수 있도록 해줍니다.

주요 특징

다음은 Couchbase용 C++ SDK의 뛰어난 기능 중 일부입니다.

쉬운 연결 관리

C++ SDK는 연결 관리를 단순화하므로 최소한의 노력으로 Couchbase 클러스터에 대한 연결을 설정하고 관리할 수 있습니다. 여기에는 연결 풀링, 로드 밸런싱, 장애 조치 처리가 포함되어 애플리케이션의 탄력성과 성능을 유지합니다. 이는 SDK가 클러스터의 토폴로지를 자동으로 읽고 클러스터 크기 조정 또는 클러스터 업그레이드와 같은 토폴로지 변경 중에 원활한 연결을 제공할 수 있음을 의미합니다. 다음은 Couchbase 데이터베이스에 연결하기 위한 C++ 코드의 예입니다.

// Attempt to connect to the Couchbase cluster
auto [connect_err, cluster] = couchbase::cluster::connect(config.connection_string, options).get();

if (connect_err) {
    // Output the error message if connection fails
    std::cout << "Unable to connect to the cluster. Error code: " << connect_err.message() << "\n";
} else {
    auto collection = cluster.bucket(config.bucket_name)
                             .scope(config.scope_name)
                             .collection(config.collection_name);

    // d something interesting

    cluster.close().get();
}

키-값(KV) 연산 지원

C++ SDK는 기본적으로 키 값 작업 수행을 지원합니다. 키-값 작업은 Couchbase에 고유하며 Couchbase에 저장된 문서에 대해 매우 빠른 CRUD 작업을 제공합니다. 다음은 문서의 간단한 KV 가져오기 및 upsert를 실행하는 C++ 코드의 예입니다.

auto collection = cluster.bucket(config.bucket_name)
                         .scope(config.scope_name)
                         .collection(config.collection_name);

// KV- get
auto record = collection.get(document_id);
std::cout << record.content_as() << "\n";

// create a new document
const std::string document_id{ "minimal_example" };
const tao::json::value basic_doc{
  { "a", 1.0 },
  { "b", 2.0 },
};

// KV 
auto [err, resp] = collection.upsert(document_id, basic_doc, {}).get();
if (err.ec()) {
  std::cout << "ec: " << err.message() << ", ";
} else {
  std::cout << "id: " << document_id << ", CAS: " << resp.cas().value() << "\n";
}

cluster.close().get();

풍부한 쿼리, 검색 및 벡터 검색 지원

C++ SDK는 SQL++ 쿼리, FTS(전체 텍스트 검색) 및 벡터 검색을 지원하여 복잡한 데이터 작업을 수행할 수 있는 강력한 도구를 제공합니다. 정교한 쿼리를 실행해야 하거나 전체 텍스트 검색을 수행해야 하는 경우 SDK를 사용하면 됩니다.

쿼리 검색

다음은 간단한 SQL++ 쿼리를 실행하여 항공사 컬렉션에서 레코드를 가져오는 코드 조각입니다.

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);
  auto [err, resp] = scope.query("SELECT * FROM airline LIMIT 10").get();
  std::cout << "--- Iterating as JSON objects:\n";
  for (auto row : resp.rows_as_json()) {
    std::cout << "Airline(id: " << row["airline"]["id"] << ", name: \"" << row["airline"]["name"] << "\")\n";
  }

전체 텍스트 검색(FTS)

아래는 랜드마크 컬렉션에 생성된 인덱스인 "좋은 레스토랑"에 대한 전체 텍스트 검색을 수행하기 위해 FTS 쿼리를 실행하는 코드 조각입니다.

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);
auto [err, resp] = scope
  .search("travel-inventory-landmarks",
     couchbase::search_request(couchbase::query_string_query("nice restaurants")),
     couchbase::search_options{}.fields({ "content" }))
  .get();
for (const auto& row : resp.rows()) {
  auto fields = row.fields_as<couchbase::codec::tao_json_serializer>();
  std::cout << "score: " << row.score() << ", id: \"" << row.id() << "\", content: \"" << fields["content"].get_string() << "\"\n";
}

벡터 검색

다음은 벡터 검색 쿼리를 실행하는 코드 조각입니다.

auto scope = cluster.bucket(config.bucket_name).scope(config.scope_name);

// weights could be retrieved from your llm model or openAI
std::vector<double> weights{ 0.1, 0.2, 0.3, 0.4 };
auto [err, resp] = scope
  .search("travel-inventory-landmarks",
    couchbase::search_request(couchbase::vector_search(
    couchbase::vector_query(field_name, weights))))
  .get();

for (const auto& row : resp.rows()) {
  auto fields = row.fields_as<couchbase::codec::tao_json_serializer>();
  std::cout << "score: " << row.score() << ", id: \"" << row.id() << "\", content: \"" << fields["content"].get_string() << "\"\n";
}

비동기 프로그래밍

SDK는 비동기식 프로그래밍 모델을 지원하므로 응답성이 뛰어나고 차단되지 않는 애플리케이션을 구축할 수 있습니다. 이는 응답성을 유지하는 것이 필수적인 높은 처리량 애플리케이션에 특히 유용합니다. 다음은 비동기식 컨텍스트에서 트랜잭션을 실행하는 예입니다.

std::shared_ptr<async_attempt_context> ctx) -> couchbase::error {
  ctx->get(
    collection,
    some_id,
    // do something in this transaction
}

업무

이 새로운 C++ SDK에는 트랜잭션 지원이 포함되어 있으며 더 많은 성능 개선 사항과 기능을 추가하여 기존 C++ 트랜잭션 지원을 대체합니다. 다음은 트랜잭션 컨텍스트를 생성하기 위한 샘플 코드 조각입니다.

std::shared_ptr<couchbase::transactions::attempt_context> ctx) -> couchbase::error {
  ctx.insert(collection, "doc-a", nlohmann::json({}));
  couchbase::transactions::transaction_get_result doc_a = ctx->get( collection, “doc-a”)
}

강력한 오류 처리

오류 처리는 모든 애플리케이션에서 매우 중요하며, C++ SDK는 다른 SDK와 마찬가지로 연결 끊김에 대한 재시도, 연결 풀링 및 정보 오류 메시지를 포함한 포괄적인 오류 처리 기능을 제공합니다. 이를 통해 오류를 원활하게 처리하고 복구할 수 있어 애플리케이션의 안정성과 신뢰성이 향상됩니다.

시작하기

Couchbase용 C++ SDK를 시작하는 데 도움이 되도록 설명서 웹사이트에서 자세한 시작 가이드를 준비했습니다. 시작하는 방법에 대한 간략한 개요는 다음과 같습니다.

    • SDK 설치 : 개발 환경에서 SDK를 설정하려면 설명서의 설치 지침을 따르세요.
    • 클러스터에 연결 : Couchbase 클러스터에 연결합니다.
    • CRUD 작업을 수행하고, 쿼리를 실행하고, Couchbase의 강력한 기능을 활용하세요.

커뮤니티 및 지원

우리는 커뮤니티와 오픈소스 개발의 힘을 믿습니다. Couchbase용 C++ SDK는 오픈 소스이므로 기여하고, 피드백을 제공하고, 대화에 참여하는 것이 좋습니다. 지원을 받으려면 기업 라이선스 고객인 경우 지원을 통해 문의할 수 있습니다. 그렇지 않으면 포괄적인 문서에 액세스하거나 Couchbase 포럼 또는 Couchbase Discord에 가입하거나 지원 포털을 통해 문의할 수 있습니다.

추가 자료

자세한 내용은 설명서 웹사이트를 확인하세요. 특히 트랜잭션 및 비동기 작업과 관련하여 API에 대해 자세히 설명하고 더 자세히 알아볼 수 있는 기타 참조 자료와 샘플 바인딩 링크를 제공합니다.

    • Couchbase C++ SDK 코드 예시
    • Couchbase C++ SDK 문서
    • Couchbase C++ SDK 다운로드 및 설치

지원되는 운영 체제는 당사 설명서 웹사이트에 나열되어 있습니다.

즐거운 코딩하세요!

카우치베이스팀

Couchbase용 C++ SDK의 정식 출시를 알리는 게시물이 The Couchbase 블로그에 처음 게재되었습니다.

위 내용은 Couchbase용 C++ SDK의 일반 출시 발표의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.