【发布时间】:2015-10-24 21:48:03
【问题描述】:
我使用 mongo cli 创建了以下 mongo 副本集:
> config = { _id:"repset", members:[{_id:0,host:"192.168.0.1:27017"},{_id:1,host:"192.168.0.2:27017"},{_id:2,host:"192.168.0.3:27017"}]}
> rs.initiate(config);
所有的mongo服务器都运行正常。
>>> import pymongo
>>> from pymongo import MongoClient
>>> servers = ["192.168.0.1:27017", "192.168.0.2:27017", "192.168.0.3:27017"]
>>> MongoClient(servers)
>>> xc = MongoClient()
>>> print xc
MongoClient('localhost', 27017)
>>> print xc.database_names()
[u'test_repsets', u'local', u'admin', u'test']
杀死本地 mongodb 服务器后,它显示连接超时错误:
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused
似乎没有自动故障转移,虽然我定义了 mongodb 服务器。 我想知道 pymongo 是否会自动处理故障转移,或者如何正确处理这种情况?
提前谢谢你。
【问题讨论】:
-
你用的是什么版本的pymongo?
-
pymongo==3.0.3 我想我在这里犯了错误:xc = MongoClient() 应该是 xc = MongoClient(servers)。然后它工作正常。