作家
登录

干货满满 | MongoDB集群实战攻略

作者: 来源: 2018-01-29 14:59:05 阅读 我要评论

应用admin数据库:

3. 下载安装MongoDB的安装法度榜样包

  1. use admin 

定义副本集设备变量,这里的 _id:”test” 和膳绫擎敕令参数“ –replSet test” 要保持一致:

  1. config = { _id:"test", members:[ 
  2.  
  3. ... {_id:0,host:" 10.43.159.56:27017"}, 
  4.  
  5. ... {_id:1,host:" 10.43.159.58:27017"}, 
  6.  
  7. ... {_id:2,host:" 10.43.159.60:27017"}] 
  8.  
  9. ... }  
  1. rs.initiate(config); 
  1. {   
  2.  
  3.     "info" : "Config now saved locally.  Should come online in about a minute.",   
  4.  
  5.     "ok" : 1   
  6.  
  7. }    

查看日记,副本集启动成功后,56为主节点PRIMARY,58、60为副本节点SECONDARY,留意这里是三个节点合营选举出的主节点,有必定随机性。

查看集群节点的状况:

  1. rs.status(); 

副本集模式的MongoDB不仅搭建简单,并且功能强大年夜。如今回头看看这种模式可否解决我们前面遗留的问题:主节点挂了可否主动切换连接?

先测试副本集数据复制功能是否正常

起首在主节点56上插入数据,然后再副本节点上查看数据,发明日记报错:

输出成功:

  1. error: { "$err" : "not master and slaveOk=false""code" : 13435 } at src/mongo/shell/query.js:128 

MongoDB官方已经不建议应用主大年夜模式了,替代筹划是采取副本集的模式,那什么是副本集呢?简单地说,副本集就是有主动故障恢复功能的主大年夜集群,或者说主大年夜模式其实就是一个单副本的应用,没有很好的扩大性和容错性。而副本集具有多个副本包管了容错性,就算一个副本挂掉落了还有很多副本存在,更棒的是副本集很多处所都是主动化的,它为你做了很多治理工作。聪慧的读者已经发明,主大年夜模式的第一个问题手工切换已经获得解决了,难怪MongoDB官方强烈推荐应用这种模式。我们来看看MongoDB副本集的架构图:

这是因为默认只大年夜主节点读写数据,副本不许可读,只要设置副本可以读即可。在副本节点上履行:rs.slaveOk(),然后萌芽数据,发明主节点的数据已经同步过来了。

再测试下副本集的故障转移功能

先停掉落主节点56上的过程,可以看到58和60节点上的日记显示的就是投票过程。再履行rs.status()可以看到集群状况更新了,56为弗成达,58成为主节点,60照样副本。再启动56节点,发明照样58为主节点,56变为副本节点。如许就解决了第一个故障主动转移的问题。

那么,对于主节点读写压力过大年夜,若何解决呢?常见的解决筹划是读写分别,MongoDB副本集的读写分别若何做呢?

看图措辞:

对于移动APP的场景,平日写操作远没有读操作多,所以一台主节点负责写,两台副本节点负责读。大年夜哪个节点读,完全可以由客户端选择,数据攫取参数一共有五类(Primary、PrimaryPreferred、Secondary、SecondaryPreferred、Nearest):

  • Primary:默认参数,只大年夜主节点长进行攫取操作; 
  • PrimaryPreferred:大年夜部分大年夜主节点上攫取数据,只有主节点弗采取时大年夜Secondary节点攫取数据。 
  • Secondary:只大年夜Secondary节点长进行攫取操作,存在的问题是Secondary节点的数据会比Primary节点数据“旧”。 
  • SecondaryPreferred:优先大年夜Secondary节点进行攫取操作,Secondary节点弗采取时大年夜主节点攫取数据; 
  • Nearest:不管是主节点、Secondary节点,大年夜收集延迟最低的节点上攫取数据。

典范的副本集组网中,除了有副本节点,还有其他角色,比如仲裁节点,如下图:


  推荐阅读

  未来十年当人工智能主导生活,手机会变成什么模样?

大年夜多半科技界人士都认为,再过十年,无处不在的技巧将会触及一天中的每一个时刻,让我们的生活变得更有效力、更相符小我需求。这同时引出一个有趣的问题:在一个万物互联的世界里,当>>>详细阅读


本文标题:干货满满 | MongoDB集群实战攻略

地址:http://www.17bianji.com/lsqh/40477.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)