跳到主内容
快讯直播
AI智模界
AI 词典

主从复制延迟:刚提交就查不到的那几毫秒

一句话定义

主从复制延迟(Replication Lag)是指数据在主库(Primary,旧称 Master)写入成功后,从库(Replica,旧称 Slave)尚未完成同一条写入、还没跟上的那段时间差。它衡量的是“同一份数据在两个副本上相差多久”。

延迟是怎么产生的

写主库时,事务在本地提交就算成功;把这次改动同步到从库则是另一条链路:主库先记进日志(如 binlog),再通过网络传给从库,最后从库按顺序重放这些变更。这三步都要花时间,而多数系统默认采用异步复制(asynchronous replication):主库提交后不会等从库确认。

打个比方:主讲人在台上改 PPT,分店的投影仪要等文件传过去、再播放出来。台下分店的观众看到的永远是几分钟前的版本。主讲人说“改好了”,指的是自己那份改好了。

“刚提交就查不到”是怎么发生的

很多系统为了扛读流量,采用读写分离(read-write splitting):写请求走主库,读请求走从库。于是出现经典流程:用户提交表单,写入主库成功,页面跳转到详情页,详情页的查询被打到从库,而从库还没重放这条记录,页面就显示空白或“不存在”。用户刷新一下又好了,因为这几百毫秒里从库追上了。

和几个相邻概念的区别

概念关注什么
主从复制延迟同一份数据在两个副本上的时间差
网络延迟一次请求往返的耗时
缓存不一致缓存与数据库之间的过期时间窗口
分布式共识多个副本就“算不算提交成功”达成一致的规则

复制延迟本质上是“已提交的数据暂时不可见”,数据并没有丢;网络延迟是单次通信慢;缓存不一致是缓存里留着旧值;共识关注的是提交语义,所以千万别混为一谈。

对从业者的意义

复制延迟是必须监控的指标,通常看“从库落后主库多少秒”。业务上常用的缓解手段有:对一致性敏感的读(如刚写完就看自己的数据,read-your-writes)临时走主库;按会话固定路由;关键链路使用半同步复制(semi-synchronous replication),等从库确认收到日志后再返回成功。做数据迁移、切库、扩容时,延迟也是判断“能不能切流量”的关键阈值。具体默认参数和超时设置各产品不同,以官方文档为准。

对普通人的意义

看到“提交成功”却查不到自己的订单,多半就是撞上了这个窗口,通常刷新或等一两秒即可,不必重复提交。产品设计上也该把这层不可见性挡住:提交后先给“处理中”,而不是直接跳到可能读不到数据的页面。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。