简介
哨兵是一个独立的进程,哨兵通过发送命令,等待 Redis 服务器响应,从而监控运行的多个 Redis 实例。
通过发送命令,让
Redis服务器返回监控其运行状态,包括主服务器和从服务器。当哨兵监测到
master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。
使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。
判断节点是否正常
主观下线:一个哨兵节点判定主节点
down掉是主观下线。客观下线:只有半数哨兵节点都主观判定主节点
down掉,此时多个哨兵节点交换主观判定结果,才会判定主节点客观下线。
原理:基本上哪个哨兵节点最先判断出这个主节点客观下线,就会在各个哨兵节点中发起投票机制 Raft 算法(选举算法),最终被投为领导者的哨兵节点完成主从自动化切换的过程。
配置
sentinel 的主要配置
主节点 mymaster 192.168.43.101 6379 ( mymaster 可自行修改)
1 | port ${port} |
使用
先启动所有 redis-server 后,再启动 redis-sentinel1
2
3
4# 启动Redis服务器进程
./redis-server ../redis.conf
# 启动哨兵进程
./redis-sentinel ../sentinel.conf