redis哨兵

发布时间 2023-12-03 14:57:11作者: 天启A

妈耶,哨兵数=主从数。主从复制就三台了,六台我开不来。按尚硅谷的教程先把哨兵文件配在6379端口上的那台机器了

哨兵文件中的<quorum>代表确认客观下线的最少的哨兵数量

先启动哨兵

redis-sentinel /export/database/myredis/sentinel.conf --sentinel
ps -ef|grep redis
root       8690      1  0 13:41 ?        00:00:00 redis-sentinel 0.0.0.0:26379 [sentinel]
root      11229      1  0 13:42 ?        00:00:00 redis-sentinel 0.0.0.0:26380 [sentinel]
hadoop    11427      1  0 09:56 ?        00:00:19 redis-server *:6379
root      11494      1  0 13:42 ?        00:00:00 redis-sentinel 0.0.0.0:26381 [sentinel]
hadoop    28454 117793  0 13:47 pts/0    00:00:00 grep --color=auto redis

哨兵启动成功

在接下来手动模拟主库shutdown

两台从库将稍微断开连接后重新连接,此时其中一台slave被选举为master,shutdown的库会变成slave

此时新老master的redis.conf和sentinel.conf文件会在结尾发生变化,具体是老master结尾变成了slave,新master的slave行被抹去了

哨兵运行流程和选举原理

1.主观下线SDOWN:单个哨兵自己主观上发送了ping心跳后没有收到合法的回复(默认为30s)

2.客观下线DDOWN:多个哨兵达成一致意见认为master宕机了,这里使用的是quorum,官网写的是2

3.哨兵选兵王leader:先在哨兵中选出leader,再让leader选出slave变成master

3.1兵王的选举算法:raft算法

4.自动故障切换流程并选出新master:根据priorty权限>offset复制偏移量>runID(这是谁最小选谁,按ASCII)选出新的master

                 leader先让新master执行slaveof no one,再让其他slave改变master

                 leader会让老master上线后成为slave恢复正常工作。

这些步骤都由sentinel执行

 

sentinel配置建议:本身数量应该多一些,哨兵是高可用的集群,数量应该为奇数,物理配置应该尽量一致,哨兵+复制也不能0丢失