27019 是什么
27019 是 MongoDB 分片集群中配置服务器在单机多实例场景下的常用端口,与 27018 一样属于社区约定而非官方默认。配置服务器以副本集形态运行,保存整个集群的元数据:有哪些分片、chunk 落在哪、分片键范围如何划分。它不可用时整个分片集群都连不上数据,因此其备份与权限等级应与业务库同等对待,绝不能只备份数据节点。
基本信息
| 服务 | MongoDB 配置服务器(CSRS) |
|---|---|
| 协议 | TCP(元数据存储) |
| 用途 | 分片集群路由元数据 |
| 相关端口 | 27017(常见)、27018(第二实例) |
| 访问方式 | 仅路由组件与运维工具 |
| 安全等级 | 仅集群内网,禁止业务直连 |
典型使用场景
- 分片集群搭建:配置配置服务器副本集并初始化
- 扩容与迁移:chunk 均衡与分片键调整
- 备份策略:把配置服务器纳入备份范围
- 排障:路由组件连接异常时确认配置服务器状态
- 权限治理:确认业务未直连配置服务器
- 版本升级:升级分片集群时的组件顺序与兼容性
分片集群组件与端口
| 组件 | 常见端口 | 职责 |
|---|---|---|
| 路由组件 | 按部署配置 | 业务统一入口 |
| 配置服务器 | 27019(约定) | 集群元数据(副本集) |
| 分片节点 | 按部署配置 | 实际数据存储 |
| 配置服务器 | 独立数据目录 | 与数据节点分开保存 |
分片状态核对
分片状态核对
mongos --eval 'sh.status()' | head -30 # 分片集群状态
mongosh --port 27019 --eval 'rs.status().ok' # 配置服务器副本集状态
mongosh --port 27019 --eval 'db.getSiblingDB("config").chunks.countDocuments({})'
ss -lntp | grep 2701 # 监听核对配置服务器存的是「地图」:数据节点全在但配置服务器丢失时,集群依然无法正常服务,因此备份清单里必须有它。
路由组件可以多实例部署,配置服务器则通常三个节点组成副本集:扩容路由前先确认配置服务器副本集健康,否则扩容后问题依旧。
均衡器是分片集群特有的运维项:长期不检查 chunk 分布时,热点分片会让部分节点负载异常升高。
分片键一旦选定很难更改:上线前评估基数与写入分布,比事后迁移数据省得多。
配置服务器与数据节点的时间要同步:副本集选举与 oplog 判断依赖时间,偏差过大会引起难以解释的状态漂移。