知识卡片

主从复制延迟的三种应对策略

普通读书笔记卡 · 1664.a

内容

读写分离最大的复杂度来自主从复制延迟——写入主库后立刻读从库可能读不到最新数据。三种应对:写后立即读的场景强制读主库(对业务侵入大,易因漏写代码出bug);读从库失败后自动重读主库(二次读取,简单但可能被放大成对主库的压力);按业务重要性分流,关键业务(注册登录)读写全走主库,非关键业务走读写分离,容忍短暂不一致。发散:三种方案没有绝对优劣,本质是在实现复杂度和主库压力之间按业务重要性分层取舍。

参考来源

- 位置:《从0开始学架构》第17章《14|高性能数据库集群:读写分离》"复制延迟"一节(源文件:_epub-src/OEBPS/Text/part0016_split_002.html) - 结论依据:原文以"用户刚注册完后立刻登录,业务服务器会提示他'你还没有注册'"说明复制延迟问题,并列出三种方案:"注册账号完成后,登录时读取账号的读操作也发给数据库主服务器"(强制读主库)、"'二次读取'……不足之处在于如果有很多二次读取,将大大增加主机的读操作压力"、"注册+登录的业务读写操作全部访问主机,用户的介绍、爱好、等级等业务,可以采用读写分离"(按重要性分流)。 - 原始内容:用户刚注册完后立刻登录,业务服务器会提示他"你还没有注册",而用户明明刚才已经注册成功了……"二次读取"……不足之处在于如果有很多二次读取,将大大增加主机的读操作压力……注册+登录的业务读写操作全部访问主机,用户的介绍、爱好、等级等业务,可以采用读写分离。