ACP原理

一.什么是ACP原理?

        CAP原理是分布式系统中的核心概念,它由三个基本要素组成:一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。CAP原理指出,在一个分布式系统中,无法同时满足这三个要求,只能在它们之间进行权衡取舍。 

         C: 一致性(Consistency)
        是指在系统中的所有副本在任何时刻都具有相同的数据,即当系统中一个节点进行数据更新的同时,其他节点能够读取到更新到的最新数据;

         A:可用性 可靠性(Availability)        
        是指系统在有限的时间内对请求做出响应,并返回相应的结果, 即系统在任何时候都处于可用状态,用户能随时随地的使用;

        P: 分区容错性(Partition tolerance)
         指系统在遇到网络分区或部分节点失效的情况下,仍然能够继续运行并保持数据的一致性和可用性。    

        值得注意的是:当发生网络分区时,为了保持分区前的一致性,系统可能需要暂停对外服务,牺牲可用性;或者为了保持可用性,系统可能需要在分区问题解决后进行数据同步,牺牲一致性。所以系统设计者只能在一致性、可用性和分区容错性中选择其中两个进行保证,无法同时满足所有三个要求,但实际上可以通过一些策略和技术手段来实现某种程度的权衡和折中。这需要根据具体的系统需求和业务场景,综合考虑数据的重要性、用户的需求以及系统的可靠性。 

二、CAP使用权衡
1、保留CA,放弃P
如果想避免分区容错性问题的发生,一种做法是将所有的数据(与事务相关的)都放在一台机器上。虽然无法100%保证系统不会出错,但不会碰到由分区带来的负面效果。当然这个选择会严重的影响系统的扩展性。

作为一个分布式系统,放弃P,即相当于放弃了分布式,一旦并发性很高,单机服务根本不能承受压力。

像很多银行服务,确确实实就是舍弃了P,只用单台小型机+ORACLE保证服务可用性。

2、保留CP,放弃A
相对于放弃“分区容错性“来说,其反面就是放弃可用性。一旦遇到分区容错故障,那么受到影响的服务需要等待一定的时间,因此在等待期间系统无法对外提供服务。

作为分布式系统,有分区服务发生问题很有可能,如果因为某些服务不能用,导致整个服务都不能用,这个根本不是好的分布式系统。

3、保留AP,舍弃C
这里所说的放弃一致性,并不是完全放弃数据一致性,而是放弃数据的强一致性。即放弃了同一时刻的数据一致性,而保留数据的最终一致性。

以网络购物为例,对只剩下一件库存的商品,如果同时接受到了两份订单,那么较晚的订单将被告知商品告罄。

通常情况下,很多分布式服务系统都是采用该方案,保证可用性性,分布式服务,因为某些分区服务发生问题,先容忍,最终通过一些折中的方法达到最终数据一致性。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值