redis-5,redis哨兵

发布时间 2023-04-18 17:58:26作者: niko5960

redis哨兵

哨兵巡查监控后台master主机是否故障,如果故障了,根据投票数自动将某一个库转换为新主库,继续对外提供服务

主要作用

主从监控: 监控主从redis库是否运行正常
消息通知: 哨兵可以将故障转移的结果发送给客户端
故障转移: 如果master异常,可以进行主从切换
配置中心: 客户端通过连接哨兵来获得当前reids的主节点地址

redis架构说明

三哨兵,一主二从
哨兵只负责监控和维护集群,不存入数据

哨兵的配置文件和数据库是不一样的

配置文件参数说明

sentinel monitor <master-name> <ip> <redis-port> <quorum>
设置要监控的master服务器
quorum表示最少有几个哨兵认可客观下线,同意故障迁移的法定票数

哨兵运行的时候会在配置文件写入数据
配置文件最好一个实例一个文件

宕机的节点重连之后会成为slave节点

两个小问题
主节点断开之后从节点可能会出现
sever closed the connection

broken pipe
broken pipe通常是对端的管道断开,无法再对这个管道进行读写操作
该异常产生的时候对服务端没有多大影响

哨兵运行原理和选举原理

三哨兵监控一主二从

主观下线sdown:

单个sentinel检测到关于master的状态,从sentinel角度来看,如果发送了ping心跳后,在一定时间内没有收到回复,就达到了sdown条件
sentine配置文件中的down-after-milliseconds设置了判断主观下线的时长
默认30s

客观下线odown:

多个哨兵达成一致的意见就认为下线了

选举出领导者哨兵leader:

三个哨兵中选一个来执行slave到master
日志中可以看到选举过程

raft算法选举出来的领导者

自动故障切换并选出新master

选举算法:
priority权限:
谁高谁变成新master
redis.config文件中,优先级slave-priority或者replica-priority最高的从节点(数字越小优先级越高)
replication offset偏移量:
谁的偏移量大谁变成新master
run id:
最小run id的从节点 字典顺序:ascii码