【NoSQL】mongo_detail.py中均衡器信息的处-创新互联

【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,
    "activeWindow" : {
        "start" : "00:00",
        "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;
}

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:【NoSQL】mongo_detail.py中均衡器信息的处-创新互联
转载源于:http://myzitong.com/article/jdppj.html