如何解决数据库主从数据不一致的问题

数据库集群架构

目前流行的数据库集群架构包括以下三点:
一主多从:高可用方案,主库挂掉,从库会变成主库;
读写分离:减少单机数据库压力,主库提供写服务,从库提供读服务;
主从同步:为了保证一致性,从库会实时与主库同步数据,但是会有延迟。
在这里插入图片描述

可能会产生的问题

同步延迟可能会导致主从数据不一致。例如:主库正在进行写操作,从库同时也正在读操作,但此时从库还未同步到主库的最新数据,导致从库读到脏数据。

如何解决

忽略:在业务不保证数据强一致性的情况下,可以选择忽略(技术永远是为业务提供服务的!);
强制性读写主库:读写都落在主库上,从库只用来做备库防止主库挂掉,可以采用缓存方式缓解主库压力(先读缓存再读数据库);
在这里插入图片描述
选择性读写主库:上面的那种方案对于主库来说压力还是很大,可以考虑多加一个缓存来判断主从是否同步完成。当写请求主库的时候,同时缓存记录一个key(key值可以是数据库名:表名:主键的形式),超时时间设置为主从同步的延迟时间。读的时候,先判断缓存里是否有这个key,有就说明主从同步还没完成,此时读主库。无就说明同步已完成,此时读从库。
在这里插入图片描述

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值