当前位置:网站首页>Common distributed theories (CAP, BASE) and consensus protocols (Gosssip, Raft)
Common distributed theories (CAP, BASE) and consensus protocols (Gosssip, Raft)
2022-08-03 16:03:00 【InfoQ】
一、CAP理论与BASE理论:
1、什么是 CAP 理论:
- C:Consistency 一致性:指强一致性,分布式系统中的所有节点在同一时刻具有同样的值、都是最新的数据副本,一致性保证了不管向哪台服务器写入数据,其他的服务器能实时同步数据
- A:Availability 可用性:部分结点宕机不影响整个集群对外提供服务,每次向未故障的节点发送请求,服务节点总能保证在有限的时间内处理完成并进行响应,从用户角度来看就是不会出现系统操作失败或者访问超时等问题,但是系统内部可能会出现网络延迟等问题
- P:Partition Tolerance 分区容错性:由于网络的问题错综复杂,如果某个节点因为网络等问题造成数据不一致,或者数据延迟很久才同步过来,虽然会影响部分节点数据的时效性,但是服务节点依然是可用的,分布式系统要能容忍这种情况的,也就是说,尽管网络上有部分消息丢失,但系统仍然可继续工作.

2、一致性的类别:
3、什么是 BASE 理论:
- BA 基本可用:指分布式系统在出现故障的时候,允许损失部分可用性,保证核心可用.但不等价于不可用.比如:搜索引擎0.5秒返回查询结果,但由于故障,2秒响应查询结果;网页访问过大时,部分用户提供降级服务等.
- 软状态:软状态是指允许系统存在中间状态,并且该中间状态不会影响系统整体可用性,即允许系统在不同节点间副本同步的时候存在延时.
- 最终一致性:系统中的所有数据副本经过一定时间后,最终能够达到一致的状态,不需要实时保证系统数据的强一致性.
二、一致性协议:
1、Gossip协议:

- (1)Gossip协议是周期性散播消息,每隔一段时间传播一次
- (2)被感染的节点,每次可以继续散播N个节点
- (3)每次散播消息时,都会选择尚未发送过的节点进行散播,不会向发送的节点散播
- (4)同一个节点可能会收到重复的消息,因为可能同时多个节点正好向它散播
- (5)集群是去中心化的,节点之间都是平等的
- (6)消息的散播不用等接收节点的 ack,即消息可能会丢失,但是最终应该会被感染

2、Raft一致性协议:
- (1)Leader节点:同大多数分布式中的Leader节点一样,所有数据的变更都需要先经过Leader
- (2)Follower节点:Leader节点的追随者,负责复制数据并且在选举时候投票的节点
- (3)Candidate候选节点:参与选举的节点,就是Follower节点参与选举时会切换的角色
2.1、Leader 选举:

2.2、数据日志的复制:












边栏推荐
- 袁小林:沃尔沃专注于出行的安全感,并且把它做到极致
- 6000 字+,帮你搞懂互联网架构演变历程!
- 2021年数据泄露成本报告解读
- [Code Hoof Set Novice Village 600 Questions] Define a function as a macro
- 5v充8.4v1A电流充电管理ic
- A new round of competition for speech recognition has started. Will natural dialogue be the next commanding height?
- 出海季,互联网出海锦囊之本地化
- Small Tools(4) 整合Seata1.5.2分布式事务
- 《安富莱嵌入式周报》第276期:2022.07.25--2022.07.31
- 深度学习——安装CUDA以及CUDNN实现tensorflow的GPU运行
猜你喜欢
随机推荐
FATFS | 中文显示 | 长文件名
Ark server opening tutorial win
【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01
unity用代码生成LightProbeGroup
Convex Optimization of Optimal Power Flow (OPF) in Microgrids and DC Grids (Matlab Code Implementation)
How much does Ark Survival Evolved cost?
一文看懂推荐系统:召回01:基于物品的协同过滤(ItemCF),item-based Collaboration Filter的核心思想与推荐过程
30W 2C(JD6606S + FP6652X2)BOM
mysql delete execution error: You can't specify target table 'doctor_info' for update in FROM clause
Ark server open tool, server tutorial win
STM32的HAL和LL库区别和性能对比
【Unity入门计划】基本概念(6)-精灵渲染器 Sprite Renderer
泰山OFFICE技术讲座:段落边框的绘制难点在哪里?
Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
请问大家,MySQL全量怎么样可以提高性能呢?我这里瓶颈是在Source上,在不增加并行度的情况下,
mysql delete 执行报错:You can‘t specify target table ‘doctor_info‘ for update in FROM clause
一文看懂推荐系统:召回02:Swing 模型,和itemCF很相似,区别在于计算相似度的方法不一样
MATLAB gcf figure save image with black background/transparent background
ECCV 2022 | 基于关系查询的时序动作检测方法
用户侧有什么办法可以自检hologres单表占用内存具体是元数据、计算、缓存的使用情况?








