美文网首页
第9章 哨兵

第9章 哨兵

作者: leon4ever | 来源:发表于2018-05-30 15:05 被阅读22次

    Redis Sentinel 哨兵架构是高可用方案。

    1. 基本概念

    1.1 主从复制问题

    主从复制模式的作用:

    1. 从节点作为后备,保证数据尽量不丢失
    2. 从节点扩展主节点的读能力

    问题:

    1. 一旦主节点故障,需要手动将一个从节点晋升
    2. 主节点写能力受到单机限制
    3. 主节点存储能力受到单机限制

    1.2 高可用

    故障转移过程

    1. 主节点故障,复制中断
    2. 选出一个从节点,slaveof no one使其成为新的主节点
    3. 更新应用方的主节点信息,重新启动应用方
    4. 命令另一个从节点复制新的主节点
    5. 待原来的主节点恢复后,去复制新的主节点

    1.3 Redis Sentinel的高可用性

    Redis Sentinel能自动完成故障发现和故障转移,包含若干个Sentinel节点和Redis数据节点。每个Sentinel节点会对数据节点和其余Sentinel节点进行监控。

    故障转移步骤:

    1. 主节点故障,主从复制失败
    2. 每个Sentinel节点通过定期监控发现主节点出现了故障
    3. 多个Sentinel节点对主节点的故障达成一致,选出某个sentinel节点作为领导者负责故障转移
    4. Sentinel领导者节点执行了故障转移

    2. 安装和部署

    3. API

    4. 客户端连接

    5. 实现原理

    5.1 三个定时监控任务

    一套合理的监控机制是Sentinel节点判定节点不可达的重要保证

    1. 每个10秒,每个Sentinel节点会向主节点和从节点发送info命令获取最新拓扑
    2. 每个2秒,每个Sentinel节点会向Redis数据节点的sentinel:hello频道发送对主节点的判断以及当前Sentinel节点信息
    3. 每个1秒,每个Sentinel节点会向主节点,从节点,其余Sentinel节点发送一条ping命令做一次心跳检测

    5.2 主观下线和客观下线

    1. ping命令后节点没有回复,sentinel节点对该节点做失败判定
    2. 客观下线,当Sentinel主观下线的节点是主节点时,向其他Sentinel节点询问,超过<quorum>个数即为客观下线

    5.3 领导者Sentinel节点选举

    实际的故障转移工作只由一个Sentinel节点完成,所以要选一个领导者。通过Raft算法实现选举

    选出最好的从节点.jpg

    6 开发与运维中的问题

    6.1 故障转移日志分析

    6.2 节点运维

    6.3 高可用读写分离

    要点:实时掌握所有从节点状态,把所有从节点看做一个资源池


    Redis Sentinel下的读写分离架构图.jpg

    相关文章

      网友评论

          本文标题:第9章 哨兵

          本文链接:https://www.haomeiwen.com/subject/xllnjftx.html