问题描述
我构建了一个地理冗余的副本集mongodb服务(每个站点3个站点,每个站点3个成员),并使用Java驱动程序(异步v3.6.4)来操作mongo。一切正常,直到一个站点网络接口关闭,整个应用程序开始等待与该站点的连接重新启用。
我试图通过cli删除无法访问的主机,然后重新启动Web应用程序以使Web应用程序正常工作。我的问题是,为什么mongo java驱动程序无法自动重新连接到其他站点的mongo主机,所以工作正常?我是否需要将任何参数传递给ClusterSettings,ConnectionPoolSettings或SocketSettings来启用au-reconnect到正常运行的主机?
我的代码如下:
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);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)