数据库主从复制
数据库读写分离,主要解决高并发时,提高系统的吞吐量。来看下读写分离数据库模型:
方案一:强制走主库
● 写请求是直接写主库,然后同步数据到从库
● 读请求一般直接读从库,除飞强制读主库
方案二:缓存标记法
在高并发场景或者网络不佳的场景,如果存在较大的主从同步数据延迟,这时候读请求去读从库,就会读到旧数据。这时候最简单暴力的方法,就是强制读主库。实际上可以使用缓存标记法。
● A发起写请求,更新主库数据,并在缓存中设置一个标记,表示数据已更新,标记格式为:userId+业务Id。
● 设置此标记,设置过期时间(估值为主库和从库同步延迟的时间)
● B发起读请求,先判断此请求,在缓存中有没有更新标记。
● 如果存在标记,走主库;如果没有,请求走从库。
这个方案,解决了数据不一致问题,但是每次请求都要先跟缓存打交道,会影响系统吞吐。