分布式初探 | 青训营笔记

52 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天

本节课讲述了分布式理论简介

分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现目标,可分为分布式计算、分布式存储、分布式数据库等。

CAP理论

C(consistence):一致性,指数据在多个副本能保持一致的特性

A(availablity):可用性,指系统提供的服务能一直处于可用状态,每次请求都能得到非错的响应,但是不保证获取的数据为最新数据

P(network partitioning):分区容错性,指分布式系统在遇到任何分区网络故障时,仍然能够对外提供满足一致性和可用性的服务,除非整个网络系统发生故障

现代分布式系统无法同时满足CAP理论的三个特性,最多只能同时满足其中2个

CA:放弃分区容错性,常见于传统单机数据库

AP:放弃强一致性,追求可用性和分区容错性,常见于注重用户体验的系统,能够第一时间为用户提供服务,如网络游戏

CP:放弃可用性,追求一致性和分区容错性,常见于对数据可靠性要求较高的系统,如银行系统

ACID理论

数据库事务的经典理论。ACID分别指原子性,一致性,隔离性,持久性

BASE理论

base理论是对CAP中一致性和可用性权衡的结果,其核心思想是:

基本可用:出现故障时系统大部分功能仍然可用,可能出现响应时间和系统功能的缺失

软状态:允许系统数据存在中间状态

最终一致性;系统没有进行其他更新操作的情况下,所有客户端访问数据最终都能达到一致的状态

MVCC

多版本并发控制协议,常见于MYSQL数据库中,是保证数据隔离性的重要方法,通过生成系统数据快照和间隙锁的方法,实现数据访问、修改的可重复读级别隔离,加上范围锁可防止幻读

RAFT协议

raft协议是工程上使用较广泛的强一致性、去中心化、高可用的分布式协议

其思想同样用于分布式redis中的集群和哨兵模式,功能体现是即使出现部分节点故障,网络延时等情况,也不影响各节点,提高系统整体可用性

系统节点分为:

leader领导者:负责处理所有客户端请求,并向follower同步请求日志,当日志同步到大部分节点后,通知follower提交日志

follower跟随者:不会发送任何请求,接收并持久化leader同步的日志,当leader出现故障时,主动推荐自己为candidate

candidate备选者:leader选举中的临时角色,向其他节点发送请求投票信息,如果获得大多数选票,则晋升为leader

image.png