CAP理论

C--consistency:

一致性是指,数据的读取永远读到的是最新的数据。当数据分布在多个节点上时,从任意节点读取到的数据永远是最新的状态。

如何实现一致性?

   1.写入主数据后要将数据同步到从数据库

   2.写入主数据后,在向从数据库同步期间要将从数据库锁定,待同步完成后再释放锁,避免在新数据写入成功后,查询到旧数据。

分布式系统一致性的特点?

   1.存在数据同步的过程,写操作的响应会有一定的延迟

   2.会对资源暂时锁定,同步完成后再释放

A--Availability:

可用性是指,无论任何事务操作都可以得到响应结果,且不会出现响应超时或相应错误。

如何实现可用性?

   1.写入主数据库后要将数据同步到从数据库

   2.不可将数据库中的资源锁定

   3.即使数据还没有同步过来,从数据库也要返回查询的数据,即使是旧数据,无旧数据就返回一个约定的默认信息,但不能返回错误或响应超时。

分布式系统可用性的特点:

   1.所有的请求都不会返回错误或响应超时

P--Partition tolerance:

分区容错性是指:分布式系统的各个结点部署在不同的子网,这叫做网络分区,不可避免的会出现网络问题而导致通信失败,此时仍可以对外提供服务,这就是分区容错性。

如何实现分区容错性?

   1.尽量使用异步取代同步操作,例如:redis主服务对从服务的数据同步

   2.添加从服务节点,其中一个从服务挂了,其他从服务也能提供服务

分区容错性的特点:

   1.分区容错性是分布式系统具备的基本能力。

CAP组合方式

在所有分布式事务场景中不会同时具备CAP三个特性,因为在具备了P的前提下C和A是不能共存的。

AP:

放弃一致性,追求分区容错性和可用性。例如:redis主从赋值

CP:

放弃可用性,追求一致性和分区容错性。例如:zookeeper追求的强一致性、跨行转账

CA:

放弃分区容错性,即不进行分区,不考虑网络不通或节点挂掉的问题,则可以实现一致性和可用性。

BASE理论

BASE是Basically Availability(基本可用)、Soft state(软状态)、Eventually consistent(最终一致性)三个短语的缩写。BASE理论是对CAP中AP的一个扩展,通过牺牲强一致性来获得可用性,当出现故障允许部分不可用保证核心功能可用,允许数据在一段时间内不一致,但最终达到一致状态。满足BASE理论的事务,我们称之为柔性事务。如:电商交易付款出问题了,商品依然可以正常浏览。

软状态:由于不要求强一致性,所以BASE允许存在中间状态(软状态),比如订单的支付中状态,待数据最终一致后改成成功状态。

原文地址:https://www.cnblogs.com/BounceGuo/p/13963871.html