这是我参与【第五届青训营】伴学笔记创作活动的第11天
分布式理论——现代架构基石
分布式概念
分布式系统
是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
优点:
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
挑战:
- 普遍的节点故障
- 不可靠的网络
- 异构的机器与硬件环境
- 安全
常见的分布式系统
理论基础
CAP理论
C (Consistence) 一致性 ,指数据在多个副本之间能够保持一致的特性(严格的一致性)
A (Availability) 可用性,指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据
P (Network partitioning) 分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障
ACID理论
事务是数据库系统中非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行。
数据库事务拥有四个特性ACID,即分别是原子性(Atomicity) 、一致性(Consistency) 、隔离性 (lsolation) 和持久性(Durability)
- 原子性(A) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。
- 一致性(C) 是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态
- 隔离性(I) 隔离性是当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离
- 持久性(D) 是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
BASE理论
Base 理论是对 CAP 中一致性和可用性权衡的结果,其来源于对大型互联网分布式实践的总结,是基于 CAP 定理逐步演化而来的。其核心思想是:
Basically Available(基本可用): 假设系统,出现了不可预知的故障,但还是能用,相比较正常的系统而言: 响应时间上的损失或功能上的损失
Soft state(软状态):允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时
Eventually consistent (最终一致性): 系统能够保证在没有其他新的更新操作的情况下,数据最终一定能够达到一致的状态因此所有客户端对系统的数据访问最终都能够获取到最新的值
共识协议
RAFT协议
Paxos协议
补充
乐观锁
不会上锁,只是在执行更新时判断别人是否修改数据,只有冲突时才放弃操作
悲观锁
操作数据时直接把数据锁住,直到操作完成后才会释放锁,上锁期间其他人不能修改数据