问题的提出:
分布式一致性问题是指,在分布式环境中引入数据复制机制后,在不同的节点间,可能出现的,并无法依靠计算机的应用程序自身解决的数据不一致的情况。
解决方案:
1、保持一致性,影响性能
在复制数据时,可以将写入动作阻塞,直到数据复制完成之后才开始执行写入动作。但是如果存在很多的写入请求,所需的写入请求将阻塞到前一个写入请求的写操作上,影响性能
2、保持性能,影响一致性
在复制数据时,复制完直接写入。但是由于复制的延时性,将存在数据不能立马一致,而是在将来的一段时间后才保持一致
结论:无法找到一种既保证数据一致性,又不影响系统运行的性能的解决方案。
一致性级别:
强一致性:最符合用户使用直觉,用户写入什么,读出来的就是什么,用户体验好。但对系统的性能影响较大,
弱一致性:这种一致性,不承诺立即可以读到写入的值,而是在多久时间后,数据能够达到一致性
- 会话一致性:对于写入的值,在同一个会话中,可以读取到一致的值,但是其他的会话不能保证
- 用户一致性:对于写入的值,在同一个用户中,可以读取到一致的值,但是在其他用户不能保证‘
最终一致性:
是弱一致性的一个特例,系统会保证在一定时间内,能够达到一致性的状态,单独拿出来是因为他是一致性中非常重要的一种模型,也是业界在大型分布式系统中最常用的模型。
博客围绕分布式一致性问题展开,该问题指分布式环境引入数据复制机制后,不同节点间出现的数据不一致情况。提出两种解决方案,分别会影响性能或一致性,且无法兼顾。还介绍了强、弱、会话、用户、最终一致性等不同级别。

被折叠的 条评论
为什么被折叠?



