我在测试使用Java驱动程序进行MongoDB容错时遇到了问题。
我有一个主/备份MongoDB群集,即server1和server2。当我杀死主服务器server1以模拟故障时,server2会在几秒钟内变为主服务器,并且我的应用程序(使用Java驱动程序访问Mongo)开始使用新的主服务器server2。
当我重新启动server1时,它在几秒钟内重新获得了主要角色,但是我的应用程序不是连接到server1而是尝试连接到server2,由于现在处于辅助状态而失败!所有请求都因此错误而失败:
我正在使用mongodb 2.6和java驱动程序2.12。我没有向我的MongoClient传递任何参数,该MongoClient使用集群的所有节点创建。
欢迎提供任何帮助。
祝好,
Loïc
我有一个主/备份MongoDB群集,即server1和server2。当我杀死主服务器server1以模拟故障时,server2会在几秒钟内变为主服务器,并且我的应用程序(使用Java驱动程序访问Mongo)开始使用新的主服务器server2。
当我重新启动server1时,它在几秒钟内重新获得了主要角色,但是我的应用程序不是连接到server1而是尝试连接到server2,由于现在处于辅助状态而失败!所有请求都因此错误而失败:
com.mongodb.MongoServerSelectionException: Unable to connect to any server that matches {serverSelectors=[ReadPreferenceServerSelector{readPreference=primary}, LatencyMinimizingServerSelector{acceptableLatencyDifference=15 ms}]}
我正在使用mongodb 2.6和java驱动程序2.12。我没有向我的MongoClient传递任何参数,该MongoClient使用集群的所有节点创建。
欢迎提供任何帮助。
祝好,
Loïc