IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis集群模式与Raft协议 -> 正文阅读

[大数据]Redis集群模式与Raft协议

主从

主从数据同步,当主节点宕机时手动启用从节点作为主节点做灾难转移。

工作机制

salve向master发起同步请求,master收到后生成RDB并将期间命令存在buffer中(还有offset偏移量),salve节点同步初始化后根据偏移量向master节点继续同步,由于master节点buffer环状写入如果salve找不到offset则从新同步。

哨兵sentinel

主从失效不能实现自动选主,所以引入哨兵监控Redis主从集群,当master宕机后哨兵自动从salve中选出一个作为新master。那为了保证集群高可用sentinel也不是单点机器而是集群。

sentinel既然是集群那么选主结果就要一直否则会出现多个master的情况。sentinel集群通过raft协议实现节点选择,当一个sentinel联系不上master会认定主观下线,sentinel之间交流信息,如果超过一半sentinel认为master节点下线则触发选举机制,先选举leader哨兵,leader哨兵再将优先级最高、偏移量最大的从服务器选为主服务器

选举过程

选举可能失败但任期都会加一

每个哨兵在发现自己于主节点断开后会自身从跟随着转为候选人,等待一个随机时间后,向其他节点发起选票拉取,如果得到超过半数机器选票则自身转为leader并向其他节点发送心跳。

任期情况

如果一个server的编号小于另一个的,那么它会将自己的编号更新为较大的那一个;如果leader或者candidate发现自己的编号不是最新的了,就会自动转变为follower;如果接收到的请求的term编号小于自己的当前term将会拒绝执行

日志进度

Raft通过投票过程确保只有拥有全部已提交日志的candidate能成为leader,在投票的时候会阻止落后的服务器成为leader,follower只有在确保candidate的日志至少不比自己落后的情况下才会投赞成票。

日志同步

新主节点向跟随着发送日志同步心跳,携带任期与log,如果没有找到此log,follower将拒绝此消息,那么leader端对应follower的nextIndex会减一然后对此follower进行AppendEntries操作。如果再次失败那么再进行自减并执行AppendEntries操作。循环直到成功。

日志提交

leader判断当前term的AppendEntries消息复制成功数量是否超过半数,超过半数那么标记此log为已提交,并且应用此log和之前未提交的所有log到本地状态机

分片集群

Redis将整个存储内容分为16384个slot分配在集群中每个节点上,每个key通过crc16得到16bit值再对16384取模。集群中节点也会向其他节点发送自己所载的slot,如果数据不在自己节点上则通过该映射告知客户端向其他节点请求数据。如果增删节点slot进行转移返回move命令客户端向其他节点请求并客户端更新映射缓存,如果正在迁移则返回ask命令请求转移但不跟新缓存映射。

master之间分片,各自的slave还保持复制,当master节点宕机时选举新节点(raft协议)。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:17:06  更:2022-03-11 22:19:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:55:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码