第二题的话其实就是在考你的业务敏感度。 不是所有的业务对一致性要求都这么高。因此这个是需要分类讨论的。 如果就是要求强一致性,那就开事务。 但是大多数加缓存的场景其实对于数据一致性的要求是没有这么高的。在这种情况下我们更加倾向于数据库变更之后投递消息到mq,由mq进行写缓存的操作,并且开启重试机制,最多重试三次(避免消费堆积)。当三次消费失败之后,要么抛异常发告警让对应的后端人员自己手动往缓存中补偿一下,要么投递到死信队列,晚上或者服务低谷的时候统一进行重试。最后开一个BCP业务校验系统来确保mysql和缓存的最终一致性。
2 5

相关推荐

牛客网
牛客企业服务