这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天,本文主要以概括总结,全局记录为主,而不是作为细致的知识点讲解,细节之处多有疏忽还望多多包容。
一、本堂课重点内容:
- 理论基础
- 分布式事务
二、详细知识点介绍:
CAP 理论
| 选项 | 描述 |
|---|---|
| C (Consistence) | 一致性,指数据在多个副本之间能够保持一致性的特性(严格的一致性) |
| A (Available) | 可用性,指系统提供的服务必须一直处于可用的状态,每次请求都能获得非错的响应)——但不保证获取的数据为最新的数据 |
| P (Network partitioning) | 分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障 |
CAP理论往往运用于数据库领域,同样可以适用于分布式存储方向
CA:放弃分区容错性,加强一致性和可用性,其实就是传统的单机数据库的选择
AP:放弃一致性(这里说的一致性是强一致性),追求分区容错性和可用性,例如一些注重用户体验的系统
CP:放弃可用性,追求一致性和分区容错性,例如与钱财安全相关的系统
ACID理论
事务是数据库系統中非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行。 数据库事务拥有四个特性ACID,即分别是原子性 (Atomicity)、一致性 (Consistency)、隔离性 (Lsolatiom)和持久性(Durability)
原子性 (A) : 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。
一致性(C) :一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态
隔离性 (I) : 隔离性是当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能设其他事务所干扰. 多个并发事务之间要相互隔离
持久性 (D) : 持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的。即便是在数据库系统遇到故障的情况下也不会丢失提交必务的操作.
BASE 理论
Base 理论是对 CAP 中一致性和可用性权衡的结果, 其来源于对大型互联网分布式实践的总结, 是基于 CAP 定理逐步演化而来的. 其核心思想是:
- Basically Available( 基本可用 ): 假设系统, 出现了不可预知的故障, 但还是能用,相比较于正常的系统而言, 响应时间上的损失, 或功能上的损失.
- Soft state (软状态): 允许系统中数据存在中间状态, 并认为该状态不影响系统的整体可用性, 即允许系统在多个不同结点的数据副本存在数据延时
- Eventually consistent(最终一致性): 系统能够保证在没有其他新的更新操作的情况下, 数据最终一定能达到一致的状态, 因此所有的客户端对系统的数据访问最终都能获取到最新的值.
三、课后个人总结:
分布式的背后理论支撑是分布式具有高性能的重要基石,要熟记于心