MongoDB配置Ubuntu集群有哪些要点
导读:MongoDB 在 Ubuntu 上的集群配置要点 一、架构与规划 明确目标架构:高可用优先用副本集(Replica Set);超大规模与水平扩展采用分片集群(Sharding)。 分片集群三大组件: Shard:承载数据子集,生产环境...
MongoDB 在 Ubuntu 上的集群配置要点
一、架构与规划
- 明确目标架构:高可用优先用副本集(Replica Set);超大规模与水平扩展采用分片集群(Sharding)。
- 分片集群三大组件:
- Shard:承载数据子集,生产环境每个分片必须是副本集(常见为3 成员)。
- Config Server:存储集群元数据,必须部署为3 节点副本集(CSRS)。
- mongos:查询路由器,客户端入口,可部署多个以实现负载均衡与高可用。
- 规模建议:生产环境优先选择3 分片 × 每个分片 3 节点副本集,并部署2 个及以上 mongos。
二、主机与网络
- 使用DNS 主机名而非 IP 地址配置成员,避免 IP 变更引发维护风险;在水平分割网络或云环境中,使用主机名尤为重要。自 MongoDB 5.0 起,仅配置 IP 的节点可能无法通过启动验证。
- 规划端口并统一命名规范,便于运维与防火墙放行,例如:
- Config:17101/17102/17103
- Shard1:17201/17202/17203
- Shard2:17301/17302/17303
- mongos:17401/17402
- 系统与安全基线:
- 关闭或放行相关端口(如 27017/17101-17103/17201-17203/17301-17303/17401-17402)的防火墙规则。
- 节点间时间同步(如 NTP),避免因时钟漂移导致复制异常。
三、安装与目录
- Ubuntu 20.04+ 建议使用 APT 安装 mongodb-org 官方仓库,保持多节点版本一致。
- 目录与权限(示例):
- 数据目录:如 /data/db1 /data/db2 /data/db3(副本集)或按分片与角色分目录(分片集群)。
- 日志目录:如 /var/log/mongodb/,确保运行用户(如 mongodb)可写。
- 进程管理:
- 副本集/配置服务器使用 systemd 服务 mongod 管理。
- 路由层使用 mongos 进程(建议同样以 systemd 管理,便于开机自启与日志轮转)。
四、安全与认证
- 集群内部通信安全:使用 keyFile 进行成员间身份认证(所有 mongod/mongos 使用同一 keyFile)。
- 传输加密:生产建议启用 TLS/SSL(证书分发与信任链配置需一致)。
- 客户端访问:通过 mongos 启用认证与授权,创建管理员与应用角色,最小权限分配。
五、配置与初始化步骤
- 副本集(单集群起步)
- 配置要点:在 /etc/mongod.conf 中设置 replication.replSetName,并正确配置 net.bindIp 与 net.port;启动服务后连接任一节点执行 rs.initiate() 初始化,使用 rs.add() 添加其余成员,最后用 rs.status() 校验。
- 分片集群(生产常用)
- 配置要点:
- 启动 3 节点 CSRS 配置服务器(mongod --configsvr --replSet …),初始化副本集。
- 启动多个 分片副本集(每个分片 3 节点),分别初始化。
- 启动 mongos,在 mongos 上通过 sh.addShard(“/host1:port1,host2:port2,…”) 添加分片。
- 在 mongos 上为业务库启用分片:sh.enableSharding(“”),对集合执行 sh.shardCollection(“.”, { “”: 1 } );使用 sh.status() 检查分片分布与健康状态。
- 配置要点:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB配置Ubuntu集群有哪些要点
本文地址: https://pptw.com/jishu/778011.html
