主页 > imtoken离线钱包 > CAP原理和基础理论

CAP原理和基础理论

imtoken离线钱包 2023-07-23 05:13:54

CAP原理和基础理论

CAP原理是什么?

CAP原理又叫CAP定理,又叫布鲁尔定理。 就是说在分布式系统中,不可能同时满足以下三点。

图片

一致性

指的是强一致性,在写操作完成后开始的任何读操作都必须返回这个值,或者是后续写操作的结果。

也就是说,在一个一致的系统中,一旦客户端将值写入任意一台服务器并得到响应,那么客户端就从任意一台服务器读取刚刚写入的数据

一致性保证无论向哪个服务器写入数据,其他服务器都可以实时同步数据

可用性

莱特币是比特币?_比特币的一致性是一种强一致性_以太币比特币是骗局吗

可用性(high availability)意思是:每次向一个没有崩溃过的节点发送请求,响应数据总能得到保证(不允许最新的数据)

分区容差

当分布式系统遇到任何网络分区故障时,仍然可以对外提供满足一致性和可用性的服务。 也就是说,任何服务器A和B发送给对方的消息都可以被丢弃,也就是说A和BB可能因为各种意外情况而无法成功同步,分布式系统必须能够容忍这种情况情况。 除非整个网络环境出现故障。

为什么只能选择A和C?

在分布式系统中,必须满足CAP中的P,此时只能选择C/A。

如果选择CA,舍弃P比特币的一致性是一种强一致性,说白了就是单体架构。

有多少种一致性?

CAP理论告诉我们只能在C和A中选择。在分布式事务的最终解决方案中,我们一般会选择牺牲一致性来换取可用性和分区容错。

比特币的一致性是一种强一致性_以太币比特币是骗局吗_莱特币是比特币?

这里的“牺牲一致性”并不是说完全放弃数据一致性,而是放弃强一致性来换取弱一致性。

一致性可以分为以下三种:

强一致性

弱一致性

最终一致性

强一致性

系统中某条数据更新成功后比特币的一致性是一种强一致性,后续对该数据的任何读操作都会得到更新后的值。

也称为:原子一致性、可线性化一致性

比特币的一致性是一种强一致性_莱特币是比特币?_以太币比特币是骗局吗

总之,在任何时刻,所有节点中的数据都是相同的。 比如关系型数据库,要求更新后的数据可以被后续访问看到,这就是强一致性。

总结:

一个集群需要对外提供强一致性,所以只要集群中某台服务器的数据发生变化,就需要等待集群中其他服务器的数据同步完成,然后再对外提供服务。

保证了强一致性,但一定会损失可用性。

弱一致性

系统中某条数据更新后,后续对该数据的读操作可能会得到更新后的值或变化前的值。

但是即使过了不一致时间窗口,后续读取的数据也不一定是最新的值。

因此可以理解为,数据更新后,如果容忍后续访问只能访问部分或全部,则为弱一致性。

比特币的一致性是一种强一致性_莱特币是比特币?_以太币比特币是骗局吗

比如在12306买火车票,虽然可以看到还有几张票,但是只要选择购买,就会提示没有票了。 这就是弱一致性。

最终一致性

它是弱一致性的一种特殊形式。 存储系统保证在没有新更新的情况下,所有的访问最终都是最后更新的值。

不能保证任意时刻任意节点上的同一条数据都是相同的,但是随着时间的推移,不同节点上的同一条数据总是在向收敛的方向变化。

简单的说,经过一段时间后,节点之间的数据最终会达到一致的状态。

总结

即使弱一致性过了不一致性时间窗,后面的读也不一定一致。 但是最终一致性过了不一致性窗口后,后面的读必须是一致的。

什么是基础理论?

莱特币是比特币?_以太币比特币是骗局吗_比特币的一致性是一种强一致性

BASE 理论是 CAP 中一致性和可用性之间权衡的结果。 该理论的核心思想是:我们无法实现强一致性,但各个应用可以根据自身业务特点采用合适的方法使系统实现最终一致性。

BA(Basic Available)基本可用

在某些不可抗力的情况下,整个系统仍然可以保证“可用性”,即在一定时间内仍然可以返回一个确定的结果。 这里是提供基础知识的地方。

基本可用性和高可用性的区别:

“一定时间”可适当延长 举办大促销(如限时抢购)时,可适当延长响应时间

将降级页面返回给部分用户,直接将降级页面返回给部分用户,从而缓解服务器压力。 但是请注意,返回到降级页面仍然会返回清晰的结果。

S(Soft State)柔性状态

称为灵活状态,是指允许系统中的数据有一个中间状态,这个中间状态的存在被认为不影响系统整体的可用性,即存在延迟系统中不同节点的数据副本之间数据同步的过程。

E(Eventual Consistency)最终一致性

同一数据的不同副本的状态可能不需要实时一致,但一定要保证在一定时间后保持一致。