温馨提示×

centos mongodb怎么集群

小樊
38
2026-10-02 22:31:17
栏目: 云计算

在 CentOS 上搭建 MongoDB 集群,常见有三种方式,最常用的是 Replica Set(副本集) 和 Sharded Cluster(分片集群)。下面我按从简单到生产级给你讲。


一、MongoDB 集群常见形式

类型 说明 适用场景
单节点 一台机器 测试
Replica Set 多节点复制 高可用
Sharded Cluster 分片 + 副本 大数据量

二、Replica Set(推荐,最常用)

1️⃣ 环境准备(示例)

  • CentOS 7 / 8
  • MongoDB 6.x
  • 3 台服务器(或 3 个端口)
192.168.1.10  mongo1
192.168.1.11  mongo2
192.168.1.12  mongo3

2️⃣ 安装 MongoDB(每台机器)

# 1. 创建 repo
cat > /etc/yum.repos.d/mongodb.repo << EOF
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

# 2. 安装
yum install -y mongodb-org

# 3. 启动
systemctl start mongod
systemctl enable mongod

3️⃣ 修改配置文件(每台)

vi /etc/mongod.conf

核心配置:

net:
  bindIp: 0.0.0.0
  port: 27017

replication:
  replSetName: rs0

重启:

systemctl restart mongod

4️⃣ 初始化副本集(任意一台)

mongo
rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "192.168.1.10:27017" },
    { _id: 1, host: "192.168.1.11:27017" },
    { _id: 2, host: "192.168.1.12:27017" }
  ]
})

查看状态:

rs.status()

✅ 完成高可用集群


三、Sharded Cluster(生产级)

架构组成

  • Mongos:路由
  • Config Server:配置
  • Shard:数据分片(每个是副本集)

示例角色

角色 数量
mongos 1+
config 3
shard 每分片 3 节点

简化结构(示例)

mongos: 27017
config: 27019 (3台)
shard1: 27018 (3台)

关键配置示例(shard)

sharding:
  clusterRole: shardsvr

replication:
  replSetName: shard1

config:

sharding:
  clusterRole: configsvr

replication:
  replSetName: configRepl

mongos:

sharding:
  configDB: configRepl/192.168.1.10:27019,192.168.1.11:27019,192.168.1.12:27019

添加分片

sh.addShard("shard1/192.168.1.10:27018,192.168.1.11:27018,192.168.1.12:27018")

启用分片:

sh.enableSharding("testdb")
sh.shardCollection("testdb.user", { _id: "hashed" })

四、防火墙 & SELinux

firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload

setenforce 0

五、我可以进一步帮你

你可以告诉我:

  • ✅ 是 学习 / 测试 / 生产
  • ✅ 几台服务器
  • ✅ 是否要分片
  • ✅ CentOS 版本

我可以直接给你 一步步可执行命令版 或 docker-compose 版。

0 踩