目录
- 1.简介
- (1)什么是哨兵
- (2)功能
- (3)启动
- 2.运行流程
- (1)运行流程
- (2)故障迁移(failover)
- (3)使用建议
1.简介
(1)什么是哨兵
- 哨兵是Redis的一种运行模式。
- 它专注于对Redis实例(主节http://www.devze.com点、从节点)运行状态的监控。
- 并能够在主节点发生故障时通过一系列的机制实现选主及主从切换,实现故障转移,确保整个Redis系统的可用性。
- 吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务。
(2)功能
- 主从监控:监控主从redis是否正常运行。
- 消息通知:哨兵可以将故障转移的结果发送给客户端。
- 故障转移:主机异常可进行主从切换。
- 配置中心:客户端通过连接哨兵来获得当前Redis服务的主节点地址。
(3)启动
通用配置(可根据android具体需求添加或修改)
bind 0.0.0.0 daemonize yes protected-mode no port 26379 logfile "/myredis/sentinel26379.log" pidfile /var/run/redis-sentinel26379.pid dir /myredis sentinel monitor mymaster 主机号 端口号 投票数 sentinel auth-pass mymaster 连接密码
启动命令
redis-sentinel 哨兵配置文件 --sentinel
2.运行流程
(1)运行流程
某台主机检测到主机状态异常,主观不可用(SDOWN)。
多个哨兵认为主机主观下线达到quorum指定数量认为是客观下线(odown)。
选出领导者哨兵
- 主机被判定为客观下线后,哨兵先协商选出一个兵王,并由该节点进行故障迁移。
- 哨兵领导者通过
Raft
算法选出(先到先得)。
由领导者哨兵开始推动故障迁移。
(2)故障迁移(failover)
- 新主登基:选出新的主机
- 节点健康前提下,redis.conf文件中,slave-priority或者replica-priority数字最小的从节点。
- 复制偏移位置offset最大的从节点。
- 最小Run ID的从节点。
- 群臣俯首
- 执行
slaveof no one
命令让选出来的从节点成为新的主节点. - 并通过
slavpythoneof xxx
命令让其他节点成为其从节点。
- 执行
- 旧主败服
- 将之前已下线的老master设置为新选出的新master的从节点。
- 当老master重新上线后,它会成为新master的从节点。
(3)使用建议
- 哨兵节点的数量应为多个,哨兵本身应该集群iFWNt,保证高可用。
- 哨兵节点的数量应该是奇数(避免出现平票情况)。
- 各个哨兵节点的配置应一致。
- 如果哨兵节点部署在docker等容器里面,尤其要注意端口的正确映射哨。
- 兵集群+主从复制,并不能保证数据零丢失
到此这篇关于Redis哨兵监控的文章就介绍到这了,更多相php关Redis哨兵监控内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论