redis学习笔记(16)哨兵模式

1、哨兵模式的功能

  • 监控(Monitor):哨兵(sentinel)会不断地检查系统的master和slave是否运行正常。
  • 提醒(Notification):当监控某个哨兵出现了问题的时候,哨兵可以通过api向程序和管理员发送请求。
  • 自动故障迁移(automatic failover):当系统中的一个master不能工作时候,这个时候哨兵(sentinel)会自动进行故障转移操作,它会将master系统中的一个slave自动生成master,当客户端对已经失效的master时候,这个时候我们的新的master会自动替换到原来失效的master。

每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的”主观认为宕机” Subjective Down,简称sdown).
若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称odown),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置.

2、实现流程

  1)创建sentinel.conf文件,名称不能错,文件内容如下:

# 禁止保护模式
protected-mode no
# 配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,192.168.11.128代表监控的主服务器,6379代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。
sentinel monitor mymaster 127.0.0.1 6380 1
# sentinel author-pass定义服务的密码,mymaster是服务名称,236300是Redis服务器密码
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster 236300

  2)启动哨兵进程

./redis-sentinel ../sentinel.conf

3、故障恢复

  

优先级:在 redis.conf 中默认 slave-priority 100,值越小优先级越高。

偏移量:指获得原主机数据最全的概率。

runid:每个 redis 实例启动后都会随机生成一个 40 位的 runid。

 

 

参考:Redis哨兵(Sentinel)模式 - 简书 (jianshu.com)

参考:Redis | ZC 的学习录 (zhangc233.github.io)

 
posted @ 2022-05-01 20:44  ☞@_@  阅读(75)  评论(0编辑  收藏  举报