ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【分布式篇】什么是CAP?强一致性?最终一致性?

2022-02-24 11:02:43  阅读:194  来源: 互联网

标签:返回 可用性 CAP 系统 更新 一致性 分布式


目录

CAP是什么?

一致性(Consistency)

这个和数据库ACID的一致性类似,但这里关注的所有数据节点上的数据一致性和正确性,而数据库的ACID关注的是在在一个事务内,对数据的一些约束。系统在执行过某项操作后仍然处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读取到最新值。

个人理解:关注点在业务逻辑上的一致性

可用性(Availability)

每一个操作总是能够在一定时间内返回结果。需要注意“一定时间”和“返回结果”。“一定时间”是指,系统结果必须在给定时间内返回。“返回结果”是指系统返回操作成功或失败的结果。

接口反馈速度越快,可用性越高;还要保证一定能返回数据

分区容忍性(Partition Tolerance)

是否可以对数据进行分区。这是考虑到性能和可伸缩性。

这个一般情况下都是满足的,所以基本都是CP、AP

数据的一致性

强一致性:

当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据 CAP 理论,这种实现需要牺牲可用性

白话文:写一个值,就立马能读到什么

弱一致性:

系统并不保证续进程或者线程的访问都会返回最新的更新过的值。用户读到某一操作对系统特定数据的更新需要一段时间,我们称这段时间为“不一致性窗口”。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。

白话文:写一个值,但我不确定能不能读取到,也不确定什么时候能读取到(好渣呀)

最终一致性:

是弱一致性的一种特例。系统保证在没有后续更新的前提下,系统最终返回上一次更新操作的值。在没有故障发生的前提下,不一致窗口的时间主要受通信延迟,系统负载和复制副本的个数影响。DNS 是一个典型的最终一致性系统。

白话文:写一个值,如果过一段时间(这个时间依据什么?TODO)没后续的更新了,那么下次就可以读取到这个值

标签:返回,可用性,CAP,系统,更新,一致性,分布式
来源: https://blog.csdn.net/weixin_45325628/article/details/123101103

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有