为什么 mongo pecl 模块在 Primary stepDown 之后失去连接?

为什么 mongo pecl 模块在 Primary stepDown 之后失去连接?

我运行带有 pecl 模块“mongo 1.4.4”的 Apache 2.2.22-13。它连接到 MongoDB 2.4.6 分片集群。

当发生 stepDown 时,mongo 模块似乎停留在主 mongod 节点上,并显示:“PHP 致命错误:未捕获异常‘MongoCursorException’,消息为‘node1.mongodb.cluster:27017:远程服务器已关闭连接’...

为了建立连接,我尝试了以下两种方法:

$m = new MongoClient('mongodb://mongod0.mongodb.cluster, mongod1.mongodb.cluster, mongod2.mongodb.cluster, mongod3.mongodb.cluster', array("replicaSet" => "myrs"));

$m = new MongoClient('mongodb://mongos.mongodb.cluster', array("replicaSet" => "myrs"));

在 stepDown 之后,两种方式都会给出相同的错误消息。

对于第一个连接字符串,重新启动 Apache 就足以让一切恢复正常。对于最后一个连接字符串,重新启动却不行:我不再收到任何错误消息,但应该来自 MongoDB 的数据仍然缺失。

提前致谢,

格雷格。

答案1

我将 mongo pecl 模块从 1.4.5 升级到了 1.5.8。此问题已修复。

相关内容