加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Web架构之路:MongoDB集群及高可用实践

发布时间:2019-10-11 21:12:14 所属栏目:建站 来源:热爱技术君
导读:MongoDB集群有副本集及主从复制两种模式,不外主从模式在MongoDB 3.6已经彻底废弃,本日首要切磋副本集的搭建和行使,以及分片。 副本集先容 副本集(Replica Set)即副本的荟萃,在MongoDB中通过先界说一个副本荟萃,然后将多个节点(副本)插手到这个荟萃中
副问题[/!--empirenews.page--]

MongoDB集群有副本集及主从复制两种模式,不外主从模式在MongoDB 3.6已经彻底废弃,本日首要切磋副本集的搭建和行使,以及分片。

Web架构之路:MongoDB集群及高可用实践

副本集先容

副本集(Replica Set)即副本的荟萃,在MongoDB中通过先界说一个副本荟萃,然后将多个节点(副本)插手到这个荟萃中。简朴来说就是集群中包括了多份数据,担保主节点挂掉,备节点可以或许继承提供数据处事,实现MongoDB的数据备份及高可用。

副本集具有以下特性:

  • N 个节点的集群
  • 任何节点可作为主节点
  • 全部写入操纵都在主节点上
  • 自动妨碍转移
  • 自动规复

副本集搭建

前提有限,我们在单机上,通过三个差异的MongoD线程来搭副本集。

Web架构之路:MongoDB集群及高可用实践

主节点设置如下:

  1. # 指定命据库路径 
  2. dbpath=/usr/local/mongodb/data/db 
  3. # 行使追加的方法写日记 
  4. logpath=/usr/local/mongodb/log/mongodb.log 
  5. # 行使追加的方法写日记 
  6. logappend = true 
  7. # 绑定处事IP 
  8. bind_ip=127.0.0.1 
  9. # 处事器端口 
  10. port = 27017 
  11. # 以保卫历程的方法运行MongoDB,建设处事器历程 
  12. fork = true 
  13. # PID File 的完备路径 
  14. pidfilepath=/usr/local/mongodb/var/mongod.pid 
  15. # 不启用验证 
  16. noauth=true 
  17. # 最大同时毗连数,默认2000 
  18. maxConns=2000 
  19. # 同步复制的日记巨细配置,单元MB 
  20. oplogSize=10 
  21. # 副本集名称 
  22. replSet=rs0 

副本节点的设置和主节点的根基同等,必要修改一下数据库/日记/PID路径和端标语,副本集名称需同等:

  1. # 指定命据库路径 
  2. dbpath=/usr/local/mongodb/node/2/data/db 
  3. # 行使追加的方法写日记 
  4. logpath=/usr/local/mongodb/node/2/log/mongodb.log 
  5. # 行使追加的方法写日记 
  6. logappend = true 
  7. # 绑定处事IP 
  8. bind_ip=127.0.0.1 
  9. # 处事器端口 
  10. port = 27018 
  11. # 以保卫历程的方法运行MongoDB,建设处事器历程 
  12. fork = true 
  13. # PID File 的完备路径 
  14. pidfilepath=/usr/local/mongodb/var/mongod2.pid 
  15. # 不启用验证 
  16. noauth=true 
  17. # 最大同时毗连数,默认2000 
  18. maxConns=2000 
  19. # 副本集 
  20. replSet=rs0 

依次启动三个mongod历程:

  1. gitlib@devops:/usr/local/mongodb$ ps -aux | grep mongod 
  2. root 14293 0.8 2.3 1588812 92700 ? Sl 08:06 0:01 bin/mongod -f mongod.conf 
  3. root 14652 3.5 2.2 1583180 89364 ? Sl 08:08 0:00 bin/mongod -f mongod2.conf 
  4. root 14723 6.4 2.2 1583180 89172 ? Sl 08:08 0:00 bin/mongod -f mongod3.conf 

在主节点中,先行使rs.initiate()要领举办副本集初始化操纵,再行使rs.add()要领来添加副本集的成员:

  1. > rs.initiate() 
  2.     "info2" : "no configuration specified. Using a default configuration for the set", 
  3.     "me" : "127.0.0.1:27017", 
  4.     "ok" : 1, 
  5.     "$clusterTime" : { 
  6.         "clusterTime" : Timestamp(1569457173, 1), 
  7.         "signature" : { 
  8.             "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), 
  9.             "keyId" : NumberLong(0) 
  10.         } 
  11.     }, 
  12.     "operationTime" : Timestamp(1569457173, 1) 
  13. rs0:OTHER> rs.add('127.0.0.1:27018'); 
  14.     "ok" : 1, 
  15.     "$clusterTime" : { 
  16.         "clusterTime" : Timestamp(1569457214, 2), 
  17.         "signature" : { 
  18.             "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), 
  19.             "keyId" : NumberLong(0) 
  20.         } 
  21.     }, 
  22.     "operationTime" : Timestamp(1569457214, 2) 
  23. rs0:PRIMARY> rs.add('127.0.0.1:27019'); 
  24.     "ok" : 1, 
  25.     "$clusterTime" : { 
  26.         "clusterTime" : Timestamp(1569457219, 1), 
  27.         "signature" : { 
  28.             "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), 
  29.             "keyId" : NumberLong(0) 
  30.         } 
  31.     }, 
  32.     "operationTime" : Timestamp(1569457219, 1) 
  33. rs0:PRIMARY> 

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读