为了账号安全,请及时绑定邮箱和手机立即绑定

沙发底座连接池

沙发底座连接池

Go
泛舟湖上清波郎朗 2022-10-04 18:57:27
我正在构建一个使用沙发库作为我的主要数据库的应用程序。我想使应用程序具有足够的可扩展性,以便有时同时处理多个请求。如何在Go中为沙发库创建连接池?波斯特格雷斯有pgxpool。
查看完整描述

2 回答

?
慕码人8056858

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_sizecouchbases://10.112.212.101?kv_pool_size=2


查看完整回答
反对 回复 2022-10-04
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

go-couchbase已经有了一个连接池机制:conn_pool.go(即使有一些问题与之相关,比如问题91)。

您可以在conn_pool_test.gopool.go本身中看到它经过测试。

dnault在对最近的沙发库/gocb的评论中指出,它确实有一个集群而不是连接池。


查看完整回答
反对 回复 2022-10-04
  • 2 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信