架构师系列之 7:分布式领域的 CAP 理论

用户头像
桃花原记
关注
发布于: 2020 年 11 月 29 日

分布式领域CAP理论,

  • Consistency(一致性), 数据一致更新,所有数据变动都是同步的

  • Availability(可用性), 好的响应性能

  • Partition tolerance(分区容错性) 可靠性



定理:任何分布式系统只可同时满足二点,没法三者兼顾。

忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。



1、Consistency(一致性):

一致性是说数据的原子性,这种原子性在经典的数据库中是通过事务来保证的,当事务完成时,无论其是成功还是回滚,数据都会处于一致的状态,比如Oracle关系型数据库。在分布式环境中,一致性是说多点的数据是否一致。比如数据库备份因子是3,也就是同一份数据保存3份一模一样的,所以这3个节点的数据是否相同就是分布式数据库中的一致性。

比如:如果某个节点网络中断,还有其它节点上数据是可读的,那么系统是可用的,如果说非要高度一致,那么就是说此时数据库不可用了



2、Availability(可用性):可用性是说服务能一直保证是可用的状态,当用户发出一个请求,服务能在有限时间内返回结果。而这种可用性是不关乎结果的正确与否,所以,如果服务一致返回错误的结果,其实也可以称为其是可用的。结合上面的一致性理解,这个问题就比较好理解了。



3、Partition Tolerance(分区容忍性):Partition这个词不是常说的操作系统或数据库中的用语,而是指网络的分区。网络中的两个服务结点出现分区的原因很多,比如网络断了、对方结点因为程序bug或死机等原因不能访问。因为有了分区的概念,数据备份到多个分区,保证了可用性。



对于CAP三者:,一个分布式系统只能有限的实现两者要求。



用户头像

桃花原记

关注

还未添加个人签名 2018.11.24 加入

还未添加个人简介

评论

发布
暂无评论
架构师系列之7:分布式领域的CAP理论