故障测试2|学习笔记

简介: 快速学习故障测试2

开发者学堂课程【MongoDB精讲课程(下)故障测试2学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/727/detail/12979


故障测试2

 

刚刚模拟主节点的这个故障现在也知道主节点故障了之后,副本节点会自动的升级为主节点,现在再把这个主节点启动起来,主节点直接就在这改就行了。

image.png

主节点的应该就是2701再启动起来,再检查  mongo  一下服务,同样,27017 27018 27019这三个服务,27017因为刚才是挂机,给退出一下,再重新连一下,会发现变成了副本节点了,这个结点也就是副本节点,副本节点就算带起来之后也不是老大了,老大其实现在是27018因为已经升级成这个主节点了,那升升级成主节点之后,原来的这个主节点27017在启动的时候,并不会去触发这个选举规则,已经降级为老二了

降级为这个副本节点了,接下来再来看,如果说这个仲裁结点和这个主节点都故障之后只剩下这个2701,现在这个主节点应该是27018 ,27019仲裁节点,这两个都给挂了之后。同样在这一块,先给它 clean 一下,看清楚一点,现在要挂的是主节点,是这个27018然后再挂掉这个仲裁节点27019把这两个给挂掉,那这两个挂掉之后,再来看一下现在的这个副本节点,再敲回车发现它还是副本节点。

image.png

按理说这个主节点挂了之后,它应该会触发重新选举,再来看一下选举规则:

第一,它不仅是要票数最高,按理说它现在应该是票数最高,因为只有它自己存在,它给自己投票它的票数就是最高的。

第二个条件,是否满足它需要大多数成员的一个支持,那什么叫大多数,再来看一下之前的这个架构图:

image.png

看一下这个架构目标。首先来看一下,现在是这个主节点和这个副本节点都挂了。

主节点和这个仲裁者,这两个都挂了,都挂了之后它就剩它自己了,它虽然拿到的是一票,它拿到最高,但是它不满足第二个条件,因为第二个条件,是需要获得大多数成员的一个认同,现在获得的是一,一个人给投票,就是自己给自己投票。

但是副本级里面是有三个成员,它并不满足第二个条件呢,大多数成员,至少可以获得两个人的赞同,现在这里面只有一个一,只有一个一之后,也没办法去获得这个主节点,它还是作为一个副本节点,说白了它自己指纹也没有老大,它自己还是老二,作为这个副本节点,虽然在这个架构图上也是,但是实际上现在这个副本节点应该是27017。刚刚模拟的是这个仲裁结点和这个主结点的故障。

仲裁节点和主节点故障之后,并不会导致这个剩下的这个副本节点升级为主节点。因为它不满足一个大多数成员的条件。

最后再来演示一下,如果仲裁结点和这个,从节点也就是这个副本节点,副本节点两个都挂了。这两个都挂了之后,它会怎么样,它这个主节点会成为一个什么样的情况,在模拟之前呢,还是需要把这个这两个服务,给它启动一下,找到们在一起的就不是27017了,要把这个27018和这个27019呢,都给它启动起来。

image.png

现在这时候会发现又触发了重新选取,因为成员数已经够了,这时候27017又成为这个主节点了,因为默认的情况下,刚刚的那个主节点挂了之后,这个数据默认是最新的,所以它触发了一个重新选取之后,还有这块儿27017又升级为主节点了,那刚刚的这个主节点它就会降级为这个副本节点。

27018就变成了这个副本节点,就是这个从节点,现在再来模拟一下,就是说如果说要去关掉,再去把这个27019和这个的副本节点27018都给它关掉试一下,首先查看一下,把它 clean 一下吧,看的清晰, mongo 服务找到27018和2019,分别给它挂了。

找一下27018和27019,把这两个再给它划掉,再来看现在的这个主节点27017,按回车。

image.png

会发现过了大概十秒钟的时间吧,它又降级成这个副本节点。就降级成这个从节点,这实际上就是一个服务降级,就是当前仲裁也没有了,这个副本节点也没有了,现在只剩下自己一个孤家寡人,也因为也没办法去触发这个读写分离,那这时候,它会自动的降级为副本节点,通俗意义上,这个叫服务降级啊,就是现在只剩下副本集里面只剩下一个主节点了,这个主节点,它自己又干不了,没办法去完成整个副本级的服务,把它主动的将为副本节点,这是这个故障相关的一些测试,测试完之后去了解这个主节点的一些选举原则。

相关文章
|
Web App开发 JavaScript 前端开发
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
快速学习 NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文
409 0
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
|
2月前
|
Java 测试技术 编译器
JMM测试利器-JCStress学习笔记
JMM测试利器-JCStress学习笔记
|
8月前
java202303java学习笔记第四十六天-请求-postman接口测试
java202303java学习笔记第四十六天-请求-postman接口测试
54 0
|
11月前
|
测试技术
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
52 0
|
关系型数据库 OLAP API
测试 API|学习笔记
快速学习测试 API
117 0
测试 API|学习笔记
|
存储 SQL 监控
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
快速学习 PolarDB-X 进行 TP 负载测试。
301 0
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
|
SQL 存储 关系型数据库
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
快速学习PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换
734 0
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
|
数据可视化 Dubbo Java
MSE 微服务测试---自动化回归最佳实践|学习笔记
快速学习 MSE 微服务测试---自动化回归最佳实践
294 0
MSE 微服务测试---自动化回归最佳实践|学习笔记
|
存储 SQL 监控
27 Postgre sql 建模,压力测试|学习笔记
快速学习27 Postgre sql 建模,压力测试
340 0
27 Postgre sql 建模,压力测试|学习笔记
|
数据采集 运维 安全
全方位的测试质量守护体系,保障交付质量|学习笔记
快速学习全方位的测试质量守护体系,保障交付质量
310 0
全方位的测试质量守护体系,保障交付质量|学习笔记

热门文章

最新文章