MongoDB搭建复制集集群(Docker版)

复制集注意事项

关于复制集:

  • 复制集为 MongoDB 提供了数据可靠性,当某个节点挂掉,可以重新选举出主节点;
  • 复制集为 MongoDB 提供了数据安全性,当节点宕机后,备份数据保证数据不丢失;
  • 复制集为 MOngoDB 提供了高性能,可通过配置主从读写分离提高服务性能;

关于硬件:

  • 因为正常的复制集节点都有可能成为主节点,它们的地位是一样的,因此硬件配置上必须一致;
  • 为了保证节点不会同时宕机,各节点使用的硬件必须具有独立性;
  • 此处用的 Docker 在同一个虚拟机上模拟三个节点;

关于软件:

  • 复制集各节点软件版本必须一致,以避免出现不可预知的问题;
  • 增加节点不会增加系统写性能;
  • 此处用的 MongoDB 6.0.5 版本;

环境准备

  • Docker 安装 MongoDB 并配置好环境变量;
  • 确保有 10GB 以上的硬盘空间;
  • 默认已安装 Docker,没安装的话请参考我的 Docker 教程;
  • 宿主机器为 CentOS7;

一主两从架构图:
image.png

安装步骤

(1)准备配置文件
复制集的每个 mongod 进程应该位于不同的服务器。我们现在在一台机器上运行 3 个进程,因此要为它们各自配置:

  • 不同的端口(28017/28018/28019)
  • 不同的数据目录
mkdir -p /data/db{
   
   1,2,3}

image.png

  • 不同日志文件路径(例如:/data/db1/logs)
mkdir -p /data/db{
   
   1,2,3}/logs

创建配置文件/data/db1/mongod.conf,内容如下:

systemLog:
  destination: file
  path: /data/logs/mongod.log # log path
  logAppend: true
storage:   
  dbPath: /data/db # data directory      
net:
  bindIp: 0.0.0.0
  port: 27017 # port
replication:
  replSetName: rs0 # 复制集名称
# processManagement: # 设置了该项会导致docker exec -it mongodb1 bash 进入容器后马上自动退出
#   fork: true

将该配置文件复制都 db2、

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Firechou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值