readPreference 选项决定了mongodb会使用哪一个节点(primary or secondary)来满足正在发起的读请求。 readPreference的可选值: (1)primary:只选择主节点 (2)primaryPreferred:优先选择主节点,如果主节点不可用则选择从节点 (3)secondary:只选择从节点 (4)secondaryPreferred:优先选择从
Read preferencesecondaryPreferredsupportshedged readson sharded clusters. nearest Operations read from a random eligiblereplica setmember, irrespective of whether that member is aprimaryorsecondary, based on a specified latency threshold. The operation considers the following when calculating latency: ...
(3)secondary:只从。只从副本集中secondary节点读数据。 (4)secondaryPreferred:先从后主。优先从secondary读取,如果secondary不可用时就从primary读。 (5)nearest:就近。根据网络距离,就近读取,根据客户端与服务端的PingTime是实现。 2、使用readPreference需要知道的一些点 (1)除了primary模式以外的其他模式可能返回的数...
primary:只选择主节点;(默认值) primaryPreferred:优先选择主节点,如果不可用则选择从节点 secondary:只选择从节点 secondaryPreferred:优先选择从节点,如果从节点不可用则选择主节点 nearest:选择最近的节点 readPreference使用场景如下: 这里主要是以一个电商为例: readPreference与tag 当复制集中有个多个secondary时,为了...
primaryPreferred 在大多数情况下,操作将从主节点读取,但如果主节点不可用,则操作将从从节点成员读取。 secondary 所有操作均会从副本集的辅助成员中读取。 secondaryPreferred 操作通常从副本集的从节点成员读取数据。如果副本集只有一个主节点成员,并且没有其他成员,则操作将从主节点成员读取数据。 nearest 根据指定的...
如果希望程序读请求路由到从节点secondary,100秒为节点数据失效时间,此时C# 程序中connectionStr的字符串可以设置如下: string connectionStr = "mongodb://mongousertest:testuserpwd@168.17.XXX.xx1:27017,168.17.XXX.xx2:27017/mongotestdb?replicaSet=repltest&readPreference=secondary&maxStalenessSeconds=100"; ...
find().readPref('nearest', [ { 'dc': 'east' } ]) 虽然nearest 会优先选择网络延迟较低的成员,但包含该标记可以让选择更加可预测。 secondary vs secondaryPreferred 对于特定的专用查询(例如ETL、报告),您可以使用 secondary 读取偏好模式将读取负载从主节点转移。对于这个使用案例,secondary 模式比 secondary...
2.secondary:优先选择副本集中的次要节点进行读取操作。如果没有次要节点可用,则会选择主节点。 3.primaryPreferred:优先选择主节点进行读取操作,如果主节点不可用,则会选择其他副本集成员或分片中的节点。 4.secondaryPreferred:优先选择副本集中的次要节点进行读取操作,如果没有次要节点可用,则会选择主节点。 5.nearest...
在上述代码中,我们通过设置readPreference选项为secondaryPreferred,实现了从副本节点读取数据。 5. 状态图 为了更清楚地理解secondaryPreferred的工作流,我们可以使用状态图展示主节点和副本节点的数据读取过程。 读取请求(转发到副本节点)返回数据数据返回PrimaryNodeSecondaryNodeReadRequestReturnData ...
readPreference 主要控制客户端driver从副本集(Replica Set)读数据的时候如何路由,如下图。这个特性可以方便的配置读写分离、就近去读等策略。 各个配置的含义如下: (1)primary:只主(默认模式)。只从primary节点读数据。 (2)primaryPreferred:先主后从。优先从primary读取,primary不可用时从secondary读。