我有一个分片集群,其中有一个副本集分片,我的应用程序层正在与 mongos 对话,现在如果我的主服务器出现故障,我的 php 应用程序会抛出一个错误。
我知道这是因为我没有setSlaveOkay
通过执行以下操作从驱动程序启用:
MongoCursor::$slaveOkay = true;
问题是,无论我在哪里与 db 交谈,我都必须添加此语句。
有没有办法可以在系统级别启用它?
我尝试rs.slaveok()
在我的主要和次要中都这样做,但我的应用程序层仍然抛出错误。
db.getMongo().setSlaveOk()
我也在mongos 控制台中尝试过
错误说明如下:
PHP Fatal error: Uncaught exception 'MongoCursorException' with message 'dbclient error communicating with server: testserver:10001'