V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
hheedat
V2EX  ›  MongoDB

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

  •  
  •   hheedat · 2017-11-03 00:37:15 +08:00 · 3200 次点击
    这是一个创建于 2575 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 中执行,主节备份节点都可以轻松查到

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

    1 条回复    2017-11-03 10:40:27 +08:00
    okletswin
        1
    okletswin  
       2017-11-03 10:40:27 +08:00
    节点运行正常,那就是连接地址不通
    要么是系统网络层问题
    要么是 php 连接地址问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3313 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 11:46 · PVG 19:46 · LAX 03:46 · JFK 06:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.