- 文档首页
文档数据库 MongoDB 版
用户指南
实例管理
管理只读节点
管理只读节点
文档数据库 MongoDB 版支持只读节点功能,只读节点可以提供单独的连接地址,适合独立系统和应用进行直连访问,扩展主从节点读请求能力,帮助分担主从节点数据读取压力。
功能简介
大量读请求会给 MongoDB 的主从节点带来极大的数据读取压力,可能会导致业务请求延时高、响应慢等问题。为分担主从节点的数据读取请求,MongoDB 提供了具备独立地址的只读节点(Read-only node),您可以在创建 MongoDB 实例时根据业务需要添加只读节点,满足业务读写分离需求,减轻主从节点的访问压力。
功能优势
- 通过操作日志(Oplog)从延迟最低的主节点(Primary node)或从节点(Secondary node)同步数据,应用于有大量读请求的场景,以减轻主从节点的访问压力。
- 当存在 2 个或以上只读节点时,可以通过只读节点连接地址实现读请求负载均衡。关于只读连接地址的更多详情,请参见只读节点地址。
- 只读节点具有独立的连接地址,且与已有主从节点的连接互不干扰,适合独立系统和应用进行直连访问。
- 只读节点与主从节点采用一致的节点规格,自动从延迟最低的主节点或从节点同步数据,无需额外维护。
使用限制
不同类型的节点对比
文档数据库 MongoDB 版当前支持 4 种类型的节点:主节点、从节点、隐藏节点和只读节点。不同类型节点的使用场景和注意事项不同,具体区别如下表所示。
计费说明
单个只读节点的价格与副本集实例或者分片集群实例 Shard 中对应规格的单节点价格一致。关于 MongoDB 单节点的价格详情,请参见计费项与价格。 只读节点地址
说明
- 仅当实例中存在只读节点时,您才可以看到只读节点的连接地址。
- 通过只读节点地址连接实例时,读请求将只会发送到只读节点。
- 当实例中的某个只读节点出现故障时,读请求会自动切换到下一个只读节点,不会影响应用的读操作。如果所有的只读节点都出现了故障,读请求会执行失败。
MongoDB 只读节点连接地址格式如下。
mongodb://<user>:<password>@<host1>:3717,<host2>:3717,...,<hostN>:3717/?authSource=admin&readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=<replicaSetId>&retryWrites=true
连接地址中相关参数说明如下表。
只读连接地址示例。
将读请求路由到副本集只读节点的连接地址示例如下。
mongodb://root:Pwd_123456@mongoreplicae047fe00****0100.mongodb.ivolces.com:3717/?authSource=admin&readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=rs-mongo-replica-e047fe00****&retryWrites=true
将读请求路由到分片集群实例中 Shard 分片(以 Shard 0 分片为例)只读节点的连接地址示例如下。
mongodb://root:Pwd_123456@mongoshard9a2ab41e****s00.mongodb.ivolces.com:3717,mongoshard9a2ab41e****s01.mongodb.ivolces.com:3717,mongoshard9a2ab41e****s0100.mongodb.ivolces.com:3717/?authSource=admin&readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=rs-mongo-shard-9a2ab41e****-s0&retryWrites=true
说明
虽然分片集群实例仅支持在 Shard 分片中使用只读节点,但您可以在 Mongos 连接地址中通过 readPreferenceTags=role:readonly 参数,将读请求路由到只读节点。
分片集群实例中 Mongos 只读连接地址示例如下。
mongodb://<user>:<password>@mongoshard9a2ab41e****0.mongodb.ivolces.com:3717,mongoshard9a2ab41e****1.mongodb.ivolces.com:3717/?authSource=admin&readPreference=secondary&readPreferenceTags=role:readonly&retryWrites=true
使用只读节点
- 您可以在创建实例或恢复实例时,直接为新建实例添加只读节点,具体操作步骤,请参见:
- 实例创建成功后,您还可以变更实例的只读节点数量,包括添加和删除只读节点。具体操作步骤,请参见添加或删除只读节点。
最近更新时间:2026.09.14 16:01:34