博文精选 | 架构师入门学习之感悟六

2021-11-08 15:50:02

F5小安

PHPWord

文章速览:

 

行业:互联网

 

关键字:架构师、CAP、入门学习

 

摘要:架构师入门学习感悟,简述 CAP 原理

 

阅读时长:5分钟

 

 

以下文章来源于InfoQ!作者:莫问

 

 

Question

请简述 CAP 原理

一致性 Consistency

每次读取的数据都应该保证是最近写入的数据或者返回一个错误,而不是过期数据,也就是说,数据是一致的。

可用性 Avaiability

每次请求都应该得到一个响应,而不是返回一个错误或失去响应,但该响应不需要保证数据是最近写入的。也就是说,系统需要一直都可以正常使用,不会引起调用者异常,但不保证响应的数据是最新的。

分区耐受性 Partition tolerance

即使网络原因导致部分服务器之间消息丢失或者延迟,系统依然应该是可操作的。

概述

当网络分区失效发生的时候,我们要么取消操作,这样数据就是一致性的,但系统却不可用;要么我们继续写入数据,但数据一致性就无法保证。

对于分布式系统而言,网络失效一定会发生,也就说,分区耐受性必须保证,那么必须在可用性、一致性之间二选一。

当网络分区失效,也就是网络不可用时,如皋选择了一致性,系统可能返回一个错误码,或者干脆超时,即系统不可用。如果选择了可用性,那么系统总是返回一个数据,但并不能保证这个数据是最新的。

所以,关于 CAP 原理,在分布式系统必须要满足分区耐受性前提下,可用性、一致性无法同时满足。

Summary

ACID 与 BASE

ACID

原子性 Atomicity

事务要么全部完成,要么全部取消。如果事务崩溃,状态回到事务之前(事务回滚)。

隔离性 Isolation

如果 2 个事务 T1、T2 同时运行,事务 T1、T2 的最终结果是相同的,无论 T1、T2 谁先结束。隔离性依赖锁实现。

一致性 Consistency

只有合法的数据才能写入数据库。遵守关系约束、函数约束的数据就是合法数据。

持久性 Durability

一旦事务提交,无论发生什么(崩溃或出错),数据要保存在数据库中。


BASE

基本可用(Basically Avalible)

系统出现不可预知的故障时,允许损失部分可用性,如响应时间的损失或功能上的损失。

弱状态(Soft state)

允许系统数据存在中间状态,并认为该中间状态的存在不会影响系统整体的可用性。即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。

最终一致性(Eventually Consistent)

系统中所有数据的副本,在经过一段时间同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证数据能够达到一致性,而不需要实时保证系统数据的强一致性。


 

 

以上是针对CAP 原理简述的分享,希望对大家有帮助!

 

 

 

阅读原文

 

声明:本文章版权归原作者及原出处所有 。凡本社区注明“来源:XXX或转自:XXX”的作品均转载自其它媒体,转载目的在于传递分享更多知识,内容为作者个人观点,仅供参考,并不代表本社区赞同其观点和对其真实性负责。本社区转载的文章,我们已经尽可能的对作者和来源进行了注明,若因故疏忽,造成漏注,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本社区拥有对此声明的最终解释权。

 

 

 

你还不能错过:

 

打造容器云新技术架构,加速数字化转型

 

F5社区好文推荐:F5 分布式数据库增强型架构

 

开启5G之旅 | 在 5G 领域中,云原生架构至关重要

 

加速架构转型,应对互联网运维挑战 —— F5助力民生银行网络智能流量编排探索

发布评论 加入社群

发布评论

相关文章

博文精选 | TCP 协议灵魂问题,巩固你的网路底层基础

F5小安

2022-01-14 09:11:08 50

博文精选 | 架构师入门感悟之十三

F5小安

2021-11-22 13:19:24 80

博文精选 | 架构入门感悟之十二

F5小安

2021-11-18 17:45:22 93

Login

手机号
验证码
© 2019 F5 Networks, Inc. 版权所有。京ICP备16013763号-1