MongoDB 副本集没有读写分离吗,读写都是在主库,是设计就这样,还是部署得有问题
HAP 的工作表、工作流、关联记录和权限等业务环节,可能在数据写入后立即再次读取。MongoDB 副本集的从节点通过异步复制获取数据,如果将在线业务查询统一分流到从节点,就可能出现“写入成功,但随后的查询仍读到旧数据或查不到记录”,影响页面展示和业务判断。因此,当前 HAP 不支持对在线业务直接启用通用的 MongoDB 读写分离;副本集主要用于高可用和故障切换。若目的是缓解数据库压力,我们建议先评估索引、资源配置及按业务模块拆分 MongoDB 集群,而不是直接把业务读取切到从节点。
HAP 的工作表、工作流、关联记录和权限等业务环节,可能在数据写入后立即再次读取。MongoDB 副本集的从节点通过异步复制获取数据,如果将在线业务查询统一分流到从节点,就可能出现“写入成功,但随后的查询仍读到旧数据或查不到记录”,影响页面展示和业务判断。因此,当前 HAP 不支持对在线业务直接启用通用的 MongoDB 读写分离;副本集主要用于高可用和故障切换。若目的是缓解数据库压力,我们建议先评估索引、资源配置及按业务模块拆分 MongoDB 集群,而不是直接把业务读取切到从节点。
根据检索到的知识库内容,关于 MongoDB 副本集的读写分离问题,目前 HAP 帮助文档中主要涉及的是数据集成同步场景下的副本集配置和故障排查,没有直接说明 MongoDB 副本集本身的读写分离架构机制。
知识库中关于 MongoDB 副本集的已知信息
副本集同步要求:
rs.status()命令验证副本集状态CDC 同步要求:
db.printReplicationInfo()检查关于读写分离问题
知识库中没有直接说明 MongoDB 副本集的读写分离机制。您描述的"读写都在主库"的情况,可能涉及以下方面:
副本集配置是否正确:需要确认副本集已正确开启,主从节点角色正常
连接配置问题:在数据集成场景中,需要确保连接到正确的节点(如分片集群应连接 mongos 路由而非单个 shard)
读偏好设置:MongoDB 副本集默认读操作在主节点,但可以通过配置读偏好(Read Preference)来实现从从节点读取,但这需要在应用层或连接字符串中配置。
参考文档:
未找到相关工单