欢迎光临散文网 会员登陆 & 注册

千锋教育2023版Java面试宝典Java面试200题(含美团、字节、阿里...

2023-07-22 02:08 作者:C-leme-ntine  | 我要投稿

强一致性,弱一致性和最终一致性

强一致性:当数据发生改变后,任何后续进程或者线程都会读取到最新的数据。只有在所有的节点数据同步完成之后才会响应给用户,也就是说当用户获得响应时数据已经同步完成。优点是各节点的数据一致,劣势是性能差和可用性低,必须等到所有的节点返回成功的消息后才能向用户反馈,各个节点串联在一起,降低了整体可用性。

弱一致性:系统不保证数据发生修改后的后续进程能读取到最新的数据,系统不承诺能读取到最新的数据,也不承诺具体多久之后能读取到最新的数据。

最终一致性:最终一致性是弱一致性的特殊形式,最终一致性指的是系统中的所有副本在经过一段时间的异步同步之后,最终能够达到一个一致性的状态,用户可能会暂时看到一些过期的数据,但这种不一致性只是一个暂时的状态。和强一致性相比,最终一致性提高了可用性,避免了强一致性下可能造成的系统堵塞,同时向用户保证数据在一定时间之后会同步到最新的状态。

小结:几乎所有的互联网系统采用的都是最终一致性来平衡数据一致性和系统可用性之间的平衡,但对于敏感数据仍然考虑采用强一致性来保证数据的统一。

千锋教育2023版Java面试宝典Java面试200题(含美团、字节、阿里...的评论 (共 条)

分享到微博请遵守国家法律