如何连接副本集实例实现读写分离和高可用

云数据库 DocDB for MongoDB MONGODB

  • 功能发布记录
  • 产品描述
    • 实例规格
    • 产品特性
    • 系统架构
    • 应用场景
    • 产品术语
    • 概述
  • 重要通知
    • 品牌升级
  • 快速入门
    • 副本集实例快速入门
    • 分片集实例快速入门
  • 典型实践
    • MongoDB数据迁移典型实践
    • MongoDB数据安全典型实践
    • MongoDB监控报警典型实践
    • 如何连接副本集实例实现读写分离和高可用
    • MongoDB使用典型实践
    • MongoDB参数配置典型实践
  • 操作指南
    • 开通服务
    • 参数配置
      • 参数说明
      • 参数修改记录查询
      • 查询参数
      • 修改参数
    • 日志管理
      • 查询运行日志
      • 审计日志
        • 关闭审计日志
        • 开通审计日志
        • 查询审计日志
      • 慢日志
        • 查询慢日志
        • 关闭慢日志
        • 开通慢日志
      • 错误日志
        • 关闭错误日志
        • 开通错误日志
        • 查询错误日志
    • 监控与报警
      • 设置报警规则
      • 监控项说明
      • 查看监控信息
    • 公网访问
      • 释放公网访问
      • 申请公网访问
    • 实例管理
      • 重启实例
      • 迁移可用区
      • 回收站和释放实例
      • 改配实例
        • 改配分片集实例
        • 改配副本集实例
        • 改配方案概览
      • 创建实例
        • 创建副本集实例
        • 创建分片集实例
    • 数据安全
      • 透明加密
      • 使用Mongo Shell通过SSL加密连接数据库
      • 设置SSL加密
      • 白名单管理
    • 连接实例
      • 通过MongoShell连接分片集实例
      • 通过公网连接MongoDB实例
      • 通过MongoShell连接副本集实例
      • 通过程序代码连接MongoDB实例
    • 数据备份
      • 开启增量备份
      • 设置自动备份MongoDB数据
      • MongoDB数据备份方案概览
      • 手动备份MongoDB数据
    • 同城容灾
      • 创建多可用区分片集群实例
      • 创建多可用区副本集群实例
    • 帐号管理
      • 多用户访问控制
      • 重置密码
    • 主从切换
      • 副本集实例设置主从切换
      • 分片集设置主从切换
    • 计费管理
      • 手动续费包年包月实例
      • 预付费转后付费
      • 后付费转预付费
      • 开通或关闭自动续费包年包月实例
      • 取消预付费转后付费
    • 标签管理
      • 绑定已有标签
      • 新建标签
      • 根据标签筛选实例
      • 解绑删除标签
    • 数据恢复
      • 物理备份恢复至自建数据库
      • 按时间点恢复至新实例
      • 逻辑备份恢复至自建数据库
      • MongoDB数据恢复方案概览
      • 从备份点创建实例
  • 服务等级协议SLA
    • 服务等级协议SLA
  • API参考
    • 其他接口说明
    • 调用说明
    • 附录
    • API简介
    • 按时间点恢复相关接口
      • 获取可恢复的时间区间
    • 权限管理相关接口
      • 查看用户数据库列表
      • 创建用户数据库
      • 查看用户列表
      • 删除用户
      • 删除用户数据库
      • 更新用户权限
      • 创建用户
    • 备份相关接口
      • 更改备份策略
      • 创建备份
      • 查询备份列表
      • 更改备份备注
      • 查询备份策略
      • 查询备份详情
      • 删除备份
    • 日志管理相关接口
      • 开通运行日志
      • 查询运行日志列表
    • 实例相关接口
      • 副本集实例添加只读节点
      • 重启实例
      • 迁移可用区
      • 修改账号密码
      • 重启分片集实例组件
      • 分片集实例组件改配
      • 更改实例名称
      • 回收站和释放实例
      • 副本集实例改配
      • 分片集实例组件主从切换
      • 获取只读节点列表
      • 更改分片集实例组件名称
      • 查询实例列表
      • 新增分片集实例组件
      • 计费停服和启动服务
      • 副本集实例主从切换
      • 创建副本集实例
      • 创建分片集实例
      • 查询实例详情
    • 白名单相关接口
      • 删除白名单
      • 查询白名单
      • 添加白名单
  • 常见问题
    • 产品使用问题
    • 运维类问题
    • 常见问题总览
  • 产品定价
    • 计费变更
    • 产品定价
  • SDK
    • GO-SDK
      • 标签管理
      • 日志管理
      • 白名单管理
      • 初始化
      • 实例管理
      • 备份管理
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

云数据库 DocDB for MongoDB MONGODB

  • 功能发布记录
  • 产品描述
    • 实例规格
    • 产品特性
    • 系统架构
    • 应用场景
    • 产品术语
    • 概述
  • 重要通知
    • 品牌升级
  • 快速入门
    • 副本集实例快速入门
    • 分片集实例快速入门
  • 典型实践
    • MongoDB数据迁移典型实践
    • MongoDB数据安全典型实践
    • MongoDB监控报警典型实践
    • 如何连接副本集实例实现读写分离和高可用
    • MongoDB使用典型实践
    • MongoDB参数配置典型实践
  • 操作指南
    • 开通服务
    • 参数配置
      • 参数说明
      • 参数修改记录查询
      • 查询参数
      • 修改参数
    • 日志管理
      • 查询运行日志
      • 审计日志
        • 关闭审计日志
        • 开通审计日志
        • 查询审计日志
      • 慢日志
        • 查询慢日志
        • 关闭慢日志
        • 开通慢日志
      • 错误日志
        • 关闭错误日志
        • 开通错误日志
        • 查询错误日志
    • 监控与报警
      • 设置报警规则
      • 监控项说明
      • 查看监控信息
    • 公网访问
      • 释放公网访问
      • 申请公网访问
    • 实例管理
      • 重启实例
      • 迁移可用区
      • 回收站和释放实例
      • 改配实例
        • 改配分片集实例
        • 改配副本集实例
        • 改配方案概览
      • 创建实例
        • 创建副本集实例
        • 创建分片集实例
    • 数据安全
      • 透明加密
      • 使用Mongo Shell通过SSL加密连接数据库
      • 设置SSL加密
      • 白名单管理
    • 连接实例
      • 通过MongoShell连接分片集实例
      • 通过公网连接MongoDB实例
      • 通过MongoShell连接副本集实例
      • 通过程序代码连接MongoDB实例
    • 数据备份
      • 开启增量备份
      • 设置自动备份MongoDB数据
      • MongoDB数据备份方案概览
      • 手动备份MongoDB数据
    • 同城容灾
      • 创建多可用区分片集群实例
      • 创建多可用区副本集群实例
    • 帐号管理
      • 多用户访问控制
      • 重置密码
    • 主从切换
      • 副本集实例设置主从切换
      • 分片集设置主从切换
    • 计费管理
      • 手动续费包年包月实例
      • 预付费转后付费
      • 后付费转预付费
      • 开通或关闭自动续费包年包月实例
      • 取消预付费转后付费
    • 标签管理
      • 绑定已有标签
      • 新建标签
      • 根据标签筛选实例
      • 解绑删除标签
    • 数据恢复
      • 物理备份恢复至自建数据库
      • 按时间点恢复至新实例
      • 逻辑备份恢复至自建数据库
      • MongoDB数据恢复方案概览
      • 从备份点创建实例
  • 服务等级协议SLA
    • 服务等级协议SLA
  • API参考
    • 其他接口说明
    • 调用说明
    • 附录
    • API简介
    • 按时间点恢复相关接口
      • 获取可恢复的时间区间
    • 权限管理相关接口
      • 查看用户数据库列表
      • 创建用户数据库
      • 查看用户列表
      • 删除用户
      • 删除用户数据库
      • 更新用户权限
      • 创建用户
    • 备份相关接口
      • 更改备份策略
      • 创建备份
      • 查询备份列表
      • 更改备份备注
      • 查询备份策略
      • 查询备份详情
      • 删除备份
    • 日志管理相关接口
      • 开通运行日志
      • 查询运行日志列表
    • 实例相关接口
      • 副本集实例添加只读节点
      • 重启实例
      • 迁移可用区
      • 修改账号密码
      • 重启分片集实例组件
      • 分片集实例组件改配
      • 更改实例名称
      • 回收站和释放实例
      • 副本集实例改配
      • 分片集实例组件主从切换
      • 获取只读节点列表
      • 更改分片集实例组件名称
      • 查询实例列表
      • 新增分片集实例组件
      • 计费停服和启动服务
      • 副本集实例主从切换
      • 创建副本集实例
      • 创建分片集实例
      • 查询实例详情
    • 白名单相关接口
      • 删除白名单
      • 查询白名单
      • 添加白名单
  • 常见问题
    • 产品使用问题
    • 运维类问题
    • 常见问题总览
  • 产品定价
    • 计费变更
    • 产品定价
  • SDK
    • GO-SDK
      • 标签管理
      • 日志管理
      • 白名单管理
      • 初始化
      • 实例管理
      • 备份管理
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 云数据库 DocDB for MongoDBMONGODB
  • arrow
  • 典型实践
  • arrow
  • 如何连接副本集实例实现读写分离和高可用
本页目录
  • 使用须知
  • Connection String连接说明
  • 使用Connection String连接示例

如何连接副本集实例实现读写分离和高可用

更新时间:2025-08-21

MongoDB副本集实例通过多个数据副本来保证数据的高可靠,通过主从切换机制来保证服务的高可用。需要注意的是,您需要使用正确的方法连接副本集实例来保障高可用,您也可以通过设置来实现读写分离。

使用须知

  • 副本集实例的Primary节点并不是固定的。当遇到副本集轮流升配、Primary节点宕机、网络分区等场景时可能会发生主从切换来保障整体的可用性,副本集可能会选举一个新的Primary节点,原先的Primary节点会降级为Secondary节点。
  • 若只使用Primary节点的地址直接连接Primary节点,所有的读写操作均在Primary节点完成,造成该节点压力较大。而且如果副本集实例发生主从切换,您连接节点的角色将发生变化,从而会对写入操作造成影响。

Connection String连接说明

要正确连接副本集实例,您需要先了解下MongoDB的Connection String URI。

Plain Text
1mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

说明:

  • mongodb://:前缀,代表这是一个Connection String。
  • username:password@:登录数据库的用户和密码信息,初始账号为root。如果启用了鉴权,需要指定密码。
  • hostX:portX:副本集成员节点的连接地址:端口信息,多个成员以逗号分割。
  • /database:鉴权数据库名,即数据库账号所属的数据库。当数据库账号为root时,对应的数据库为admin。
  • ?options:指定额外的连接选项。

使用Connection String连接示例

云数据库MongoDB实例提供了Connection String URI连接方式。

1.获取副本集实例Connection String URI 连接信息,详情请参见通过MongoShell连接副本集实例

94c1a6288415e1de9aa8d3ecfc91112b.png

121a3f9a0c4c0300d9e400279a3572ec.png

2.业务应用程序设置使用Connection String URI来连接实例,详情请参见通过程序代码连接MongoDB实例

说明:要实现读写分离,需要在Connection String URI的options里添加readPreference选项,例如设置读请求为Secondary节点优先。更多读选项请参见Read preferences。

示例

Plain Text
1mongo "mongodb://root:****@XQgIftoqm.mongodb.bj.baidubce.com:27017,XQgIft8n4.mongodb.bj.baidubce.com:27017/admin?replicaSet=rep-zNo2RD&readPreference=secondaryPreferred"

通过上述Connection String URI来连接MongoDB副本集实例,读请求将优先发给Secondary节点实现读写分离。同时业务应用程序会自动检测节点的主从关系,当主从关系发生变化时,自动将写操作切换到新的Primary节点上,以保证服务的高可用。

上一篇
MongoDB监控报警典型实践
下一篇
MongoDB使用典型实践