副本集有三台机器(M1, M2, M3),然后服务器放在另外几台机器(S1, S2, ..Sn)。用的 driver 是 pymongo。因为对实时性要求不高,所以 ReadPreference 打算设置成 NEAREST,也就是会把请求平均分布到各台 mongo 所在机器。然后现在的问题是,MongoReplicaSetClient 的第一个参数 hosts_or_uri 不知道该怎么设置。可能的选择有三种:
- 在各台后端服务S1-Sn,都设置 hosts_or_uri = M1;
- 平均分配, 1/3 hosts_or_uri = M1, 1/3 hosts_or_uri = M3, 1/3 hosts_or_uri = M3;
- 设置 hosts_or_uri = M1, M2, M3
哪一种比较好呢?谢谢。
