数据库读写分离的这些坑,让我一脸懵逼!
往期热门文章:
前言

- 业务人员通过管理后台新增映射规则 
- 数据库新增、修改这条映射规则 
- 删除缓存 


数据库系统架构发展
主备架构


主从架构


主从延时解决办法
忍受大法

数据同步写方案
	
- 业务系统发起写操作,数据写主库 
- 写请求需要等待主从同步完成才能返回 
- 数据读从库,主从同步完成就能读到最新数据 
选择性强制读主

中间件选择路由法

- 写请求,中间件将会发到主库,同时记录一下此时写请求的 key(操作表加主键等) 
- 读请求,如果此时 key 存在,将会路由到主库 
- 一定时间后(经验值),中间件认为主从同步完成,删除这个 key,后续读将会读从库 
缓存路由大法

- 写请求发往主库,同时缓存记录操作的 key,缓存的失效时间设置为主从的延时 
- 读请求首先判断缓存是否存在 
- 若存在,代表刚发生过写操作,读请求操作主库 
- 若不存在,代表近期没发生写操作,读请求操作从库 
总结
- 忍受大法 
- 数据库同步写方案 
- 选择性强制读主 
- 中间件选择路由法 
- 缓存路由大法 
往期热门文章: 
1、《历史文章分类导读列表!精选优秀博文都在这里了!》 
2、如何设计订单系统?这篇写得太好了! 3、如果MySQL磁盘满了,会发生什么?还真被我遇到了! 4、GitHub 标星 1.3k+,一款超赞的用于字符串处理的 Java 8 库 5、阿里开源的27个项目,值得收藏! 6、面试官:String长度有限制吗?是多少?还好我看过 7、贞炸了!上线之后,消息收不到了! 8、又一批长事务,P0故障谁来背锅? 9、花30分钟,用Jenkins部署码云上的SpringBoot项目 10、太火了!MyBatis Plus 为啥这么牛? 
评论
