mongodb的Replica Set

 

     Replica Set 是有自动故障恢复的主从集群,与主从集群最大的区别就是没有固定的主节点,整个集群会选举出一个主节点,当其不能工作时切换到其他的节点

     副本集总会有一个活跃的节点primary ,一个货多个备份节点secondary 。

  

   在生产环境中,我们应该将每个节点部署在独立的机器上,并使用标准的MongoDB端口 27017 。使用bind_ip 参数来限制访问MongoDB的应用程序的地址

   

确保各个节点之间可以正常通讯,且各个客户端都处于安全的可信的网络环境中。可以考虑以下事项:

  • 建立虚拟的专用网络。确保各个节点之间的流量是在本地网络范围内路由的。(Establish a virtual private network. Ensure that your network topology routes all traffic between members within a single site over the local area network.)

  • 配置连接限制来防止未知的客户端连接到复制集。

  • 配置网络设置和防火墙规则来对将MongoDB的端口仅开放给应用程序,来让应用程序发的进出数据包可以与MongoDB正常交流。

最后请确保复制集各节点可以互相通过DNS或是主机名解析。我们需要配置DNS域名或是设置/etc/hosts 文件来配置。

  

    

在每个节点上启动 mongod 并通过制定 replSet 参数来指定其复制集名,并可以指定其他需要的参数。参见 Replication Options 以获得其他所需复制参数。

如果我们的应用程序需要连接多个复制集,那么每个复制集需要有不同的名字。一些驱动将复制集连接按复制集名来分组。

下面的例子就指定了复制集的名字通过 --replSet 参数:

mongod --replSet "aosp"

面并连接到复制集的某个节点

   mongo --host ip地址  --port 端口

 

3 初始化复制集

   MongoDB将初始化一个由当前节点构成、拥有默认配置的复制集。

rs.initiate()

 

 4指定复制集初始化参数。

 

rs.conf()

5 其他的节点加入复制集。

 

通过 rs.add() 来将剩下的节点加入复制集。

下述例子是添加两个节点:

rs.add("mongodb1.example.net")
rs.add("mongodb2.example.net")

当完成后,一个完整的复制集便完成了。这个新的复制集将选举出一个 主节点 

 

 

6检查复制集的状态。

通过 rs.status() 命令:

rs.status()

 

 

 

 

 

    

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值