我在 pymongo 3.4.0 上将以下连接字符串与 MongoClient 一起使用:
client = MongoClient("mongodb://username:password@10.0.5.170:27017,10.0.5.222:27017,10.0.6.16:27017/?replicaSet=enterprise", connect=False)
当我关闭我的主节点并尝试执行任何 CRUD 操作时,我收到一个 pymongo.errors.NetworkTimeout 错误。但是,当我使用相同的 uri 创建一个新的 MongoClient 并重试时,这个错误就会消失。如何确保无缝故障转移?
这是在主节点上运行的 db.isMaster() 的输出
{
"hosts" : [
"10.0.5.170:27017",
"10.0.5.222:27017",
"10.0.6.16:27017"
],
"setName" : "enterprise",
"setVersion" : 1,
"ismaster" : true,
"secondary" : false,
"primary" : "10.0.5.170:27017",
"me" : "10.0.5.170:27017",
"electionId" : ObjectId("7fffffff0000000000000001"),
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 1000,
"localTime" : ISODate("2017-02-14T17:38:38.647Z"),
"maxWireVersion" : 4,
"minWireVersion" : 0,
"ok" : 1
}