goroutine 创建多个 mongodb 连接

如何在 golang 中管理超过 100000 个 goroutine 的 MongoDB 连接。

我已经创建了一个实例,然后使用相同的客户端,但它创建了多个连接。*mongo.Client



一只萌萌小番薯
浏览 110回答 1
1回答

12345678_0001

怪物。客户端管理内部连接池。您不必担心这一点。 可安全并发使用。mongo.Client如果要限制内部池,可以在连接时使用 ClientOptions 执行此操作。例如:clientOpts := options.Client().ApplyURI("<your-connection-string>").&nbsp; &nbsp; SetMaxPoolSize(100) // Allow no more than 100 connectionsclient, err := mongo.Connect(context.TODO(), clientOpts)if err != nil {&nbsp; &nbsp; log.Fatal(err)}引用自 ClientOptions.SetMaxPoolSize():SetMaxPoolSize 指定驱动程序的连接池中允许的最大连接数到每个服务器。如果达到此最大值,则对服务器的请求将阻塞。这也可以通过“maxPoolSize”URI选项进行设置(例如“maxPoolSize=100”)。默认值为 100。如果此值为 0,则将其设置为数学。MaxInt64.ClientOptions还具有设置 和 属性的方法。MaxConnIdleTimeMinPoolSize但要知道,这不会加快速度。如果你有十万个goroutines都与MongoDB交互,那么MongoDB很可能成为你的瓶颈。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go