分布式系统理论的CAP

分布式系统理论和CAP

在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  1. 一致性(Consistency):同一个数据在集群中的所有节点,同一时刻是否都是同样的值。
  2. 可用性(Availability):集群中一部分节点故障后,集群整体是否还能处理客户端的更新请求。
  3. 分区容忍性(Partition tolerance):是否允许数据的分区,分区的意思是指是否允许集群中的节点之间无法通信。

为什么CAP不能同时满足

针对AC来说,假设存在两台mysql服务器A和B,A是主服务器,B是从服务器,为了保证AB数据一致性,用户在往A存储数据时候,A同时会发送给B发送一份数据进行存储。如果AB之间通信中断(P分区容忍性存在),那么用户发送发A服务器数据之后A就不能给B发送数据,即AB数据不一致(C一致性不满足)。

  • 如果想要保证数据一致性满足(C),那么此时服务器A只能拒绝对外提供服务器。此后服务器A和服务器B的数据就一致了(分区容忍性满足下,可用性和一致性不能同时满足)
  • 如果要满足可用性(A),那么服务器A此时可以将数据保存在本地,等待AB通信正常之后把数据发送给B,但是有一段时间服务器A和服务器B的数据不满足一致性。(分区容忍性满足下,可用性和一致性不能同时满足)
  • 结论 :分区容忍性满足下,可用性和一致性不能同时满足

为什么分区容忍性必须满足

分区容忍性实际是说允许两台服务器一定时间可以不进行数据交换(允许服务器之间通信不正常),因为服务器之间会产生各种问题,网络延迟,对方机器down机,所以这种情况是不能避免的。

如何选择一致性和可用性

最好在满足可用性的前提下,服务器A可以将数据保存在本地,等待AB通信正常之后把数据发送给B,但是有一段时间服务器A和服务器B的数据不满足一致性。但是程序可以正常执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值