Mongo 能从主节点轻松查到,备份节点却查超时

2017-11-03 00:37:15 +08:00
 hheedat
host 	insert query update delete getmore command dirty  used flushes vsize   res qrw arw net_in net_out conn        set repl                time
*:27017     31     2     14     *0      45   137|0  0.9% 80.0%       0 29.2G 23.7G 0|0 0|0  69.7k    134k  992 foo  PRI Nov  2 23:55:38.713
*:27017    *17    88    *19     *0       0    17|0  0.8% 80.1%       0 29.2G 22.9G 0|0 1|0  15.3k   1.66m  988 foo  SEC Nov  2 23:55:38.727

类似这样一段 PHP 代码,复制集中都有这些数据,也都建了索引,主节点可以轻松查到,备份节点总是超时


$secondary = false;//修改这个值做的测试,如果是 true,则优先从 SEC 中查
$result = $dao->getRecords([
    'createAt' => [
        '$gte' => MongoUtil::getMongoDate(1509547347000),
        '$lte' => MongoUtil::getMongoDate(1509633747000),
    ],
    'a'        => 0,
    'b'        => 1,
    'c'        => ['$in' => [2]],
    'd'        => 3,
    'e'        => ['$ne' => 4],
], ['_id', 'foo'], ['_id' => -1], 300, $secondary);

把上述 PHP 代码翻译成 JS 在 Mongo Shell 中执行,主节备份节点都可以轻松查到

机器、配置都是一样的,这是啥原因,怎么破?

3099 次点击
所在节点    MongoDB
1 条回复
okletswin
2017-11-03 10:40:27 +08:00
节点运行正常,那就是连接地址不通
要么是系统网络层问题
要么是 php 连接地址问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/403098

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX