2 回答
TA贡献1803条经验 获得超6个赞
我将更详细地介绍 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。
如果仍然无法获得足够的吞吐量,则可以考虑使用这些方法之一,同时通过使用连接字符串中的查询字符串选项(即)来增加 SDK 与每个节点建立的连接数。 但是,我建议仅在上述方法无法提供所需吞吐量时才进行更改。无论如何,SDK 被设计为高性能。kv_pool_size
couchbases://10.112.212.101?kv_pool_size=2
TA贡献1875条经验 获得超5个赞
go-couchbase已经有了一个连接池机制:conn_pool.go
(即使有一些问题与之相关,比如问题91)。
您可以在conn_pool_test.go
和pool.go
本身中看到它经过测试。
dnault在对最近的沙发库/gocb
的评论中指出,它确实有一个集群而不是连接池。
- 2 回答
- 0 关注
- 82 浏览
添加回答
举报