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 關注
- 106 瀏覽
添加回答
舉報