Mysql读写分离,如何读到从库最新的数据

1 数据要求严格,不能出问题:强制读主库,通过aop+动态数据源
2 读写分离情况:加redis 缓存
	A 更新主库,redis设置缓存 ,set <表名,null> 过期时间 >= 主从库的同步时间
	B 读从库数据:先查redis 是否有该key,没有读从库,有读主库
mysql 如何保证 主从,从库复制数据完成? 半同步复制
​ 半同步复制机制是一种介于异步复制和全同步复制之前的机制。主库在执行完客户端提交的事务后,并不是立即返回客户端响应,而是等待至少一个从库接收并写到relay log中,才会返回给客户端。MySQL在等待确认时,默认会等10秒,如果超过10秒没有收到ack,就会降级成为异步复制。
保证了数据一定会传输到了至少一个从库的 relay log
canal:
场景1: 根据mysql update,insert 实时更新缓存redis
	   伪装slave 实时抓取binlog,java程序判断更新缓存。
场景2: 根据insert 语句 做实时统计功能存入redis
场景3: 做从库备份
场景4: 经过java处理 实时同步数据到mongodb

你可能感兴趣的:(mysql,mongodb,数据库)