Redis集群-哨兵
哨兵:
哨兵(sentinel),是一个分布式系统,用于对主从结构中的每一台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。
哨兵的作用:
启用哨兵模式:
配置一拖二的主从结构
配置三个哨兵(配置相同,端口不同)
参看sentinel.conf
启动哨兵
redis-sentinel sentinel-端口号.conf
哨兵工作原理:
阶段一:监控阶段
sentinel会向master要状态,向slave要状态、向sentinel要状态、sentinel之间会建立一个网络,互相发布信息,订阅信息、同步信息
阶段二:通知阶段:
sentinel之间维护一个长期的信息对等的阶段
阶段三:故障转移
flags:SRI_S_DOWN 主观下线 一个sentinel认为master挂了
flags:SRI_O_DOWN 客观下线 超过半数的sentinel认为master挂了
竞选:
发送:
SENTINEL is-master-down-by-addr……
挂的ip
挂的端口
竞选次数
自己的runid
服务器列表中挑选备选master:
- 在线的
- 响应慢的
- 与原master断开时间久的
- 优先原则:优先级、offset、runid
发送指令(sentinel)
- 向新的master发送slaveof no one
- 向其他slave发送slaveof新masterIP端口
还没有评论,来说两句吧...