背景:
订单金额包含 1 商品价格 2 商品对应的运费价格。如商户要同时调整商品价格以及运费价格。需要保证两个操作的一致性,要么都同时成功、要么都不成功。关系数据库可以使用事物解决,NoSQL数据库除图数据库外都不支持事物。
分布式一致性:
1 逻辑一致性:如背景所述问题,要么同时成功、要么失败。使用事物解决。
不一致窗口:不一致风险的时间长度
2 复制一致性:由主从延迟导致数据不一致。
客户读从读到旧数据无太大影响,写的时候必须保证最终一致。如商品库存显示有库存,但下单时提示库存不足,数据最终一致对业务无影响。
缓存、主从架构数据存储中间件都存在复制一致性问题,确认好业务能接受最终一致性即可。
分布式复制一致性延迟问题带来的会话一致性问题:
用户对某篇博文发表评论,评论后刷新没有看到自己的评论,用户迷惑认为自己评论丢失了。
会话一致性:在用户会话内部保持"照原样独处所写内容的一致性"
实现方案:
1 黏性会话:
1.1绑定某个节点的会话
1.2该节点具备会话一致性能力
对于主从分布式模式比较难处理需要:
1.2.1 写时请求从节点,从节点转发主,主写成功,该从节点也立刻写成功 返回
读时请求之前写的那个从节点
1.2.2 写请求主
读请求主
缺点: 降低负载均衡能力
2 版本戳
详见后续内容
本文深入探讨分布式系统中的一致性问题,包括逻辑一致性与复制一致性,分析了事务处理、会话一致性和版本戳等解决方案,旨在帮助理解如何在分布式环境下维持数据一致性。
&spm=1001.2101.3001.5002&articleId=104034501&d=1&t=3&u=9ddaacbdda2a4c9f837903655d2202ff)
1110

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



