哨兵模式原理

哨兵模式原理

一、定义

哨兵(sentinel):是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的Master并将所有slave连接到新的

Master。所以整个运行哨兵的集群的数量不得少于3个节点。

二、作用

监控:哨兵会不断地检查主节点和从节点是否运作正常。

自动故障转移:当主节点不能正常工作时,哨兵会开始自动故障转移操作,它会将失效主节点的其中一个从节点升级为新的主节点,并让其它从节点改为复制新的主节点。

通知(提醒):哨兵可以将故障转移的结果发送给客户端。

三、故障转移机制

1.由哨兵节点定期监控发现主节点是否出现了故障

每个哨兵节点每隔1秒会向主节点、从节点及其它哨兵节点发送一次ping命令做一次心跳检测。如果主节点在一定时间范围内不回复或者是回复一个错误消息,那么这个哨兵就会认为这个主节点主观下线了(单方面的)。当超过半数哨兵节点认为该主节点主观下线了,这样就客观下线了。

2.当主节点出现故障,此时哨兵节点会通过Raft算法(选举算法)实现选举机制共同选举出一个哨兵节点为leader,来负责处理主节点的故障转移和通知。所以整个运行哨兵的集群的数量不得少于3个节点。

3.由leader哨兵节点执行故障转移,过程如下:

●将某一个从节点升级为新的主节点,让其它从节点指向新的主节点;

●若原主节点恢复也变成从节点,并指向新的主节点;

●通知客户端主节点已经更换。

需要特别注意的是,客观下线是主节点才有的概念;如果从节点和哨兵节点发生故障,被哨兵主观下线后,不会再有后续的客观下线和故障转移操作。

主节点的选举:

1.过滤掉不健康的(已下线的),没有回复哨兵 ping 响应的从节点。

2.选择配置文件中从节点优先级配置最高的。(replica-priority,默认值为100)

3.选择复制偏移量最大,也就是复制最完整的从节点。

哨兵的启动依赖于主从模式,所以须把主从模式安装好的情况下再去做哨兵模式

哨兵的模式

一、哨兵对主从复制集群进行监控

监控的对象:所有redis数据库节点

二、哨兵与哨兵之间互相进行监控

监控对象:哨兵彼此

三、监控的目的

1、哨兵和哨兵之间的监控目的:检测批次的存活转台

2、哨兵监控所有redis数据库的目的:为了实现自动故障切换

故障切换的原理?

1当master挂掉,哨兵会及时发现,发现之后,进行投票机制,选举出一个新的master服务器(得是基数)

2完成slave--->master的从想主切

3完成其他从服务器对新master的配

cluster模式

cluster模式同步两种方式

master1 只给slave01同步数据mastre1和master2同步数据

cluster模式

1、读和写可以负载均衡

2、自动故障转移

3、突破了单机存储限制

相关推荐
喵叔哟5 分钟前
重构代码之移动字段
java·数据库·重构
喵叔哟5 分钟前
重构代码之取消临时字段
java·前端·重构
fa_lsyk8 分钟前
maven环境搭建
java·maven
念白4439 分钟前
智能病历xml提取
数据库·sql·oracle
qingy_204613 分钟前
【JavaWeb】JavaWeb入门之XML详解
数据库·oracle
大数据面试宝典17 分钟前
用AI来写SQL:让ChatGPT成为你的数据库助手
数据库·人工智能·chatgpt
努力的小雨22 分钟前
快速上手 KSQL:轻松与数据库交互的利器
数据库·经验分享
Gentle58624 分钟前
labview中连接sql server数据库查询语句
数据库·labview
Gentle58625 分钟前
labview用sql server数据库存取数据到一个单元格
数据库·labview
Daniel 大东27 分钟前
idea 解决缓存损坏问题
java·缓存·intellij-idea