导图社区 redis哨兵思维导图
redis哨兵思维导图,讲述了主从复制的问题、高可用需要做到、哨兵的部署、实现原理等,希望梳理的内容对你有所帮助!
这是一篇关于Codecademy - Javascript的思维导图,主要内容有Variables、Functions、lf statement、Switch statement、Loops等。
这是一篇关于js模块化的思维导图,主要内容有模块加载方案、前端模块化开发的价值、模块的循环引用。
typescript语法的思维导图,主要内容有基本数据类型、对象类型、任意类型Any、联合类型Union Types、元组Tuple等。
社区模板帮助中心,点此进入>>
英语词性
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
法理
刑法总则
【华政插班生】文学常识-先秦
【华政插班生】文学常识-秦汉
文学常识:魏晋南北朝
【华政插班生】文学常识-隋唐五代
【华政插班生】文学常识-两宋
哨兵
主从复制的问题
主从的非高可用
主节点挂掉,从节点晋升为主节点需要人工干预
应用方无法感知主节点的变化,导致写丢失、读错误
主节点的读写、存储受到单机的限制
高可用需要做到
自动发现故障和完成故障转移
通知应用方
哨兵的部署
部署在多台物理机上
哨兵个数为奇数
一套哨兵 VS 多套哨兵
一套哨兵监控多个redis主节点
优:维护成本低
缺:一套哨兵出问题影响多个redis结点、网络连接多开销大
多套哨兵监控多个redis主节点
优:redis结点彼此隔离
缺:存在维护成本、资源浪费
如何选择?
根据业务划分
实现原理
三个定时任务
每10s,哨兵向主从结点发送info命令更新拓扑结构(注:对主节点执行info replication可以获取从结点的信息(ip、端口等),因此哨兵不需要显示地对从结点进行监控)
每2s,哨兵向__sentinel__:hello平道发送信息:该哨兵对主节点的判断、自身的信息
每1s,哨兵向主从结点、其余哨兵发送ping命令
主观下线、客观下线
主观下线:对down-after-milliseconds没有反应的结点做主观下线
客观下线:大多数哨兵对主节点下线的判定
哨兵领导者选举
1.哨兵向其他哨兵发送sentinel is-master-down-by-addr命令选举自己为领导者
2.在一轮选举中,收到请求的哨兵没有同意过sentinel is-master-down-by-addr请求则同意请求,否则拒绝
3.票数大于max(quorum,num(sentinels)/2+1)的哨兵成为领导者
4.没有选出哨兵则进行下一轮
故障转移
依次根据:过滤、从节点优先级、复制偏移量最大、runid最小 选择最好的从结点作为新的主节点