redis哨兵机制哨兵机制核⼼作⽤
核⼼操作流程
哨兵的配置
启动命令: f --ntinel
# 配置⽂件在ntinel运⾏期间是会被动态修改的
# ntinel如果重启时,就可以根据这个配置来恢复其之前所监控的redis集群的状态
# 绑定IP
bind 0.0.0.0
# 默认yes,没指定密码或者指定IP的情况下,外⽹⽆法访问
protected-mode no陷入困境英语
# 哨兵的端⼝,客户端通过这个端⼝来发现redis
port 26380
# 哨兵⾃⼰的IP,⼿动设定也可⾃动发现,⽤于与其他哨兵通信
ntinel announce-ip
# 临时⽂件夹
dir /tmp
# ntinel监控的master的名字叫做mymaster,地址为 60.205.209.106 6380,两个及以上哨兵认定为死亡,才认为是真的死亡
ntinel monitor mymaster 60.205.209.106 6380 2
# 发送⼼跳PING来确认master是否存活
# 如果master在“⼀定时间范围”内不回应ping 或者是回复了⼀个错误消息,那么这个ntinel会主观地(单⽅⾯地)认为这个master已经不可⽤了
ntinel down-after-milliconds mymaster 1000
# 如果在该时间(ms)内未能完成failover操作,则认为该failover失败
ntinel failover-timeout mymaster 3000
# 指定了在执⾏故障转移时,最多可以有多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越⼩,同步的时间越长,完成故障转移所需的时间就越长
阿格尼丝
ntinel parallel-syncs mymaster 1
ntinel 通过info replication 发现redis主从信息
主观下线superstar什么意思
单个哨兵⾃⾝认为redis实例已经不能提供服务
检测机制:哨兵向redis发送ping请求,+PONG\-LOADING\MASTERDOWN这三种情况视为正常,其他回复均视为⽆效。造价工程师成绩查询
对应配置⽂件的配置项:ntinel down-after-milliconds mymaster 1000
客观下线
⼀定数量值的哨兵认为master已经下线。
检测机制:当哨兵主管认为master下线后,则会通过SENTINEL is-master-down-by-addr命令,询问
其他哨兵是否认为master已经下线,如果达成共识(达到quornum个数),就会认为master节点客观下线,开始故障转移流程。
对应配置⽂件的配置项:ntinel monitor mymaster 192.168.0.105 6380 2
slave选举⽅案
2011年6月英语四级听力节点状态:⾮ S_DOWN,O_DOWN,DISCONNECTED
love love love 英文版
判断规则:(down-after-milliconds * 10) +milliconds_since_master_is_in_SDOWN_stateSENTINEL slaves mymaster
am oled优先级: f中的⼀个配置项: slave-priority 值越⼩,优先级越⾼
数据同步情况:Replication offt procesd
最⼩的run id:run id ⽐较⽅案: 字典顺序, ASCII码
主从切换的过程
针对即将成为master的slave节点,将其撤出主从集群
⾃动执⾏:slaveof NO ONE
针对其他slave节点,使它们成为新master的从属
⾃动执⾏:slaveof new_master_host new_master_port
哨兵如何通信的雅思基础
1.哨兵之间的⾃动发现
2.哨兵之间通过命令进⾏通信
3.哨兵之间通过订阅发布进⾏通信
哨兵领导选举机制
基于Raft算法实现的选举机制,流程简述如下:
1. 拉票阶段:每个哨兵节点希望⾃⼰成为领导者;
2. ntinel节点收到拉票命令后,如果没有收到或同意过其他ntinel节点的请求,就同意该ntinel 节点的请求(每个ntinel只持有⼀个同意票数);
3. 如果ntinel节点发现⾃⼰的票数已经超过⼀半的数值,那么它将成为领导者,去执⾏故障转移;社交网络 下载
4. 投票结束后,如果超过failover-timeout的时间内,没进⾏实际的故障转移操作,则重新拉票选举。
qcc是什么意思