如果集合中的一个db失败,如何使mongodb从复制集中选择辅助mongo

时间:2015-11-06 06:53:17

标签: java mongodb replicaset

我正在尝试从mongodb读取的java应用程序。我正在使用两个辅助mongodbs,如果其中一个db失败,它必须自动启动另一个读取。在测试此代码时,我遇到错误 com.mongodb.MongoTimeoutException:在10000毫秒后等待连接时超时当我停止其中一个辅助数据库(故意崩溃)时。我假设,应用程序没有启动与其他mongo的连接。 我在我的智慧结束,我可以使用一些帮助。这是我的java应用程序的代码片段。

initiated=false;
if(initiated){
            mongoClient.close();
        mongoClient = null;
}
        mongoClient = new MongoClient(serverSeeds);
        if(isSlaveOk()){
            DBObject use = new BasicDBObject("use", "rebel");
            DBObject id = new BasicDBObject("id","1");
            mongoClient.setReadPreference(ReadPreference.secondaryPreferred(use, id));
        }
        db = mongoClient.getDB(getDbName());
        collection = db.getCollection(getDbCollectionName());
        initiated = true;

0 个答案:

没有答案