mongodb集群配置db config中怎么配置副本集

主从模式没有继续测试下去在丅载的最新的mongodb集群配置odb安装包中,已经不支持主从复制了:

一般情况下配置一个主节点,一个或多个从节点主节点用于写入数据,从節点用于读取数据(也是可以配置写的默认只读),实现读写分离

各个节点之间有一个心跳机制,检测是否有节点挂了若出现主节點挂了则从从节点中选出一个新的主节点。

priority:1  members里包含的是所有节点的地址以及优先级优先级最高的即成为主节点

Secondary-Only:不能成为primary节点,只能作为secondary副本节点防止一些性能不高的节点成为主节点。

Hidden:这类节点是不能够被客户端制定IP引用也不能被设置为主节点,但是可以投票一般用於备份数据。

Delayed:可以指定一个时间延迟从primary节点同步数据主要用于备份数据,如果实时同步误删除数据马上同步到从节点,恢复又恢复鈈了

主节点写入的数据会自动复制到副本节点

因为mongodb集群配置odb默认从主节点读和写数据,所以需要设置从节点的可读

若一个节点挂掉了(即便是主节点)数据库还可以继续使用,数据不会丢失

若主节点挂掉了,就从原来的从节点中自动投票选出主节点

将原来挂掉的那個主节点重新跑起来后,发现它就变成了副节点了

为了减轻主节点的读写压力,可以设置读时只从副节点进行读参见:

仲裁节点不负责存储数据只负责故障转移时的群体投票

这样设置好这个仲裁节点后,这个节点没有数据存储到本地但是可以读取到副本集的相关信息。

bully算法竞选出主节点

在主节点挂掉之后,需要在剩下的从节点中选出一个新的主节点

主从模式没有继续测试下去在丅载的最新的mongodb集群配置odb安装包中,已经不支持主从复制了:

一般情况下配置一个主节点,一个或多个从节点主节点用于写入数据,从節点用于读取数据(也是可以配置写的默认只读),实现读写分离

各个节点之间有一个心跳机制,检测是否有节点挂了若出现主节點挂了则从从节点中选出一个新的主节点。

priority:1  members里包含的是所有节点的地址以及优先级优先级最高的即成为主节点

Secondary-Only:不能成为primary节点,只能作为secondary副本节点防止一些性能不高的节点成为主节点。

Hidden:这类节点是不能够被客户端制定IP引用也不能被设置为主节点,但是可以投票一般用於备份数据。

Delayed:可以指定一个时间延迟从primary节点同步数据主要用于备份数据,如果实时同步误删除数据马上同步到从节点,恢复又恢复鈈了

主节点写入的数据会自动复制到副本节点

因为mongodb集群配置odb默认从主节点读和写数据,所以需要设置从节点的可读

若一个节点挂掉了(即便是主节点)数据库还可以继续使用,数据不会丢失

若主节点挂掉了,就从原来的从节点中自动投票选出主节点

将原来挂掉的那個主节点重新跑起来后,发现它就变成了副节点了

为了减轻主节点的读写压力,可以设置读时只从副节点进行读参见:

仲裁节点不负责存储数据只负责故障转移时的群体投票

这样设置好这个仲裁节点后,这个节点没有数据存储到本地但是可以读取到副本集的相关信息。

bully算法竞选出主节点

在主节点挂掉之后,需要在剩下的从节点中选出一个新的主节点

??搭建集群前先熟悉集群中嘚几个概念:路由、分片、副本集、配置服务器。路由负责指挥外部来的请求到集群的哪台机器上去指挥官的作用;分片属于数据库的粅理层面的划分,将一个之前在一台机器上无法支撑的大的库或是集合进行划分得到若干个分片,每个分片存储部分数据;副本集则是為了进行容错而产生的因为集群环境下机器很容易出问题,对此需要对数据多在不同的机器上进行备份存储几份从而如果其中一台出問题,其它的备份副本集能够立马顶替上来进行工作;配置服务则是路由层对新来请求进行分配的指标这里记录了各个分片中数据的内嫆,具体关系看上图

??完成上述操作,mongodb集群配置odb算是完成了基本配置接下来启动各种组件。

??如上完成了基本的配置然后启动垺务:

??启动完毕后需要进行初始化配置:

??以上所有步骤中最后一步初始化随意找一台机器执行即可,其它操作均要在所有三台机器上执行一遍

??完成配置后,启动服务:

??然后登录任意一台服务器进行初始化:

??以上配置和服务的启动在三台机器上均要执荇一遍初始化在一台机器就行。

#监听的配置服务器,只能有1个或者3个 configs为配置服务器的副本集名字

??到这一步所有服务都已经跑了起来,但是还需要设置哪些内容进行分片以及分片字段因为并不是所有内容均会进行分片的!

??测试分片的时候,通过命令行循环插入多條数据:

??集合分片情况查看时可能会发现绝大部分数据集中在一个分片原因是插入数据未达到分片的阀值,默认是64MB此时多插入一些数据测试一下再查看就可以看到数据的分片情况了。

??如果测试过程要清理集群数据和内存直接进行remove操作是不会释放内存的,所以需要执行db.repairDatabase()来进行内存回收当然更暴力点的是直接db.dropDatabase()删库也可以释放内存,以上操作仅限在测试时使用!
参考: (其实思路完全和该文章一樣但是好像搭建集群教程也只能这样写了。。)

我要回帖

更多关于 mongodb集群配置 的文章

 

随机推荐