SETUP:
我有 mongodb 的一个主实例和两个辅助实例。
两个辅助实例之一托管在与我的 Web 应用程序相同的区域中。
我正在使用 pymongo 进行连接。
QUERY:
如何以较低的延迟连接到辅助设备。
目前我正在这样做:
from pymongo import ReplicaSetConnection
from pymongo import ReadPreference
db = ReplicaSetConnection('localhost:27017', replicaSet='rs1')['my_db']
db.read_preference = ReadPreference.SECONDARY
我可以连接到任何一所中学。
如何强制以较低延迟从实例获取连接
Thanks!!
读取偏好如下:
-
PRIMARY:查询被发送到副本集的主节点。
-
PRIMARY_PFERRED:查询将发送到主数据库(如果可用),否则发送到辅助数据库。
-
中学:查询分布在辅助节点之间。如果没有可用的辅助节点,则会引发错误。
-
中学_首选:查询分布在辅助节点之间,如果没有可用的辅助节点,则分布在主节点上。
-
NEAREST:查询分配给所有成员。
所以有no具体的一个为nearest次要的。您可以通过结合 NEAREST 和tag_sets http://docs.mongodb.org/manual/reference/replica-configuration/#tag-setshat并标记次级。
那么如果辅助节点已被标记{'secondaries': 1}
您可以从最近的中学读取,如下所示:
from pymongo import ReplicaSetConnection
from pymongo import ReadPreference
db = ReplicaSetConnection('localhost:27017', replicaSet='rs1')['my_db']
db.read_preference = ReadPreference.NEAREST
db.tag_sets = [{'secondaries': 1}]
Update:
您应该注意,如果发生选举并且副本集的拓扑发生变化,那么您必须手动更改 tag_sets 以表示新的辅助节点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)