最近有个线上项目数据库的 IO被打满,由于涉及业务是高频读写操作,没有加缓存,导致数据库 IO压力很大,阿里云 RDS频繁出现告警。最开始的方案是在业务逻辑中控制,当向mysql写入数据时, 更新数据到redis当中。 考虑到埋点比较多,容易出错,而且业务改动量大。因此考察通过监控binlog来充当消息中介功能,将 binlog写入 redis,系统直接读 redis缓存即可。通过测试表明,这种方案还是靠谱的。 优点有如下:不需要埋点,原有的业务没有任何影响。减少了服务之间的藕合。
评论