Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mongodb副本集成员网络无法访问时无限等待_Java_Mongodb_Replicaset - Fatal编程技术网

Java mongodb副本集成员网络无法访问时无限等待

Java mongodb副本集成员网络无法访问时无限等待,java,mongodb,replicaset,Java,Mongodb,Replicaset,我构建了一个地理上冗余的副本集mongodb服务(3个站点,每个站点3个成员),并使用java驱动程序(async v3.6.4)操作mongo。一切正常,直到一个站点的网络接口关闭,整个应用程序都在等待与该站点的连接重新启用 我试图通过cli删除无法访问的主机,并重新启动web应用程序以使web应用程序正常工作。我的问题是,为什么mongo java驱动程序无法自动重新连接到其他站点的mongo主机,而这一切正常?我是否需要将任何参数传递给ClusterSettings、ConnectionP

我构建了一个地理上冗余的副本集mongodb服务(3个站点,每个站点3个成员),并使用java驱动程序(async v3.6.4)操作mongo。一切正常,直到一个站点的网络接口关闭,整个应用程序都在等待与该站点的连接重新启用

我试图通过cli删除无法访问的主机,并重新启动web应用程序以使web应用程序正常工作。我的问题是,为什么mongo java驱动程序无法自动重新连接到其他站点的mongo主机,而这一切正常?我是否需要将任何参数传递给ClusterSettings、ConnectionPoolSettings或SocketSettings以启用au重新连接到工作主机

我的代码如下:

        ClusterSettings clusterSettings
                = ClusterSettings.builder().hosts(servers).build();
        ConnectionPoolSettings connectionSettings
                = ConnectionPoolSettings.builder()
                .maxSize(512)
                .minSize(64)
                .maxWaitQueueSize(512).build();
        MongoClientSettings settings = MongoClientSettings.builder()
                .clusterSettings(clusterSettings)
                .connectionPoolSettings(connectionSettings)
                .writeConcern(WriteConcern.JOURNALED)
                .readPreference(ReadPreference.secondaryPreferred())
                .readConcern(ReadConcern.LOCAL)
                .build();
        mongoClient = MongoClients.create(settings);