【成为架构师3-10】数据库:主从一致性和主主一致性

数据库一致性:主从与主主不一致处理
本文探讨了数据库主从不一致及主主不一致的问题,包括忽略不计、强制读主和选择性读主的处理方式,以及数据库层面和上游层面解决主键冲突的策略。此外,还介绍了影子主不服务的概念,以提高数据库的高可用性。

系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。

主从不一致

主从不一致的情况发生在主库更新的时候,向从库同步存在延迟,这个时侯业务刚好对主库更新的内容进行访问,但读的是从库,也就读到了更新前的数据。

这种不一致性是binlog主从同步的延时造成的,最大也就秒级,针对这一特性,通常有以下三种处理方式:

忽略不计

如果业务侧是可以忍受读到短时间的一个脏数据的(通常只要用户刷新一下就是正确数据),那么忽略不计其实是最经济实惠的方式,只要业务允许,那么我们的架构也可以简单一些。

强制读主

强制读主的方式就是抛弃读写分离的架构设计了
在这里插入图片描述
那么我们对于提升读性能当然还有缓存的方式,关于缓存的一致性在缓存篇再做讨论。

选择性读主

这是一种颇有意思的设计方式,需要缓存进行配合。

它的写过程是这样的:
在这里插入图片描述

  1. 假设一个主从同步的时延,比如说是1s
  2. 在写入主库之前,先在缓存set一个key,这个key是用来标的哪些数据是被更新了的(比如说更新row的表、主键等),缓存的失效时间就是主从同步的时延,也就是1s
  3. 后续步骤也就是写入主,主从同步,与正常流程没有区别

它的读过程是这样的:

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值