CAP定理/BASE理论 之 大白话
什么是CAP?
- CAP是数据通信时遇到的问题, 其由于满足多节点之间通信必然做出的某种取舍
- 一致性 (Consistency)
a. 更新操作完成后使后续的请求数据完全一致, 但数据同步周期的长短将一致性分为3类
ⅰ. 强一致性- 更新操作完成后使后续的所有请求都能得到更新后的数据, 原理是分布式系统会将数据同步到所有的机器上后才会允许读取, 从而使数据强一致
ⅱ. 弱一致性 - 更新操作完成后, 由于部分机器未同步数据同时允许读取数据, 导致某些请求不能得到更新后的数据
ⅲ. 最终一致性 - 更新操作后, 根据一定的机制使数据最终保持一致, 更新周期较长, 场景消息队列消费机制同步数据
- 更新操作完成后使后续的所有请求都能得到更新后的数据, 原理是分布式系统会将数据同步到所有的机器上后才会允许读取, 从而使数据强一致
- 可用性 (Availability)
a. 当请求访问分布式服务中的某一个节点时, 此节点能否立即给出相应从而判断分布式服务可用性 当一个节点因为数据同步问题不能立即给出相应则视为当前分布式服务满足了CP舍弃了A, 但如果分布式服务中的当前节点的数据暂未全局同步就立即给出旧数据, 说明当前分布式服务满足了AP, 舍弃了C, 数据同步的过程在分布式服务中需要网络传输, 所以同步需要一个稳定的网络内, 如果网络不稳定导致数据暂未同步还需要做出及时的相应则满足AP, 反之满足CP - 分区容错性 (Partition tolerance)
a. 分区容错性是分布式服务的必要条件, 因为分布式服务各节点之间需通过网络通信, 不考虑分区容错性的服务是单机服务, 因为其不需要考虑数据同步问题及网络传输导致服务可用性问题,分布式服务必然产生容错问题, 容错问题包括数据同步问题及服务可用性问题, 所以在分布式系统中, 必然有P
什么是BASE理论?
- 在CAP定理的基础上延伸出的一种理论, 其通过业务层面的应对方案使服务更加完善
- 基本可用 (Basically Available)
a. 如果服务可以在不可用时提供临时的应对策略,但依旧可以保证部分可用称之为基本可用 - 软状态 (Soft State)
a. 节点之间数据同步存在一种中间副本数据, 使数据可延迟同步 - 最终一致性 (Eventual Consistency)
a. 由于强一致对网络稳定性要求过高, 最终一致性是一种相对保守的应对策略, 可以根据消息消费机制是数据最终一致
最新笔记: https://www.yuque.com/docs/share/53f24f94-e610-4c6e-9351-8e7ac8a50dca?# 《CAP定理/BASE理论》