【MongoDB】副本集的读偏好

1.mongodb的五种读取偏好

该读取偏好通常通过应用程序在连接时设置。

mongodb支持以下读取偏好。
Primary:默认模式,所有的读取请求都路由到主节点。
primaryPreferred:优先从主节点去取,主节点不可用时从辅助节点读取。
secondary:从辅助成员读取。
SecondaryPreferred:优先从辅助节点读取,辅助节点不可用从主节点读取。
nearest:从最近的副本集成员读取。

2.通过读取偏好,可以实现读写分离,降低主节点的压力。

java实现如下 

const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb://localhost:27017,localhost:27018,localhost:27019/?replicaSet=rs0";
const client = new MongoClient(uri);
 
async function run() {
  try {
    await client.connect();
    const db = client.db('myDatabase');
    const collection = db.collection('myCollection');
 
    // 设置为只从主节点读取
    const primaryReadPreference = collection.withReadPreference('primary');
    
    // 设置为主节点优先,如果主节点不可用则从从节点读取
    const primaryPreferredReadPreference = collection.withReadPreference('primaryPreferred');
    
    // 设置为只从从节点读取
    const secondaryReadPreference = collection.withReadPreference('secondary');
    
    // 设置为从节点优先,如果没有从节点可读则读取主节点
    const secondaryPreferredReadPreference = collection.withReadPreference('secondaryPreferred');
    
    // 设置为按网络延迟读取
    const nearestReadPreference = collection.withReadPreference('nearest');
 
    // 从设置的偏好读取数据
    const result = await primaryReadPreference.find({}).toArray();
    console.log(result);
  } finally {
    await client.close();
  }
}
 
run().catch(console.dir);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值