妈耶,哨兵数=主从数。主从复制就三台了,六台我开不来。按尚硅谷的教程先把哨兵文件配在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丢失
标签:00,slave,redis,哨兵,master,sentinel From: https://www.cnblogs.com/kun1790051360/p/17872119.html