php copy fugai,PHP: 复制集合 - Manual

复制集合

要链接到一个复制,需要指定复制中的一个或多个成员,并使用

"replicaSet" 选项指定复制的名字。多个服务器用逗号分割。

示例 #1 链接到一个复制

<?php // Using multiple servers as the seed list (prefered)$m= newMongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017/?replicaSet=myReplSetName"));// Using one server as the seed list$m= newMongoClient("mongodb://rs1.example.com:27017", array("replicaSet"=>"myReplSetName"));// Using multiple servers as the seed list$m= newMongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017", array("replicaSet"=>"myReplSetName"));?>

驱动会查询数据库服务器列表,然后找出主服务器。如果可以成功的链接到指定的服务器至少一个,并且可以找到主服务器,链接就会成功。如果它无法链接指定的任何一个服务器,或者找不到主服务器,会抛出一个

MongoConnectionException 类型的异常

小技巧

你应该始终指定多个复制中的服务器。为了达到最大的可用性,你指定的服务器列表应该包含每一个数据中心的服务器至少一台。

如果主服务器变为不可用,会有一台次要服务器通过投票算法自动提升为主服务器(除非“投票”无法选出主服务器)。在一段时间里

(» 20-60 秒),链接无法进行写操作,此时写入会导致一个异常。

到次要服务器的链接仍然可以提供读取功能。

注意:

默认的 读取偏好

是只从主服务器读取。在自动选择新的主服务器的时间里,读取操作也会失败。

对于要求很高的读取可用性的应用,推荐使用 MongoClient::RP_PRIMARY_PREFERRED

读取偏好来确保主服务器出现问题的时候能正确的从次要服务器中读取。

当新的主服务器被选出后,尝试读写操作时,驱动会检测新的主服务器。然后链接到它,继续提供正常的功能。

次要服务器的健康状态每5秒(可以通过 mongo.ping_interval

调整),或5秒后的下一个操作执行时检查一次。驱动会在连接服务器出现错误时重新检查配置。

复制集会每60秒(可以通过 mongo.is_master_interval

调整),或在w=1的写入操作发生错误的时候检查故障并尝试恢复。

警告

次要服务器中的操作相比主服务器有一定延迟,因此如果使用

MongoClient::RP_PRIMARY

之外的读取偏好,你的程序就必须能够正确处理过时的数据。

更新日志

版本

说明

1.0.9

添加了复制集支持,和自动错误恢复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值