分布式理论了解
分布式事务
事务要有ACID的特性
分布式会出现哪些问题导致数据不一致?
- 网络问题-硬件障碍、网络都懂、网络拥塞
- 没有发送出去
- 发送出去返回没有收到
- 程序出错
- 代码一场
- 宕机
CAP理论
C:consistency(一致性):
更新完成后,所有节点在同一时间的数据完全一致
客户端:并发访问更新过的数据如何获取
服务端:更新如何广播到整个系统保证数据一致
A:Availability(可用性):
服务一直可用,并且是正常响应时间
P:Partition Tolerance(分区容错性):
某个节点或者网络分区故障的时候仍然能够对外提供满足一致性和可用性的服务。分布式系统中某一个或者几个机器当即了其他的还能正常运转满足系统需求
取舍:
CP(一致性 + 分区容忍性)
- 牺牲可用性,确保数据的强一致性,即即使部分节点不可用,也要保证数据不会出现冲突。
- 适用场景: 金融交易、银行系统等需要强一致性的场景。
- 典型代表: Zookeeper、HBase。
AP(可用性 + 分区容忍性)
- 牺牲一致性,保证系统在分区时仍然可用,但可能会返回旧数据(最终一致性)。
- 适用场景: 高可用性要求更高的服务,如社交媒体、缓存系统(如 DNS)。
- 典型代表: DynamoDB、Cassandra、Redis。
CA(一致性 + 可用性)
- 牺牲分区容忍性,即一旦出现网络分区,整个系统可能不可用。
- 由于分布式系统不可避免地会遇到网络分区,纯 CA 模式几乎不现实,一般适用于单机或局域网环境。
- 典型代表: 传统的关系型数据库(如 MySQL 在单节点模式下)。
Base理论
basically available基本可用,soft state软状态,eventually consistent最终一致性,即使无法做到强一致性,也能实现最终可用,是CAP理论的一种权衡结果
比如响应时间慢一些,系统功能损失一些(秒杀高峰的时候将部分消费者引导到降级页面)
软状态指的是允许存在中间状态,并且不影响整体的可用性,比如允许系统在不同节点的数据副本之间进行数据同步并且存在🪨
最终一致性,和强一致性不同,允许数据在一段时间内是不一致的,但是最后会达到一致的状态
分布式理论了解
http://example.com/2025/03/31/分布式理论了解/