Redis中的可用性保证之Sentinel的Ratf 算法
在分布式存储系统中,通常通过维护多个副本来提高系统的可用性,那么多个节点之间必须要面对数据一致性的问题。Raft 的目的就是通过复制的方式,使所有节点达成一致,但是这么多节点,以哪个节点的数据为准呢?所以必须选出一个Leader。
大体上有两个步骤:领导选举,数据复制。
Raft 是一个共识算法(consensus algorithm)。比如比特币之类的加密货币,就需要共识算法。Spring Cloud 的注册中心解决方案Consul 也用到了Raft 协议。
Raft 的核心思想:先到先得,少数服从多数。
Raft 算法演示:
http://thesecretlivesofdata.com/raft/
总结:
Sentinle 的Raft 算法和Raft 论文略有不同。
1、master 客观下线触发选举,而不是过了election timeout 时间开始选举。
2、Leader 并不会把自己成为Leader 的消息发给其他Sentinel。其他Sentinel 等待Leader 从slave 选出master 后,检测到新的master 正常工作后,就会去掉客观下线的标识,从而不需要进入故障转移流程。
Redis中的可用性保证之Sentinel的Ratf 算法相关推荐
- Redis中的可用性保证之Sentinel 原理
如何实现主从的自动切换?我们的思路: 创建一台监控服务器来监控所有Redis 服务节点的状态,比如,master 节点超过一定时间没有给监控服务器发送心跳报文,就把master 标记为下线,然后把某一 ...
- Redis中的可用性保证之Sentinel服务下线
Sentinel 默认以每秒钟1 次的频率向Redis 服务节点发送PING 命令.如果在down-after-milliseconds 内都没有收到有效回复,Sentinel 会将该服务器标记为下线 ...
- Redis中的可用性保证之Sentinel故障转移
如果master 被标记为下线,就会开始故障转移流程. 既然有这么多的Sentinel 节点,由谁来做故障转移的事情呢? 故障转移流程的第一步就是在Sentinel 集群选择一个Leader,由Lea ...
- 【转】Redis 分布式——可用性保证之 Sentinel(实战篇)
前言 在上个篇章我们阐述了Sentinel的原理,可能大家还是云里雾里,需要来点实战性的东西,那这个篇章我们来个实战篇吧-话不多说,我们开始今天的吹牛皮- 正文 Sentinel 实战 Sentine ...
- Redis中的Sentinel 配置
为了保证Sentinel 的高可用,Sentinel 也需要做集群部署,集群中至少需要三个Sentinel 实例(推荐奇数个,防止脑裂). hostname IP 地址 节点角色&端口 mas ...
- mysql怎么保证热点数据_MySQL里有2000w数据,redis中只存20w数据,如何保证redis中数据都是热点数据...
计算20w的热点数据占据内存的大小.然后在Redis中,配置最大内存容量,在redis.conf文件maxmemory 标签中配置. 当redis内存数据大小上升到一定大小的时候,就会施行数据淘汰策略 ...
- 解说redis中如何实现高可用
redis中为了实现高可用(High Availability,简称HA),采用了如下两个方式: 主从复制数据. 采用哨兵监控数据节点的运行情况,一旦主节点出现问题由从节点顶上继续进行服务. 主从复制 ...
- php怎么用redisson,Redis中RedisTemplate和Redisson管道的使用
当对Redis进行高频次的命令发送时,由于网络IO的原因,会耗去大量的时间.所以Redis提供了管道技术,就是将命令一次性批量的发送给Redis,从而减少IO. 一.Jedis对redis的管道进行操 ...
- Redis中AKF原则的应用
Redis 单机 .单节点.单实例 缺点:1. 单点故障(一台服务如果挂了,整个系统不可用了)2. 容量有限3. 压力 过大 为了解决 单机的 问题 ,引入了AKF 原则 AKF X轴:直接水平复制应 ...
最新文章
- struts2 iterator list中对象的list 双层迭代
- class struct
- angular学习笔记(十三)
- 《Pro ASP.NET MVC 3 Framework》学习笔记之十六【示例项目SportsStore】
- Android关于Theme.AppCompat相关问题的深入分析
- Web布局连载——两栏固定布局(五)
- Docker上部署MariaDB
- Chain of Responsibility(职责链模式)
- ZendFramework-2.4 源代码 - 整体架构(类图)
- 预处理中的头文件stdio.h在哪?里面有什么?
- 一文搞定YOLO3代码详解
- 安信可Ca-01 4G模块调试
- Win10提示对电脑进行保护已阻止此应用无法打开
- 计算机毕设 SpringBoot 校园志愿者管理系统 志愿者管理系统 志愿者信息管理系统Java Vue MySQL数据库 远程调试 代码讲解
- 打字会出声音的计算机,笔记本电脑打字时发出声响敲击电脑时也有回声发出怎么办? 爱问知识人...
- 中学计算机老师资质,2016下半年教师资格证考试中学信息技术备考指导
- Java Web 网络商城案例演示一、(环境搭建)
- PostgreSQL 从备份原理 到 PG_PROBACKUP
- 开源者的自我修养|为 ShardingSphere 贡献了千万行代码的程序员,后来当了 CEO
- Citrix 联机插件报错:找不到满足锁定要求的(AllowHotKey)的值