【发布时间】:2022-02-01 16:08:36
【问题描述】:
我正在尝试使用 mongodb 为我的 Go 程序配置一个池连接,其中我使用 mongodb go 驱动程序将minPoolSize 设置为 20 个连接。类似的东西:
cli, err := mongo.Connect(ctx, options.Client().ApplyURI(uri).SetMinPoolSize(20).SetMaxConnIdleTime(time.Second*5))
我做了一个测试,我的程序允许的连接数达到 100 个。 5 秒后,连接数下降到 10。但它应该保持 20 个连接。如果我将 minPoolSize 设置为 5,它可以正常工作。
10 个连接是否限制了 mongodb 的 MinPoolSize?如何更改它以保持 20 个连接?
【问题讨论】:
-
您是否也将
SetPoolMonitor添加到您的连接中以打印池中实际发生的情况? (不确定它是否有帮助,但我们在生产中使用它来记录 MongoDB 驱动程序中发生的连接事件——因为我们还没有找到更好的方法来做到这一点。) -
不,我没有!但我会尝试 SetPoolMonitor。
标签: mongodb go connection-pooling mongo-go