`
chenhua_1984
  • 浏览: 1233119 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

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()

 

 

 

 

 

    

  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics