加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【NoSQL】mongo_detail.py中均衡器信息的处理思路

发布时间:2020-12-13 13:32:42 所属栏目:百科 来源:网络整理
导读:【ToolsForMongo】mongo_detail.py中均衡器信息的处理思路 先看下几种典型状况下的 db.settings.find({'_id':'balancer'}) 输出: 1.创建mongos之后,从未设置balancer时: mongos var x = db.settings.findOne({'_id':'balancer'})mongos x == nulltruemongo

【ToolsForMongo】mongo_detail.py中均衡器信息的处理思路

先看下几种典型状况下的db.settings.find({'_id':'balancer'})输出:

1.创建mongos之后,从未设置balancer时:

mongos> var x = db.settings.findOne({'_id':'balancer'})
mongos> x == null
true
mongos> sh.getBalancerState()
true

2.创建了mongos之后,因故手动关闭了balancer

mongos> db.settings.findOne({'_id':'balancer'})
{ "_id" : "balancer","mode" : "off","stopped" : true }
mongos> sh.getBalancerState()
false

3.设置了balancer的运行时间段,但当前时间不在其中

mongos>  var x = db.settings.findOne({'_id':'balancer'})
mongos> x
{
    "_id" : "balancer","stopped" : true,"activeWindow" : {
        "start" : "00:00","stop" : "06:00"
    }
}
mongos> sh.getBalancerState()
false

4.设置了balancer的运行时间段,当前时间在其中

mongos> var x = db.settings.findOne({'_id':'balancer'})
mongos> x
{
    "_id" : "balancer","stopped" : false,"stop" : "22:00"
    }
}
mongos> sh.getBalancerState()
true

再看下官方mongo shell中的js代码

mongos> sh.getBalancerState
function (configDB) {
    if (configDB === undefined)
        configDB = sh._getConfigDB();
    var x = configDB.settings.findOne({_id: "balancer"});
    if (x == null)
        return true;
    return !x.stopped;
}

1.先处理了configDB不是默认的config库的情况

2.x == null代表了上面的从未设置balancer,默认开启的状况

3.对返回值中的.stopped项进行取反,得到是否正在运行

mongos> sh.isBalancerRunning
function (configDB) {
    if (configDB === undefined)
        configDB = sh._getConfigDB();
    var x = configDB.locks.findOne({_id: "balancer"});
    if (x == null) {
        print("config.locks collection empty or missing. be sure you are connected to a mongos");
        return false;
    }
    return x.state > 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读