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

goroutine 创建多个 mongodb 连接

goroutine 创建多个 mongodb 连接

Go
一只萌萌小番薯 2022-09-05 15:24:27
如何在 golang 中管理超过 100000 个 goroutine 的 MongoDB 连接。我已经创建了一个实例,然后使用相同的客户端,但它创建了多个连接。*mongo.Client
查看完整描述

1 回答

?
12345678_0001

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

怪物。客户端管理内部连接池。您不必担心这一点。 可安全并发使用。mongo.Client


如果要限制内部池,可以在连接时使用 ClientOptions 执行此操作。例如:


clientOpts := options.Client().ApplyURI("<your-connection-string>").

    SetMaxPoolSize(100) // Allow no more than 100 connections


client, err := mongo.Connect(context.TODO(), clientOpts)

if err != nil {

    log.Fatal(err)

}

引用自 ClientOptions.SetMaxPoolSize():


SetMaxPoolSize 指定驱动程序的连接池中允许的最大连接数到每个服务器。如果达到此最大值,则对服务器的请求将阻塞。这也可以通过“maxPoolSize”URI选项进行设置(例如“maxPoolSize=100”)。默认值为 100。如果此值为 0,则将其设置为数学。MaxInt64.


ClientOptions还具有设置 和 属性的方法。MaxConnIdleTimeMinPoolSize


但要知道,这不会加快速度。如果你有十万个goroutines都与MongoDB交互,那么MongoDB很可能成为你的瓶颈。


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

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