架构师训练营 - 命题作业 第 6 周
1.CAP 原理简述
CAP是Consistency、Avaliability、Partition tolerance三个词语的缩写,分别表示一致性、可用性、分区容忍性。
一致性是写操作后的读操作可以读取到最新的数据状态,当数据分布在多个节点时,从任意节点读取到的数据都是最新的状态。
可用性是指任何事务操作都可以得到相应结果,且不会出现响应超时或响应错误。
通常分布式系统的各个节点部署在不同的子网,这就是网络分区,不可避免的会出现由于网络问题而导致节点之间通信失败,此时仍可对外提供服务,这叫分区容忍性。
总之,在所有的分布式事务场景中不会同时具备CAP三个特性,因为在具备了P的前提下C和A是不能共存的。如果要实现C则必须保证数据一致性,在数据同步的时候为防止向从数据库查询的不一致则需要从数据库锁定,待完成同步之后解锁,如果同步失败从数据库要返回错误信息或超时信息。而如果要实现A则必须保证数据可用性,不管任何时候都可以向从数据库进行查询数据,并且不能够返回错误信息或者超时信息。
为达到良好的响应性能来提高用户体验,因此一般会做出如下选择:保证A和P,舍弃C强一致性,保证最终一致性。BASE理论是对CAP中AP的一个扩展,通过牺牲强一致性来获得可用性,当出现故障部分不可用时需要确保核心功能可用,允许数据在一段时间内是不一致的,但最终达到一致状态。满足BASE理论的事务,我们称之为“柔性事务”。
版权声明: 本文为 InfoQ 作者【铁血杰克】的原创文章。
原文链接:【http://xie.infoq.cn/article/8d9ee47d52b05289777b851fa】。未经作者许可,禁止转载。
评论