温馨提示×

MongoDB在Linux上的集群搭建方法

小樊
60
2025-09-06 18:58:39
栏目: 云计算

以下是在Linux上搭建MongoDB集群的两种常见方式(副本集和分片集群)的步骤要点:

一、副本集集群(高可用)

1. 环境准备

  • 至少3台服务器(生产环境建议奇数节点),确保网络互通,关闭防火墙或开放对应端口(默认27017)。
  • 安装MongoDB:通过包管理器(如apt/yum)安装,或从官网下载二进制包解压。

2. 配置实例

  • 编辑配置文件/etc/mongod.conf,关键参数:
    storage: dbPath: /data/mongodb/db # 数据目录 journal: enabled: true systemLog: path: /var/log/mongodb/mongod.log logAppend: true net: bindIp: 0.0.0.0 # 允许所有IP访问(生产环境需限制) port: 27017 # 端口(每个节点需唯一) replication: replSetName: "rs0" # 副本集名称(所有节点一致) 

3. 启动服务

  • 在每个节点执行:
    sudo systemctl start mongod sudo systemctl enable mongod 

4. 初始化副本集

  • 连接到任意一个节点的MongoDB Shell:
    mongo --host <节点IP> --port 27017 
  • 执行初始化命令:
    rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "节点1:27017" }, { _id: 1, host: "节点2:27017" }, { _id: 2, host: "节点3:27017" } ] }) 
  • 验证状态:
    rs.status() // 查看主从节点状态 

5. 添加节点(可选)

  • 连接到主节点,执行:
    rs.add("新节点IP:27017") 

二、分片集群(水平扩展)

1. 架构规划

  • 核心组件
    • Config Server(配置服务器):存储元数据,需3节点副本集。
    • Shard(分片):数据分片存储,每个分片为副本集(建议3节点)。
    • Mongos(路由):客户端入口,无状态,可部署多节点实现高可用。

2. 配置步骤

  • 配置服务器(副本集)

    1. 在3个节点上配置mongod.conf,指定replSetName: configRssharding.clusterRole: configsvr
    2. 启动服务并初始化副本集:
      mongod -f config-1.conf # 重复3个节点 rs.initiate({ _id: "configRs", members: [...] }) 
  • 分片服务器(副本集)

    1. 为每个分片创建3个节点,配置replSetName: shardXRs(如shard1Rs)和sharding.clusterRole: shardsvr
    2. 启动服务并初始化副本集。
  • Mongos路由

    1. 在2个节点上配置mongos.conf,指定configDB: configRs/节点1:27019,节点2:27019,节点3:27019
    2. 启动服务:
      mongos -f mongos.conf 

3. 集群初始化与分片添加

  • 连接到任意Mongos节点:
    mongo --host <mongos-IP> --port 27017 
  • 添加分片:
    sh.addShard("shard1Rs/节点4:27001,节点5:27001,节点6:27001") 
  • 启用分片(针对指定数据库和集合):
    sh.enableSharding("mydb") sh.shardCollection("mydb.users", { "_id": "hashed" }) // 按ID哈希分片 

4. 验证集群

  • 查看分片状态:
    sh.status() 
  • 测试数据分布:插入数据后检查各分片的Chunk分布。

关键注意事项

  1. 版本一致性:所有节点需使用相同版本的MongoDB。
  2. 端口规划:副本集节点端口需唯一(如27017、27018、27019),分片和配置服务器需预留足够端口。
  3. 安全配置:生产环境需启用认证(security.authorization: enabled)和密钥文件(keyFile)。
  4. 监控与维护:使用mongostatmongotop等工具监控集群状态,定期备份数据。

详细步骤可参考官方文档:MongoDB副本集文档分片集群文档

0