Java 如何处理多服务器MongoDB

Java 如何处理多服务器MongoDB,java,mongodb,tomcat,Java,Mongodb,Tomcat,大家好,我是SpringMaven项目的新手,我正在使用MongoDB。我想使用两个Tomcat/MongoDB,它们的IP地址都不同。当第一个DB关闭时,我需要连接第二个DB,这是如何可能的 我正在使用以下代码 public boolean mongoRunningAt(String uri) { try { Mongo mongo = new Mongo(new MongoURI(uri)); try { Socket soc

大家好,我是SpringMaven项目的新手,我正在使用MongoDB。我想使用两个Tomcat/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,现在重新启动服务器,它与第二个DB连接

但若我并没有重新启动服务器,它总是只指向第一个。。。我该怎么做呢


提前感谢

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

像这样:

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

您好,Hoefmeister,您是说我尝试使用相同的代码,而不是像这样使用UIR“mongodb:127.0.0.1128.0.0.2:27017”?连接到副本集时,您不需要检查服务器是否联机。只需连接到副本集。您的服务器确实需要位于副本集中。您需要自己监控副本集(服务器的状态)。这取决于您在哪里托管服务器的方式。