Mongo Replica Set集群介绍:
Replica Set使用的是n个mongod节点,构建具备自动的容错功能(auto-failover),自动恢复的(auto-recovery)的高可用方案。 如上图,Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点。主备节点存储数据,仲裁节点不存储数据。客户端同时连接主节点与备节点,不连接仲裁节点。
默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可指定读策略(本文PHP连接Mongo实例),减少主节点读压力。
Mongo Replica Set集群搭建:
(1)建立数据库文件夹、日志文件夹
mkdir /data/mongo_cluster/{master,slave,arbiter} -p mkdir /data/mongo_cluster/master/logs mkdir /data/mongo_cluster/slave/logs mkdir /data/mongo_cluster/arbiter/logs
(2)建立配置文件
#master配置 /data/mongo_cluster/master/master.conf dbpath=/data/mongo_cluster/master logpath=/data/mongo_cluster/master/logs/master.log pidfilepath=/data/mongo_cluster/master/master.pid logappend=true replSet=rep1 bind_ip=192.168.15.130 port=10000 fork=true journal=true #slave配置 data/mongo_cluster/slave/slave.conf dbpath=/data/mongo_cluster/slave logpath=/data/mongo_cluster/slave/logs/slave.log pidfilepath=/data/mongo_cluster/slave/slave.pid logappend=true replSet=rep1 bind_ip=192.168.15.130 port=10001 fork=true journal=true #arbiter配置 /data/mongo_cluster/arbiter/arbiter.conf dbpath=/data/mongo_cluster/arbiter logpath=/data/mongo_cluster/arbiter/logs/arbiter.log pidfilepath=/data/mongo_cluster/arbiter/arbiter.pid logappend=true replSet=rep1 bind_ip=192.168.15.130 port=10002 fork=true journal=true
配置参数说明:
dbpath:数据存放目录
logpath:日志存放路径
logappend:以追加的方式记录日志
pidfilepath:进程文件,方便停止
mongodb replSet:replica set的名字
bind_ip: 绑定服务ip
port:mongodb进程所使用的端口号,默认为27017
fork:以后台方式运行进程
journal:写日志
smallfiles:使用较小的默认文件
(3)启动mongodb集群
/usr/local/mongodb3.0.5/bin/mongod -f /data/mongo_cluster/master/master.conf
/usr/local/mongodb3.0.5/bin/mongod -f /data/mongo_cluster/slave/slave.conf
/usr/local/mongodb3.0.5/bin/mongod -f /data/mongo_cluster/arbiter/arbiter.conf
(4)配置主、备、仲裁节点
/usr/local/mongodb3.0.5/bin/mongo 192.168.15.130:10000 #登陆master执行下面命令 use admin cfg={ _id:"rep1", members:[ {_id:0,host:'192.168.15.130:10000',priority:2}, {_id:1,host:'192.168.15.130:10001',priority:1},{_id:2,host:'192.168.15.130:10002',arbiterOnly:true}] }; rs.initiate(cfg)
(5)查看集群配置及状态
rs.status()查看集群状态
rs.rs.conf()查看集群配置信息
PHP客户端连接测试:
$options = array( //指定读策略 http://php.net/manual/zh/mongo.readpreferences.php 'readPreference' => MongoClient::RP_SECONDARY_PREFERRED, 'replicaSet' => 'rep1' ); $mongo = new MongoClient("mongodb://192.168.15.130:10000, 192.168.15.130:10001", $options); $rs = $mongo->selectDB("test")->getCollectionNames(); var_dump($rs);
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索日志
, 文件
, 数据
, 集群
, 进程
配置
mongo集群搭建、mysql 集群搭建详解、kafka集群搭建 详解、mongo replica set、mongo replicaset,以便于您获取更多的相关知识。