博客搬家,原地址:https://langzi989.github.io/2018/11/20/分布式系统数据一致性/
数据一致性
数据库系统中的数据一致性
数据一致性问题最初是存在于数据库系统中的一个概念,数据库系统中一致性问题通常指的是关联数据之间的逻辑是否完整和正确,通常数据库系统会通过使用事务来保证数据的一致性和完整性。事务本质上就是一个操作序列的有限集合,若事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态。
比如当你在淘宝中购买商品进行付款的时候,从宏观上看有以下最基本的步骤:付款成功---->发放商品,若用户付款成功之后,发放商品失败,这个时候会导致数据不一致。解决这种问题常用的方法就是使用事务,若付款成功,发放商品失败,此时将第一个操作回滚。
分布式系统中的数据一致性
在分布式系统中,为了达到系统容灾和提高系统性能,数据通常会冗余存储在不同机器,通过复制技术来进行主副本之间的数据同步。所以分布式系统中的数据一致性指的是集群中主副本数据内容的一致性
-
由于数据冗余在不同机器中,当集群中部分机器挂掉,也可以正常对外服务,消除单点故障