我该如何处理多个服务器MongoDB

时间:2017-01-12 07:19:54

标签: java mongodb tomcat

大家好我刚接触Spring maven项目,我正在使用MongoDB。我想使用两个tomcats / MongoDB这两个IP地址都不同。当第一个DB关闭时,我需要连接第二个DB如何实现  我正在使用以下代码

 public boolean mongoRunningAt(String uri) {
    try {
        Mongo mongo = new Mongo(new MongoURI(uri));
        try {
            Socket socket = mongo.getMongoOptions().socketFactory.createSocket();
            socket.connect(mongo.getAddress().getSocketAddress());
            socket.close();
        } catch (IOException ex) {
            mongo = new Mongo(new MongoURI(uri_second));
         Socket socket = mongo.getMongoOptions().socketFactory.createSocket();
            socket.connect(mongo.getAddress().getSocketAddress());
            socket.close();
            //return false;
        }
        mongo.close();
        return true;
    } catch (UnknownHostException e) {
        return false;
    }
}

使用此代码我尝试第一个成功连接,现在停止第一个DB现在重新启动服务器它与第二个数据库连接。

但是,如果我没有重新启动服务器,它总是指向First ...我应该如何处理这个

提前致谢

1 个答案:

答案 0 :(得分:0)

您部署了2台服务器,它们是replica set。如果没有,您可以点击链接。 当它们已经在副本集中时,您可以使用包含2个服务器的connectionstring

像这样:

mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test