CAP理论
CAP,是三个单词的首字母大写,分别是:consistency,availability,partition tolerance。
consistency:一致性 与数据库的ACID的一致性类似,这里更多的是关注不同节点上数据的一致性。
availability:可用性 就是说,在一定时间内要返回一个结果(执行成功或失败)。
partition tolerance :分区容忍性 数据是否可以分区,考虑扩展性和性能。
分布式系统里,由节点组成的网络,相互之间可能因为网络原因,造成通信中断,节点之间无法进行通信,这样就造成了网络分区。
为了提高分区容错性,就需要将数据进行冗余备份,这样,就算出现了网络分区,也可以在不同的分区中访问到这份数据。
但是进行数据的冗余备份就涉及到了数据一致性的问题,如果要保证强一致性,就需要等待数据完成冗余备份。
这就涉及到了系统的可用性问题,数据的一致性消耗时间越多,系统可用性就越低。可用性就是说用户发送的请求,需要在一定时间范围内得到系统的反馈。
数据一致性模型
强一致性:当更新操作实行完成后,后续进程或线程不论访问任何一个机器,得到的都是最新的结果,用户输入什么就能返回什么。
弱一致性:更新操作结束后,后续进程或线程并不一定能访问到最新的数据,在更新操作后到数据完成一致性之间的这段时间,叫“一致性窗口时间”。弱一致性的窗口时间未知。
最终一致性:弱一致性的特例,若没有后续的更新操作,数据最终会完成一致性操作。比如支付宝提现有个两小时内到账。
推荐一篇博客:
https://blog.csdn.net/weixin_40533111/article/details/85069536