redis -sentinel(哨兵)

1.使用背景:

# Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用:
一旦主节点宕机,从节点作为主节点的备份可以随时顶上来。 扩展主节点的读能力,分担主节点读压力。 
# 但是问题是: 
一旦主节点宕机,从节点上位,那么需要人为修改所有应用方的主节点地址(改为新的master地址),还需要命令所 有从节点复制新的主节点 
那么这个问题,redis-sentinel就可以解决了 
# 而redis-sentinel就是一个独立运行的进程,用于监控多个master-slave集群,自动发现master宕机,进行自动 切换slave > master。

2.功能实现:

1.不时的监控redis是否良好运行,如果节点不可达就会对节点进行下线标识 
如果被标识的是主节点,sentinel就会和其他的sentinel节点“协商”,如果其他节点也人为主节点不可达,就会选举 一个sentinel节点来完成自动故障转义 
2.在master-slave进行切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改 变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换

具体实现:

1.多个sentinel发现并确认master有问题

2.选举出一个sentinel作为领导

3.选出一个slave作为master

4.通知其余的slave成为新的master的slave

5.通知客户的主从变化

6.等待老的master复活成为新的master的slave

posted @ 2020-03-14 20:16  enazede  阅读(129)  评论(0编辑  收藏  举报