MongoReplicaSetClient,我应该连接到哪个uri?

MongoReplicaSetClient,which uri should I connect to?

假设我有一个包含 3 台机器(M1、M2、M3)和其他几台用于托管服务器的机器(S1、S2、..Sn)的副本。我不太关心实时性,所以 ReadPreference 将设置为 NEAREST

有一件事困扰着我:正如文档所说,MongoReplicaSetClient 唯一需要的参数是 hosts_or_uri。但是我应该使用哪个 mongodb uri?由于我将使用 NEAREST 选项,如果我:

会有什么不同吗?
  1. hosts_or_uri = M1 从 S1 设置为 Sn;
  2. 传播连接,1/3hosts_or_uri = M1,1/3hosts_or_uri = M3,1/3hosts_or_uri = M3
  3. 使用hosts_or_uri = M1, M2, M3

我有区别,哪个更好?谢谢!

在 URI 中指定多个成员。指定一个足以创建到所有集合成员的副本集连接;但是,如果您在 uri 中仅指定一台机器,而该机器未启动,则连接将失败。如果您指定多台并且一台机器宕机(但副本集是健康的),连接仍然会成功。