首页 > 解决方案 > Couchbase 连接池

问题描述

我正在使用 couchbase 作为我的主数据库来构建一个应用程序。
我想让应用程序具有足够的可扩展性,可以同时处理多个请求。

你如何在 Go 中为 couchbase 创建连接池?
Postgres 有pgxpool

标签: gocouchbase

解决方案


我将更详细地介绍 gocb 的工作原理。gocb 的底层是另一个名为 gocbcore 的 SDK(支持直接使用 gocbcore),它是一个完全异步的 API。Gocb 在 gocbcore 上提供了一个同步 API,并使 API 更加用户友好。

这意味着如果您跨多个 goroutine 发出请求,那么您可以一次将多个请求写入网络。这就是 gocb 批量 API 的有效工作方式 - https://github.com/couchbase/gocb/blob/master/collection_bulk.go。这两种方法都记录在https://docs.couchbase.com/go-sdk/current/howtos/concurrent-async-apis.html中。

如果您仍然没有获得足够的吞吐量,那么您可以考虑使用其中一种方法,同时通过使用kv_pool_size连接字符串中的查询字符串选项来增加 SDK 与每个节点建立的连接数,即couchbases://10.112.212.101?kv_pool_size=2我只推荐如果上述方法没有提供您需要的吞吐量,请更改此设置。无论如何,SDK 被设计为高性能。


推荐阅读