假设您在生产环境中有多个Mongo分片,因此每个分片都是副本集。您有三个不同的Mongos实例正在运行以连接到这些副本集,因此您正在执行以下操作:
new MongoClient("mongodb://mongos1.example.com:27017,mongos2.example.com:27017,mongos3.example.com:27017");
PHP Mongos驱动程序使用什么方案来确定它将连接到哪些方案?搜索到这一点,我已经能够找到相对较少的信息,我遇到的一些事情往往相互矛盾,有些人说它选择第一个回应,有些人说它选择第一个你输入您的代码。
有人知道吗?
这适用于PHP 1.3.4。
答案 0 :(得分:1)
正如Sammaye所说,MongoClient首先连接到“最近的”mongos
,其中“最近”由延迟决定。如果您有兴趣,可以查看manager.c中的read_preference.c和php driver。