Mongodb集群形式探究-一主一从一仲裁。
主节点(primary)与从节点(secondary)和仲裁节点(arbiter)
具有存储数据的两个成员的三个成员副本集具有:
●一个主节点。
●一个从节点。 从节点可以在选举中成为主节点。
●一个仲裁节点 仲裁节点只在选举中投票。

由于仲裁节点不保存数据副本,因此这种部署只提供一个完整的数据副本(secondary)。 仲裁节点需要更少的资源,牺牲更多有限的冗余和容错能力。
但是,使用主节点,从节点和仲裁及诶单的部署可确保如果主服务器或从服务器不可用,副本集仍将保持可用。
如果主服务器不可用,则副本集将选择从节点服务器为主服务器。

我是通过openstack的trove组件部署出来了一个一主两从组成的一个副本集的集群形式。
通过将其中一个从节点停掉,移出集群,然后将他变为仲裁节点的方式进行测试的,具体方法可以参照:
https://docs.mongodb.com/v3.2/tutorial/convert-secondary-into-arbiter/index.html
需要主要的是,由于trove创建的cluster开启了身份认证,所以在启动的时候需要keyfile来完成仲裁节点与主从节点之间的通信。
命令:
mongod --port 27017 --dbpath /data --replSet rs1 --config /etc/mongod.conf
rs1:SECONDARY> db.isMaster()
{
"hosts" : [
"192.168.111.173:27017",
"192.168.111.174:27017"
],
"arbiters" : [
"192.168.111.172:27017"
],
"setName" : "rs1",
"setVersion" : ,
"ismaster" : false,
"secondary" : true,
"primary" : "192.168.111.173:27017",
"me" : "192.168.111.174:27017",
"maxBsonObjectSize" : ,
"maxMessageSizeBytes" : ,
"maxWriteBatchSize" : ,
"localTime" : ISODate("2017-10-24T09:16:11.858Z"),
"maxWireVersion" : ,
"minWireVersion" : ,
"ok" :
} kill掉主节点上的mongodb进程 rs1:SECONDARY> db.isMaster()
{
"hosts" : [
"192.168.111.173:27017",
"192.168.111.174:27017"
],
"arbiters" : [
"192.168.111.172:27017"
],
"setName" : "rs1",
"setVersion" : ,
"ismaster" : true,
"secondary" : false,
"primary" : "192.168.111.174:27017",
"me" : "192.168.111.174:27017",
"electionId" : ObjectId("7fffffff0000000000000006"),
"maxBsonObjectSize" : ,
"maxMessageSizeBytes" : ,
"maxWriteBatchSize" : ,
"localTime" : ISODate("2017-10-24T09:16:49.220Z"),
"maxWireVersion" : ,
"minWireVersion" : ,
"ok" : ,
"$gleStats" : {
"lastOpTime" : Timestamp(, ),
"electionId" : ObjectId("7fffffff0000000000000006")
}
}
总结:
1.当我们只使用一主一从的方式进行部署的时候,如果主节点down机,从节点不会提升为主节点。
(1):当重启主节点的时候,会发生两种可能性。1.主节点变为从节点,从节点选举为新的主节点。2.主从节点不变(推测这是由于)
2.当在一主一从中加入一个仲裁节点后,
(1):主节点down机,从节点提升为主节点。
(2):从节点重启之后会变为当前主节点的从节点。
Mongodb集群形式探究-一主一从一仲裁。的更多相关文章
- 搭建高可用mongodb集群(一)——配置mongodb
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...
- MongoDB集群
高可用的MongoDB集群 1.序言 MongoDB 是一个可扩展的高性能,开源,模式自由,面向文档的数据库. 它使用 C++编写.MongoDB 包含一下特点: l 面向集合的存储:适合存储 ...
- Mongodb集群【三】
Mongodb常用三种集群 1 主从(Master/Slave) 不推荐,但是mongodb依然保留有.一主多从,不支持链式结构.简单主从,没有裁仲者不能自动恢复. 2 副本集(Relica Set) ...
- 高可用的MongoDB集群
1.序言 MongoDB 是一个可扩展的高性能,开源,模式自由,面向文档的数据库. 它使用 C++编写.MongoDB 包含一下特点: l 面向集合的存储:适合存储对象及JSON形式的数据. l ...
- centos7下安装部署mongodb集群(副本集模式)
环境需求:Mongodb集群有三种模式: Replica Set, Sharding,Master-Slaver. 这里部署的是Replica Set模式. 测试环境: 这里副本集(Replica ...
- MongoDB集群运维笔记
前面的文章介绍了MongoDB副本集和分片集群的做法,下面对MongoDB集群的日常维护操作进行小总结: MongDB副本集故障转移功能得益于它的选举机制.选举机制采用了Bully算法,可以很方便从分 ...
- 【转载】高可用的MongoDB集群详解
1.序言 MongoDB 是一个可扩展的高性能,开源,模式自由,面向文档的数据库. 它使用 C++编写.MongoDB 包含一下特点: l 面向集合的存储:适合存储对象及JSON形式的数据. l ...
- 搭建高可用mongodb集群(一)——配置mongodb
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...
- MongoDB集群跨网络、跨集群同步方案
MongoDB集群跨网络.跨集群数据同步有以下几个方案,此处只是简单介绍,不过详细描述. 1.MongoDB自带的复制方案 优点:实施简单,不需要额外的技术栈 缺点:网络双向可连通. 2.CDC同步方 ...
随机推荐
- Content Provider基础
1.Content Provider为存储和获取数据提供了统一的接口. 2.Content Provider可以在不同的应用程序之间共享数据. 3.Android为常见的一些数据提供了ContentP ...
- vue 组件 - 函数统一调用(自定义钩子)
vue 组件继承方法 var childComponent = Vue.extend( { extends: baseComp, // 继承基础组件方法 template:template, wait ...
- Linux关于文件处理命令
一.登陆用户和机器名称 示例:[root@hadoop01 ~]# root:表示用户名 @hadoop01表示机器名称 ~表示当前文件目录是家目录 #表示输入命令提示符,用户可以在其后输入命令:非r ...
- 二十四 Redis消息订阅&事务&持久化
Redis数据类型: Redis控制5种数据类型:String,list,hash,set,sorted-set 添加数据,删除数据,获取数据,查看有多少个元素,判断元素是否存在 key通用操作 JR ...
- Jquery事件汇总、网页入口
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JuJu团队12月28号工作汇报
JuJu团队12月28号工作汇报 JuJu Scrum 团队成员 今日工作 剩余任务 困难 飞飞 完成GUI 待安排 无 婷婷 调试代码 提升acc 无 恩升 修正evaluate 修正evalu ...
- swoole之异步文件IO
一.代码部分 读: <?php /** * 异步文件系统仅限于4.3.0之前的版本 * 读取文件 */ $filename = dirname(__FILE__).DIRECTORY_SEPAR ...
- 扩展的Sobel 算子
Custom Extended Sobel Filters https://arxiv.org/pdf/1910.00138.pdf sobel算子是进行边缘检测的一个重要算子.它通常是一个3x3的 ...
- 编程题目:输入一个链表,输出该链表中倒数第k个节点
两种方法 1.在链表的初始化数据中加入 num 数据, 每添加一个节点,num加1,每删除一个节点,num减1 查找倒数第k个元素,即 指向第一个节点的指针向后移动 num - k 步. 2.使用两个 ...
- Angular2的双向数据绑定
什么是双向绑定 如图: 双向绑定.jpg 双向绑定机制维护了页面(View)与数据(Data)的一致性.如今,MVVM已经是前段流行框架必不可少的一部分. Angular2中的双向绑定 双向绑定, ...