Это соединение без задержки:
$connection = new MongoClient("mongodb://localhost:27017", array("replicaSet" => REPLICASET,'username'=>USER, 'password'=>PASSWORD, 'db'=>DATABASE));
Однако это занимает до 10 секунд, когда я добавляю все хосты из набора реплик. Драйвер PHP (1.6.7)
$connection = new MongoClient("mongodb://".HOST_1.":27017,".HOST_2.":27017,".HOST_3.":27018", array("replicaSet" => REPLICASET,'username'=>USER, 'password'=>PASSWORD, 'db'=>DATABASE));
В журнале задержка, по-видимому, находится в каждом соединении. Вот выдержка из журнала:
[22-Jun-2015 12:04:41 Australia/ACT] PHP Notice: CON FINE: Connecting to tcp://ec2-XX-XXX-XXX-XXX.ap-southeast-2.compute.amazonaws.com:27017 (ec2-XX-XXX-XXX-XXX.ap-southeast-2.compute.amazonaws.com:27017;launch;launch/launch/55a850dad20e018890350ece678dc293;15873) with connection timeout: 60.000000 in /home/user/public_html/test.php on line 52
[22-Jun-2015 12:04:47 Australia/ACT] PHP Notice: CON INFO: stream_connect: Not establishing SSL for ec2-XX-XXX-XXX-XXX.ap-southeast-2.compute.amazonaws.com:27017 in /home/user/public_html/test.php on line 52
Когда я ssh на основной сервер и попробую подключиться к терминалу, это также быстро.
mongo --host "launch/host:27017,ec2-XX-XXX-XXX-XXX.ap-southeast-2.compute.amazonaws.com:27017,host2:27018" --authenticationDatabase launch -u USERNAME -p PASSWORD
Почему PHP так долго подключается?
20 июля Обновление:
Я обновил mongo на моем основном сервере до 2,6.10, но на загрузку моей тестовой страницы все равно занимает 5 секунд. Вот как я пытаюсь подключиться:
error_reporting(E_ALL);
MongoLog::setLevel(MongoLog::ALL);
MongoLog::setModule(MongoLog::ALL);
try {
$connection = new MongoClient("mongodb://host1:27017,ec2host1:27017,ec2arbiterhost:27017", array("replicaSet" => "setname",'username'=>USER, 'password'=>PASSWORD, 'db'=>DATABASE));
echo 'connected';
} catch (MongoConnectionException $e) {
die("Unable to connect to database [code: " . $e->getCode() . "]");
}
Любая помощь будет оценена.