reids哨兵

1.redis哨兵理解

定义:哨兵在后台进行监控master主机是否故障,如果故障则进行投票数据自动将slave升级为master代替为新的主库,继续对外进行服务
作用
1. 无人值守:无需redis中mster向slave进行复制时,主机故障后会自动选取新主机
2. 消息通知:哨兵可以将故障转移的结果发送给客户端
3. 故障转移:如果master异常,会进行主从切换,选取新的slave转为master
4. 配置中心,客户端通过连接哨兵来过去当前redis服务的主节点地址

2. 哨兵配置

-- 主从更换名称即可
-- vim sentinel26379.conf
-- vim sentinel26380.conf
vim sentinel26381.conf

-- 服务监听地址,用于客户端的连接,默认为本地地址
bind 0.0.0.0
daemonize yes
-- 安全保护模式
protected-mode no
port 26379
-- 日志路径
logfile "/myredis/sentinel26379.log"
-- pid文件路径
pidfile /var/run/redis-sentinel26379.pid
dir /myredis
--                           更改对应的id   端口 投票数
sentinel monitor mymaster 192.168.111.169 6379 2
--                            密码
sentinel auth-pass mymaster 111111

其他流程,网上很多可以自己找

3.哨兵运行流程和选举原理

  1. 当主从配置中的原master失效后,sentinel可以进行选举一个新的master,用于进行接替原来的master工作,主从配置中的其他reids服务器自动指向新的master同步,一般建议sentinel采取基数台,防止一台sentinel无法连接到master导致切换。
  2. 主观下线
    所谓主观下线(Subjectively Down, 简称 SDOWN)指的是单个Sentinel实例对服务器做出的下线判断,即单个sentinel认为某个服务下线(有可能是接收不到订阅,之间的网络不通等等原因)。主观下线就是说如果服务器在[sentinel down-after-milliseconds]给定的毫秒数之内没有回应PING命令或者返回一个错误消息, 那么这个Sentinel会主观的(单方面的)认为这个master不可以用了。
    master在多长时间内一直没有给Sentine返回有效信息,则认定该master主观下线。也就是说如果多久没联系上redis-servevr,认为这个redis-server进入到失效(SDOWN)状态
    3. 客观下线
    意思时一定数量的sentinel,多个哨兵达成一致意见才能进行认为master客观上异常
    4. 选出领导者哨兵
    当主节点被客观认为下线了,各个哨兵会进行投投票,选出领导者哨兵,由改哨兵进行故障迁移
    怎么选出的领导者哨兵?
    在这里插入图片描述
    监视该主节点的所有哨兵都有可能被选为领导者,选举使用的算法是Raft算法;Raft算法的基本思路是先到先得:

即在一轮选举中,哨兵A向B发送成为领导者的申请,如果B没有同意过其他哨兵,则会同意A成为领导者

5.故障迁移

  1. 某个slave被选中成为新的master
    选出master规则
    在这里插入图片描述

    1)redis.conf 文件中,优先级slave-priority或者replica-priority最高的从节点(数字越小优先级越高)
    2)复制偏移位置offset最大的从节点
    3)最小的Run ID 的从节点

  2. 老的slave连接新的master
    1)执行slaveof no one 命令让选出来的从节点成为新的主节点,并通过slaveod命令让其他界面成为从节点
    2)sentinel leader会对选举出的master执行slave no one操作 ,将其提升为master节点
    3)sentinel leader 向其他的slave发送命令,让剩余的slave陈伟新的master节点的slave

  3. 之前的老的master重新上线会成为新master的slave

4.哨兵使用建议

  1. 哨兵节点的数量应该为多个,保证高可用
  2. 哨兵节点数量为奇数个
  3. 各个哨兵配置应该为一样
  4. 哨兵集群+主从复制,并不能保证master异常下数据零丢失
  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值