主从数据库一致性问题

原因

  数据库集群的主从数据同步存在延时,延迟期间从库上的读请求会读取到不一致的数据,如下图所示。(不管同步还是异步,只要存在数据冗余就存在数据一致性问题
主从数据库一致性问题

解决方案

  整体思路:数据库的主从同步可以实现数据的最终一致性,延迟时间一般在几毫秒以内,因此可以按照业务对数据不一致时间的容忍程度设计对应的方案。

  1. 对于绝大部分业务来说,比如订单、消息、搜索等场景,这些业务场景下是可以容忍几毫秒的延时,因此可以直接忽略数据不一致问题;
  2. 对于不能容忍几毫秒的不一致性的业务,则需要强制性读主。强制性读主太过暴力,一种优化手段是利用缓存记录数据变更时间,如果请求的数据短时间内发生变更则读主,否则读从;

参考:

  1. 数据库主从不一致,怎么解?