mongodb分布式

mongodb分布式原理:

Mongodb分布式主要包括以下几个角色:

1、shared,也可以称为分片,为了保证片的高可用性,至少需要3个mongodb的实例,这3个mongodb实例来组成一个副本集。副本集简单来说,就是一个有自动恢复功能的主从集群。我们可以设置这3个mongodb的优先级,优先级高的会成为主节点,优先级低的成为辅节点。当主节点不可用的时候,优先级高的辅节点会选举成为主节点。所以节点的个数要有3个,因为如果只有2个的话,主节点不可用的时候,辅节点自己选举自己一票,并不能让自己成为主节点,因为不过半。所以,第3个节点我们可以做成仲裁节点或者普通的数据节点。仲裁节点上面不保存任何的数据,只负责投票。当我们搭建了3台mongodb实例之后,我们可以在任意一台节点上面配置shared,节点的优先级,也是在配置shared的时候指定的。

2、config,也可称为配置节点,配置节点不直接与shared打交道,也不存储实际的数据,它只是负责存储当前分布式集群的配置信息。包括当前有哪些shared,以及shared是怎么分片的,每个shared都有哪些数据节点等信息。

3、mongos,也可称为路由节点,这个直接与用户打交道,客户端的连接是直接连接到mongos上的,所有的数据查询,插入,修改,删除都是通过mongos来进行的,所以路由节点很形象。如果有分片的话,比如根据ID来分片,1-100000的ID存在shared1,100000-200000的ID存在于shared2,那么用户请求的时候,mongos会根据ID去config节点上面去查找一下,这个ID在哪个shared上面,然后再去shared上面查找这个ID的信息。当mongos启动的时候,需要指定config节点是哪一个。当这三个节点都创建好的时候,需要在mongos上指定有哪些shared,把shared及其数据节点通过mongos写入到config节点上面去!

mongodb-cluster

 

架构说明

10.6.3.235  shared的第一台mongodb实例,master角色

10.6.5.222  shared的第二台mongodb实例,secodary角色

42.62.52.154 shared的第三台mongodb实例,secodary角色和config角色

10.6.6.103  路由节点,mongos角色

首先我们先做Shared,我这里只做了一个Shared。

1.1、安装各mongodb实例

安装很简单,就不再细说了,我这里用的绿色版,下载下来之后直接运行即可。贴一下配置文件

secondary节点配置

参数解释:

配置节点的启动:

mongos节点的启动

配置shared分片,连接到任意一台shared的mongodb实例上都可以配置。

config是可以任意的名字,当然最好不要是mongodb的关键字,conf,con都可以。最外层的_id表示replica set的名字,members里包含的是所有节点的地址以及优先级。优先级最高的即成为主节点,即这里的10.10.148.130:27017。特别注意的是,对于仲裁节点,需要有个特别的配置——arbiterOnly:true。这个千万不能少了,不然主备模式就不能生效。

执行rs.status()命令会看到如下信息:

连接到mongos添加shared

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Captcha Code