分布式学习(第一天)-> 分布式一致性问题

1、分布式一致性问题

数据一致性指,对一个副本数据进行更新的同时,必须确保也能够更新其他的副本,否则不同副本之间的数据将不再一致。

现象:假设客户端C1将系统中的一个值K由V1更新为V2,但客户端C2无法立即读取到K的最新值,需要在一段时间之后才能读取到。-->这就是复制延时的问题。

2、解决办法

复制延时

就是将写入的动作阻塞,直到数据复制完成后,才完成写入动作。但是也带来了新的问题,写入的性能。假如应用场景有很多的写请求,那么使用这个思路之后,后续的写请求将会阻塞在前一个请求的写操作上,导致系统整体性能极速下降。

无法找到一种能够满足分布式系统所有系统属性的分布式一致性解决方案。如何既保证数据一致性,同时不影响系统运行的性能。是每个分布式系统都需要重点考虑和权衡的。由此 一致性级别诞生。

强一致性

它要求系统写入什么,读出来的也会是什么用户体验好,但实现起来对系统的性能影响比较大。

弱一致性

这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不具体承诺多久之后能达到一致,但会尽可能地保证到某一个时间级别(比如秒级别)后,数据能够达到一致状态。

弱一致性细分:
会话一致性:该一致性级别只保证对于写入的值,在同一个客户端会话中可以读到一致的值,但其他会话不能保证。
用户一致性: 该一致性级别只保证对于写入的值,在同一个用户中可以读到一致的值,但其他用户不能保证。


最终一致性:系统在保证在一定的时间内,能够达到一个数据一致的状态。

猜你喜欢

转载自blog.csdn.net/darrensty/article/details/79487084
今日推荐