在使用副本集时,c#mongo驱动程序中连接到哪个节点

在使用副本集时,c#mongo驱动程序中连接到哪个节点,c#,mongodb,driver,C#,Mongodb,Driver,我设置了一个连接字符串,如下所示: mongodb://54.225.?.?,54.214.?.?, 54.214.?.?/rs0?connect=replicaset;replicaSet=rs0;slaveOk=true;readPreference=nearest 我已将readPreference设置为“最近”。在测试和生产过程中,有时我们希望保证并检查是否与最接近客户机的某些节点通信。我知道这是自动处理的,但是我可以通过驱动程序使用什么方法来查找我连接到的用于特定数据库调用的实际副本

我设置了一个连接字符串,如下所示:

mongodb://54.225.?.?,54.214.?.?, 54.214.?.?/rs0?connect=replicaset;replicaSet=rs0;slaveOk=true;readPreference=nearest
我已将readPreference设置为“最近”。在测试和生产过程中,有时我们希望保证并检查是否与最接近客户机的某些节点通信。我知道这是自动处理的,但是我可以通过驱动程序使用什么方法来查找我连接到的用于特定数据库调用的实际副本集成员


例如,我有三个数据中心,我希望我们的应用程序使用离它最近的一个,但我希望确保我们正在连接到它,因为应用程序需要最大的性能和减少延迟。

您没有连接到单个服务器-您连接到了整个副本集。因此,由于驱动程序保持连接对集合中的所有成员开放,它知道向主要成员发送写操作,并且知道何时可以向次要成员发送某些特殊读取(除非它是隐藏的次要成员)

如果您想保证读操作进入某个数据中心,那么应该使用“标记”而不是“最近的”,此时您可以将标记与副本集的成员关联,以便您可以指定您希望某些读操作只进入使用特定标签标记的成员


请注意,由于驱动程序通过ping时间确定“最近的”,您可能会因为强制它转到物理上最近的数据中心而影响最佳性能,而这些数据中心当前可能比更远的数据中心经历更长的延迟。

您没有连接到单个服务器-您连接到了整个副本集。因此,由于驱动程序保持连接对集合中的所有成员开放,它知道向主要成员发送写操作,并且知道何时可以向次要成员发送某些特殊读取(除非它是隐藏的次要成员)

如果您想保证读操作进入某个数据中心,那么应该使用“标记”而不是“最近的”,此时您可以将标记与副本集的成员关联,以便您可以指定您希望某些读操作只进入使用特定标签标记的成员

请注意,由于驱动程序通过ping时间确定“最近的”,您可能会因为强迫它转到物理上最近的数据中心而影响最佳性能,而该数据中心当前可能比更远的数据中心延迟更长。

这是什么?这