通过上一个博客我们已经搭建了不同的实例但是他们都是独立运行的,那么,如何让这些实例变成一个高可用的模型呢.
首先我们要清楚mongo集群实现复制的原理时基于oplog完成的,也就是说各个实例之间是通过读取二进制的的日志文件来复现操作的,速度比较快的原因是mongo实现了多线程的形式来实现的,这个是和mysql一样的。
接下来是mongo集群的实现
基础:
127.0.0.1:27017
127.0.0.1:27018
127.0.0.1:27019
现在在同一台机器上我们部署了三个实力
第一步:
mongod --replSet rs0 --port 27017
第二步:
mongod --replSet rs0 --port 270178
第三步:
mongod --replSet rs0 --port 27019
现在我们已经完成了对实例的集群命名操作
登陆其中一个实例:
mongo --port 27017
初始化集群的设置:
rsconf = { _id: "rs0", members: [ { _id: 0, host: "<hostname>:27017" }, { _id: 1, host: "<hostname>:27018" }, { _id: 2, host: "<hostname>:27019" } ] }
rs.initiate( rsconf )
查看状态
rs.conf()
现在我们就搭建完成了一个测试环境的集群