PHP MongoClient подключиться к набору реплик Mongodb, о строке подключения

Соединение PHP с набором реплик MongoDB завершается неудачно после удаления основного узла.

Я построил набор реплик mongodb с пятью узлами; mongo1 является первичным, а все остальные вторичны.

Вот мой код подключения:

$dbmongo_name = "myDatabase";
$dbmongo_conn_str = "mongodb://myusername:[email protected]:27017,mongo2.mysite.net@27017,mongo3.mysite.net@27017,mongo4.mysite.net@27017,mongo5.mysite.net@27017";
$dbmongo_conn_options = array("db" => $dbmongo_name, "replicaSet" => "rs1", "readPreference" => "secondaryPreferred", "connectTimeoutMS" => 5000);

class DB_Mongo {
global $dbmongo_conn_str, $dbmongo_conn_options;
public $connection;

function __construct() {
$this->connection = new MongoClient($dbmongo_conn_str, $dbmongo_conn_options);

}
}

Я обнаружил, что всякий раз, когда я останавливаю службу первого сервера в строке соединения (в настоящее время это mongo1), драйвер php либо выдаст ошибку исключения соединения, либо не выдаст какую-либо ошибку, кроме свойства подключенного соединения объект будет ложным.

Похоже, что php драйвер не может правильно подключиться к реплике.

Я попробовал другой эксперимент, меняя положение серверов. На этот раз моя строка подключения:

$dbmongo_conn_str = "mongodb://myusername:[email protected]:27017,mongo2.mysite.net@27017,mongo1.mysite.net@27017,mongo4.mysite.net@27017,mongo5.mysite.net@27017";

В этом случае mongo1 по-прежнему является основным; ошибка повторяется, когда я останавливаю службу mongo3. Кажется, что все будет хорошо, пока я не остановлю службу первого сервера в списке.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]