Raft采用日志复制形式同步数据|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习Raft采用日志复制形式同步数据

开发者学堂课程【精通Spring Cloud Alibaba:Raft采用日志复制形式同步数据】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/634/detail/10109


Raft 采用日志复制形式同步数据

内容介绍

一、举例

二、如何实现日志的复制

三、回头看 Raft 协议有什么感悟

四、怎么表述数据一致性问题


一、举例

假设有三个节点为 nacos 领导者超时时间100ms、naocs 跟随者超时时间150ms、nacos 跟随者超时时间200ms,所有请求都会转发给 leader 事件,leader 写完后才会同步给 follower,依然遵循过半机制,这时候要满足过半的跟随者同意接收,leader 才会标记该数据是可提交状态。


二、如何实现日志的复制(数据是如何保持一致性的 类似 zap两阶段提交协议)

1.所有的写的请求都是统一的交给我们的领导角色完成,写入该对应的日志,标记该日志为被提交状态。

2.为了提交该日志,领导角色就会将该日志以心跳的形式发送给其他的跟随者节点,只要满足过半的跟随者可以写入该日志,则直接通知其他的跟随者节点同步该数据,这个过程称作为日志复制过程。


三、回头看下 Raft 协议算法有什么感悟?

其实有很多相似之处,无非在 Zab 协议中是通过 myid 谁大谁为领导,而 Raft 协议中是动态形成的,生成随机数,它也是要满足过半机制的。

image.png

中间 leader 超时时间肯定是最小的


四、怎么表述数据一致性问题

去面试时,谈谈 nacos 集群怎么保持数据一致性问题,原理是根据 Raft 协议去保持数据一致性问题。

选举的过程是怎么样的? (回顾怎么表述数据一致性)

1. 默认的情况下每个节点都是为跟随者。

2. 每个节点会随机的生成一个选举的超时时间,例如大概是100-300ms。

在这个超时的时间范围类必须要等待。

3. 超时时间过后,当前的节点的状态可能由跟随者变为竞选者状态。

会给其他的节点发出选举的投票通知,只要该竞选者有超过半数以上即可选为领导角色。

这点明白后面试官问 nacos 集群其实是一样的,nacos 就是 cp 的模式。

相关实践学习
日志服务之数据清洗与入湖
本教程介绍如何使用日志服务接入NGINX模拟数据,通过数据加工对数据进行清洗并归档至OSS中进行存储。
相关文章
|
23天前
|
存储 数据采集 JavaScript
深入理解数仓开发(一)数据技术篇之日志采集
深入理解数仓开发(一)数据技术篇之日志采集
|
25天前
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之pyodps的线程限制是什么意思
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
25天前
|
DataWorks 数据可视化 安全
DataWorks产品使用合集之SLS日志中新增了存在iotId这个字段,同步的时候怎么手动增加
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从Oracle数据库同步数据时,checkpoint恢复后无法捕获到任务暂停期间的变更日志,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5天前
|
监控 数据库
neo4j数据插入操作有日志吗
【6月更文挑战第29天】neo4j数据插入操作有日志吗
15 1
|
15天前
|
JSON 中间件 数据格式
Gin框架学习笔记(六)——gin中的日志使用
Gin框架学习笔记(六)——gin中的日志使用
|
2月前
|
监控 NoSQL MongoDB
mongoDB查看数据的插入日志
【5月更文挑战第22天】mongoDB查看数据的插入日志
32 3
|
24天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何同步SLS日志到odps上
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
C++
闪退日志的同步写入文件记录
闪退日志的同步写入文件记录
26 0
|
2月前
|
SQL 关系型数据库 数据库
实时计算 Flink版产品使用合集之同步PostgreSQL数据时,WAL 日志无限增长,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。