1
在我的应用程序中,我试图优雅地处理由于某些原因(例如DC之间的连接中断)而导致主服务器不可用的情况。在这种情况下,应该在前端禁用写操作,并且缓存数据库应该用于某些读取操作。有没有什么办法可以检查主/主在pymongo中不可用
我试过使用rs.status()
命令。它适用于mongo
外壳,但当主控制器不可用时,它不起作用,因为replSetGetStatus
命令不在列表中rp.secondary_ok_commands
。因此我得到了异常:
AutoReconnect:没有副本集主要可用于ReadPreference PRIMARY查询。
因为我可以处理这个异常,但它是在超时后(在我的情况下是10秒)产生的。但对我来说太长了。我更喜欢立即回应,如果有时它会不正确,我也可以。
谢谢。这对我很有好处,尽管主控不可用时需要一秒钟的时间。 – user1441388
好点。如果alive()没有尝试实际连接到主节点,那将会更好。我在PyMongo的下一个版本[提交的问题,PYTHON-615(https://jira.mongodb.org/browse/PYTHON-615),以固定活()的行为。 –