您的位置:首页 > 数据库 > Mongodb

mongo学习笔记三:Mongodb的三种集群(Master-Slave)

2018-03-26 09:49 573 查看
Mongodb集群----Master/SlaveMongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式。Mongodb的三种集群方式的搭建:Replica Set / Sharding / Master-Slaver。这里只说明最简单的集群搭建方式(生产环境),如果有多个节点可以此类推或者查看官方文档。OS是CentOs7_x64系统,客户端用的是Java客户端。Mongodb版本是mongodb-linux-x86_64-3.2.9.tgz
简介:使用mysql数据库时大家广泛用到,采用双机备份后主节点挂掉了后从节点可以接替 主机继续服务。所以这种模式比单节点的高可用性要好很多。一、单个从节点
二、多个从节点现在只是一个数据库服务器又提供写又提供读,机器承载会出现瓶颈。大家还记mysql里的读写分离吗?把20%的写放到主节点,80%的读放到从节点分摊了减少了服务器的负载。但是大部分应用都是读操作带来的压力,一个从节点压力负载不了,可以把一 个从节点变成多个节点。 

主从环境搭建 1. 准备两台机器 (192.168.1.131 和192.168.1.133)192.168.1.131 当作主节点,192.168.1.133作为从节点。
2.安装mongodb前面已经详细介绍过mongodb的安装,这里就不再赘述,如有需要,详见《mongo学习笔记一:MongoDB 入门(安装与配置)》注意:后面所有集群搭建均是通过配置文件进行的,故请使用“方式二:通过配置文件方式启动”来启动mongodb3.修改mongodb配置文件192.168.1.131(主)上的mongodb.conf配置如下:注:mongodb.conf在/usr/local/mongodb目录下dbpath=/usr/local/mongodb/data/ logpath=/usr/local/mongodb/logspidfilepath=/usr/local/mongodb/master.pid directoryperdb=true logappend=true bind_ip=192.168.1.131port=27017oplogSize=10000 fork=true noprealloc=true master=true
192.168.1.133(从)上的mongodb.conf配置如下:dbpath=/usr/local/mongodb/data/ logpath=/usr/local/mongodb/logs pidfilepath=/usr/local/mongodb/slaver.pid directoryperdb=true logappend=true bind_ip=192.168.1.133port=27017 oplogSize=10000 fork=true noprealloc=true slave=truesource=192.168.1.131:27017
4.启动mongo分别在131和133上执行以下命令,启动mongocd /usr/local/mongodbbin/mongod --config mongodb.conf
至此mongodb的主从集群搭建完成,下面进行主从集群的测试在主节点131上连接到终端:/usr/local/mongodb/bin/mongo 192.168.1.131:27017#建立database 数据库。use database;#创建collectionsdb.createCollection("test")db.test.insert({"test1":"testval1"})#查询testdb数据看看是否成功。db.test.find();
5.测试主从集群检查从主机133的数据。/usr/local/mongodb/bin/mongo 192.168.1.133:27017show dbs;use database;show collections;db.test.find();可以看到主库上创建的database,collection以及插入的数据都同步到了从库,至此主从集群搭建完毕注:若执行是报错,请在从机上执行rs.slaveOk()说明:在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。对于replica set 中的secondary 节点默认是不可读的。
6.内核参数调整 启动后有如下警告,需要调整内核参数调整方法如下:echo "never" > /sys/kernel/mm/transparent_hugepage/enabledecho "never" > /sys/kernel/mm/transparent_hugepage/defrag设置完后重启mongodb即可(netstat -lntp查找,kill杀掉mongodb,再启动mongodb)7、主从复制缺陷思考主节点挂了能否自动切换连接?
目前需要手工切换。主节点的写压力过大如何解决?
从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?
就算对从节点路由实施路由访问策略能否做到自动扩展?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: