呜呜呜 被面试官拷打了
昨天面试, 面试官问我怎么保证缓存与数据库的数据一致性 ,我说使用了先更新数据库 ,然后用rabbitmq消息异步发送更新数据到缓存 ,来更新缓存面试官问如果已经写入数据库 ,但是 rabbitmq挂了缓存没有更新怎么办, 我说rabbitmq有ack机制 ,他说 生产者发送消息, mq还没接收到消息就挂掉了怎么办 ?mq并不知道消息的存在, 只能中间键这种场景 ,不能更改其它方案如延迟双删等 ,我说用事务回滚 ,面试官说不能用事务, 我说 mq挂了 ,生产者连接不到mq应该会抛异常,
用try catch来判断 ,然后抛异常之后 ,把数据库的已经写入的数据改为旧值, 并告诉给用户请求失败 。面试官还是不满意😢😢😢 有没有更好的办法
#我的实习求职记录#