Php Mongodb ReadReference辅助系统不工作?
我使用2个节点mongodb1、mongodb2和1个仲裁器mongodb3设置mongodb副本集。我使用php脚本连接到复制集Php Mongodb ReadReference辅助系统不工作?,php,mongodb,mongodb-php,Php,Mongodb,Mongodb Php,我使用2个节点mongodb1、mongodb2和1个仲裁器mongodb3设置mongodb副本集。我使用php脚本连接到复制集 <?php $conn = new MongoClient("mongodb://admin:123456@mongodb1:27017,mongodb2:27017/?replicaSet=MyRepSet&readPreference=secondary"); $conn->setReadPreference(MongoClient::
<?php
$conn = new MongoClient("mongodb://admin:123456@mongodb1:27017,mongodb2:27017/?replicaSet=MyRepSet&readPreference=secondary");
$conn->setReadPreference(MongoClient::RP_SECONDARY, array());
MongoCursor::$slaveOkay = true;
$db = $conn->test;
$collection = $db->items;
var_dump($collection->findOne());
$conn->close();
?>
假设mongodb1是主要的,mongodb2是次要的。我想要的是,对于读取操作,客户端必须首先连接到mongodb2,如果mongodb2关闭,则可以选择连接到mongodb1
但事实是,当我发现mongolog文件时,我看到客户端的所有操作都是连接到mongodb1(主),而不是我想要的辅助
我错在这里了 没有,您的代码是正确的 不需要:MongoCursor::$slaveook=true 你能给我们一份你的日志摘要吗?
在我的示例中,我看到2个节点上的连接已被接受,但查询很好地发送到辅助节点。在使用命令tail-f查看日志文件并捕获以下行之前,我再次进行了检查:
[initandlisten] connection accepted from IP:PORT #253 (3 connections now open)
我看到这一行插入到primary
日志文件中,所以我猜客户端连接到primary
现在,我使用mongostat
命令,可以看到辅助上的query
语句和主上的insert
语句
太棒了
谢谢