分布式事务学习--CAP理论学习总结

CAP原则是分布式系统设计的基础,包括一致性(C)、可用性(A)和分区容忍性(P)。一致性要求所有节点数据同步后才能读取,可能导致延迟。可用性则强调系统在任何时候都能响应请求,即使返回旧数据。分区容忍性确保在网络分区情况下,系统仍能运行。为实现这三者平衡,通常需要权衡和策略调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


CAP是Consistency,Availability,Partition tolerance ,分别是 一致性,可用性,和分区容忍性

C 一致性

在这里插入图片描述
用Mysql主从来举例,当一个写操作后的读操作都必须是数据的最新状态,当数据分布到多个节点上,如一主多从,在任意节点读取到的数据都必须是最新状态。
如上图,商品信息的读取要满足一致性就要实现

  • 商品写入主数据库,从数据库查询新数据也成功
  • 商品服务写入主数据库失败,查询从数据库最新数据也失败
  • 写入主数据库后数据要同步到从数据库,在数据同步完成之前得把从数据库锁定,待同步完成后在释放锁,以避免新数据写入后,从数据库查出旧数据
    分布式系统一致性的特点
  • 由于存在数据同步的过程,写操作存在的响应有一定的延迟
  • 为了保证数据的一致性会对资源暂时锁定,待数据同步完成后释放资源

A 可用性

还是上面的数据库例子,从数据库收到查询请求后得立马返回,且不能出现错误或者超时的状态
数据库案例如何实现可用性

  • 主数据库要同步数据到从数据库,由于要保证数据库的可用性,不能对资源进行锁定,即使数据还没有同步过来数据库也得返回数据,那怕是旧数据,如果连旧数据也没有,则返回一个约定好的默认返回,不能出现错误或者超时

p 分区容忍性

通常分布式系统会部署在不同的服务器上,不可避免的的会出现由于网络问题而导致节点之间通信失败,此时还是可以对外提供服务,这就是分区容忍性,比如数据库同步失败,但是还是不影响读写操作,尽量使用异步的方式来代替同步的方式,最常见的就是各种集群,如果某个节点挂了,但是不影响整个系统的运行。

学习资料来源 https://www.bilibili.com/video/BV1FJ411A7mV?p=4&share_source=copy_web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值