redis-集群-哨兵模式

基于主从增加哨兵模式,主从实现了高并发,哨兵实现了高可用

特点(监控,自动故障修复,通知,高可用)

1 监控: sentinel会监控每台服务是否按预期工作,充当服务的发现
2 自动故障修复: 当主节点故障后,会从子节点选出一个作为主节点,故障解除后以新的主节点为主
3 通知: 当故障转移后,会将最新消息通知到redis客户端

缺点(脑裂)

脑裂:当主节点 子节点和sentinel在不同网络分区的时候,sentinel没有感知到主节点的心跳,通过选举重新推举了一个从节点升为主节点,此时存在两个主节点,并且客户端还在旧主写入数据,新节点无法写入数据,当网络恢复后,sentinel会将旧主降为子节点导致数据丢失的情况

脑裂的解决方案

通过修改redis的配置,设置最少的从节点数量以及减少主从同步的延迟时间,达不到要求就拒绝请求,避免大量数据丢失,

主从选举规则

1 判断主从节点断开的时间长短,超过规定时间则排除该节点
2 判断子节点的slave-priority,值越小优先级越高(不能设置为0)
3 如果slave-priority一样,根据offset判断,值越大优先级越高(与主节点数据差异最小)
4 判断子节点id,id越小优先级越高

sentinel的服务状态监控

是通过心跳机制实现的,默认每隔1s向每个实例发送ping指令。

服务状态有两种(主观下线,客观下线)

主观下线:某sentile发现某实例没有在规定时间响应,判断他为主观下线
客观下线:一定数量的quorum的sentinel认为该实例主观下线,则被客观下线
//quorum的数量超过sentinel的一半

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值