zoukankan      html  css  js  c++  java
  • redis-主从迁移

    当主库宕机之后,从库可以处理读请求,但是写请求无法处理

    这时就需要进行主从迁移,那么主从迁移有几个问题需要解决

    1. 如何确认主库是真的挂了

    2. 该选择哪个从库升级为主库

    3. 怎么通知其他从库 主库被替代了

    redis 哨兵模式解决了上面的问题

    哨兵是一个运行在redis中的一个进程,主要负责 监控 选主 和通知

    监控: 哨兵定时发送心跳到主从库 从库无回复会被标记为下线,主库无回复会切换主库

    选主: 利用raft算法选举出新的主库

    通知: 哨兵发送通知到所有的从库,让他们进行replicaof与主库建立连接 进行数据复制,然后哨兵发送新库信息给客户端 客户端请求转发到新库地址

    sentinel需要做两个判断

    1. 判断主库是否下线

      哨兵周期性的发送ping命令,如果主库超时回复会被标为主观下线

    2. 选主

      如何不误判呢? 那就去是建立哨兵集群,引入多个哨兵实例一起来判断,当n/2+1的哨兵判定主库主观线下了,就开始在从库中选主

      先过滤掉老是跟主库断连的从库,然后给剩余的从库打分

      第一轮,优先级高的从库优先 用户可以配置,给不同的从库设置优先级,如果从库优先级一样就开启第二轮

      第二轮,和旧主库同步程度最高的得分最高,如果offset一致进行第三轮

      第三轮,id号小的从库得分高

    当主库宕机了在主从替换期间,客户端能否正常请求?

    1. 读请求从库可以处理,写请求无法处理,对写入请求返回值不敏感的操作可以先缓存起来,等迁移完毕之后再写入.

    主从迁移之后客户端如何得到通知?

    1. 哨兵以广播的方式通知连接的客户端

  • 相关阅读:
    视图
    Adaboost算法
    关于友谊的残酷真相
    排序与搜索
    队列

    Xgboost集成算法
    川普“零容忍”政策:拆散移民家庭惹争议
    第八篇:使用字符串流对象进行格式转换
    第七篇:两个经典的文件IO程序示例
  • 原文地址:https://www.cnblogs.com/isnotnull/p/14558146.html
Copyright © 2011-2022 走看看