所以我有一个由3个mongo副本集组成的集群。主(主)在rs1,而rs2和rs3是次要的。
但是,主服务器可能会发生变化,例如,由于某些配置问题,rs2可能在任何给定的时间成为主服务器。因此,我需要能够连接到适当的副本集。
假设它们位于rs1=10.1.1.1
、rs2=10.1.1.2
和{
mongoserver_uri = "mongodb://{0}:{1}@{2}:{3}/admin".format(
username, password, host, port)
self.log.info("------- Mongo Server URI: %s --------" % mongoserver_uri)
self.client = pymongo.MongoClient(host=mongoserver_uri, ssl=True,
ssl_cert_reqs=ssl.CERT_NONE)
但是,如前所述,如果副本集primary更改为rs3
,那么我将无法连接到Mongo:
如何将其他副本集指定给MongoClient
?在
在您的MongoClient中,您需要告诉pymongo您正在连接到一个副本集,以便它能够发现集合https://api.mongodb.com/python/current/examples/high_availability.html#id1中的所有成员
From the docs
只要您连接到的服务器最初是联机的,MongoClient就会找到复制集的所有成员,并在故障转移时自动尝试查找新的主服务器。在
相关问题 更多 >
编程相关推荐