3种集群模式参考链接:http://c.biancheng.net/view/6567.html
MongoDB 有三种集群部署模式
分别为主从复制(Master-Slaver)、副本集(Replica Set)和分片(Sharding)模式。
- Master-Slaver 是一种主从副本的模式,目前已经不推荐使用。
- Replica Set 模式取代了 Master-Slaver 模式,是一种互为主从的关系。Replica Set 将数据复制多份保存,不同服务器保存同一份数据,在出现故障时自动切换,实现故障转移,在实际生产中非常实用。
- Sharding 模式适合处理大量数据,它将数据分开存储,不同服务器保存不同的数据,所有服务器数据的总和即为整个数据集。
Sharding 模式追求的是高性能,而且是三种集群中最复杂的。在实际生产环境中,通常将 Replica Set 和 Sharding 两种技术结合使用。
在实际生产环境中,副本集和分片是结合起使用的,可满足实际应用场景中高可用性和高可扩展性的需求。
但是对于我来说,目前只需要用到副本集集群做到故障自动切换、实现高可用,以及支持多文档事务操作即可;
搭建实操
整体集群模式实战参考链接:
Linux:http://c.biancheng.net/view/6568.html
docker:https://segmentfault.com/a/1190000039142073
副本集搭建
docker-compose部署参考链接:
https://www.cnblogs.com/ricklz/p/13237419.html
http://monkeywie.cn/2020/03/10/mongodb-replica-set/?utm_source=tuicool&utm_medium=referral
搭建过程
# 创建挂载需要用到的文件夹(可自定义路径)
# 线上最好分不同的机器搭建,我测试暂时搭建在一台机器上
mkdir -p /ecsmount/docker/mongo-replica-cluster/{mongo-replica-1/{data/db,conf},mongo-replica-2/{data/db,conf},mongo-replica-3/{data/db,conf}}
# 生成auth.key, 用于多节点之间的认证
cd /ecsmount/docker/mongo-replica-cluster
openssl rand -base64 756 > ./auth.key
# 权限设置,为必要步骤
# chown mongodb:mongodb ./auth.key
chown systemd-bus-proxy:ssh_keys ./conf/auth.key
chmod 400 ./auth.key
cp ./auth.key ./mongo-replica-1/conf
cp ./auth.key ./mongo-replica-2/conf
cp ./auth.key ./mongo-replica-3/conf
rm -rf ./auth.key
分别写三个 docker-compose.yml
version: '3.6'
services:
mongo-replica-1:
restart: always
# build: .
image: mongo:4.4.8