文档数据库 MongoDB 版支持只读节点功能,只读节点可以提供单独的连接地址,适合独立系统和应用进行直连访问,扩展主从节点读请求能力,帮助分担主从节点数据读取压力。
大量读请求会给 MongoDB 的主从节点带来极大的数据读取压力,可能会导致业务请求延时高、响应慢等问题。为分担主从节点的数据读取请求,MongoDB 提供了具备独立地址的只读节点(ReadOnly Node),您可以在创建 MongoDB 实例时根据业务需要添加只读节点,满足业务读写分离需求,减轻主从节点的访问压力。
限制类型 | 说明 |
---|---|
实例或组件限制 | 当前仅副本集实例和分片集群实例中 Shard 分片支持添加只读节点。 |
连接地址限制 |
|
数量限制 | MongoDB 实例类型不同,支持添加的只读节点数量不同。其中:
|
变更配置限制 |
更多关于变更实例配置的更多详情,请参见变更实例配置。 |
其他限制 |
|
文档数据库 MongoDB 版当前支持 4 种类型的节点:主节点、从节点、隐藏节点和只读节点。不同类型节点的使用场景和注意事项不同,具体区别如下表所示。
节点类型 | 使用场景 | 注意事项 |
---|---|---|
主节点(Primary Node) | 也称主库,可提供读写功能。集群状态正常时,来自客户端的所有数据都会写入主节点。 |
|
从节点(Secondary Node) | 保障高可用,通过 oplog(操作日志)同步主节点的数据,可在主节点故障时通过选举成为新的主节点。 |
|
隐藏节点(Hidden Node) | 仅用于保障高可用,对用户不可见。通过 oplog 同步主节点的数据,可在从节点故障时接替该故障节点成为新的从节点保障高可用。 |
|
只读节点(ReadOnly Node) | 主要适用于数据量极大的读请求场景,其通过操作日志(oplog)从主节点或从节点同步数据,系统将读请求自动路由至只读节点,以减轻主节点访问压力。 |
|
单个只读节点的价格与副本集实例或者分片集群实例 Shard 中对应规格的单节点价格一致。关于 MongoDB 单节点的价格详情,请参见计费项与价格。
说明
MongoDB 只读节点连接地址格式如下。
mongodb://<user>:<password>@<host1>:3717,<host2>:3717,...,<hostN>:3717/?authSource=admin&readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=<replicaSetId>&retryWrites=true
连接地址中相关参数说明如下表。
参数 | 是否必填 | 说明 | 示例 |
---|---|---|---|
<user> | 必填 | 数据库账号的名称。 | root |
<password> | 必填 | 数据库账号的密码。 | Pwd_123456 |
| 必填 | 只读节点所对应的域名和端口号,默认端口号为 3717。
|
|
| 必填 | 设置鉴权数据库名称,默认鉴权数据库为 |
|
| 选填 | 用于实现只读节点地址的读写分离和负载均衡。该参数可以将写请求发送到主节点,读请求随机发送到从节点和只读节点,可选取值如下:
说明 关于 |
|
| 选填 | 该参数可以将读请求优先发送到标签对应的只读节点。固定取值为 说明 关于 |
|
replicaSet | 必填 | 该参数可以将读请求发送到副本集实例或分片集群实例中当前 Shard 分片的所有节点,取值为实例高可用连接地址的唯一标识 ID。 | replicaSet=rs-mongo-replica-e047fe003**** |
retryWrites | 必填 | 文档数据库 MongoDB 版在每个连接地址的最后都默认添加了 &retryWrites=true 字段,来保证重连机制。 | retryWrites=true |
包含只读节点的完整连接地址示例如下:
副本集实例
mongodb://root:Pwd_123456@mongoreplicae047fe00****100.mongodb.ivolces.com:3717,mongoreplicae047fe00****200.mongodb.ivolces.com:3717/?authSource=admin&readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=rs-mongo-replica-e047fe00****&retryWrites=true
分片集群实例(Shard 分片)
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