【发布时间】:2020-02-18 13:15:17
【问题描述】:
我曾经从官方驱动创建一个MongoClient的实例,并在DI中注册为单例。但是现在因为设计问题,我不得不在另一个地方创建另一个 MongoClient 实例来连接到同一个副本集。
有没有潜在的问题?两个实例将使用相同的连接还是创建两个单独的连接?
项目是用 ASP.NET Core 3.1 编写的
MongoDB驱动2.8版
MongoDB服务器使用4.2
【问题讨论】:
-
我无法验证这一点,但我了解到,如果多个
MongoClients 使用完全相同的设置集,c# 驱动程序将为多个MongoClients 使用相同的连接池。如果您需要验证,则必须查看 github 上的驱动程序源或查看 mongodb 日志。它应该显示为每个客户端打开了多少个连接。 -
正如我在constructor 中看到的
MongoClient确保它使用相同的集群,所以我认为应该是安全的。 -
它使用相同的集群,或者根据@ViacheslavShchupak 已经提到的需要创建一个集群。
标签: c# mongodb mongodb-.net-driver