呜呜呜 被面试官拷打了

昨天面试, 面试官问我怎么保证缓存与数据库的数据一致性 ,我说使用了先更新数据库 ,然后用rabbitmq消息异步发送更新数据到缓存 ,来更新缓存面试官问如果已经写入数据库 ,但是 rabbitmq挂了缓存没有更新怎么办, 我说rabbitmq有ack机制 ,他说 生产者发送消息, mq还没接收到消息就挂掉了怎么办 ?mq并不知道消息的存在, 只能中间键这种场景 ,不能更改其它方案如延迟双删等  ,我说用事务回滚 ,面试官说不能用事务, 我说 mq挂了 ,生产者连接不到mq应该会抛异常, 用try catch来判断 ,然后抛异常之后 ,把数据库的已经写入的数据改为旧值, 并告诉给用户请求失败 。面试官还是不满意😢😢😢 有没有更好的办法   9igANbWppk7SoSHDhYi96zdvyvmUK2UZ.jpg#我的实习求职记录#
全部评论
消息存数据库,mq消费完后删消息或者改消息状态,发送完消息每隔1,2,5,10,20分钟去查消息状态,判断消息是否丢失,然后进行处理
35 回复 分享
发布于 2023-09-19 06:39 浙江
我没有学过mq,今天也被问到这个问题,我说定时更新缓存,面试官说这个方法可以
19 回复 分享
发布于 2023-09-19 20:27 陕西
感觉就是尬问
13 回复 分享
发布于 2023-09-19 16:53 湖南
一定要用rabbitmq吗? 不是的话就用RocketMQ的事务消息, 通过两阶段提交能搞保证本地事务和消息发送的原子性。即使是二阶段提交失败了,也提供了回查的函数来判断本地事务是否执行完成。
10 回复 分享
发布于 2023-09-20 17:11 陕西
1.先数据库后缓存,2.先缓存后数据库 3.八股文标答延迟双删 4.实际:前两种+人工校对
10 回复 分享
发布于 2023-09-18 15:27 湖北
部署多个rabbitmq集群。设置参数使用rabbitmq的可靠消息传输机制(其作用为:消息发送时,消息队列宕机了,消息会回到队列中等待恢复后处理。
7 回复 分享
发布于 2023-09-20 15:09 广东
这就是纯恶心人,mq稳定性都保证不了硬要这种方案来做缓存一致那不就是钻牛角尖
4 回复 分享
发布于 2023-09-19 21:32 上海
直接不使用缓存,用机器嗯堆
3 回复 分享
发布于 2023-09-20 15:21 广东
rocketmq是不是提供了一个半事务消息呀?半事务提交和消息回查机制,面试官是不是想知道这个?
3 回复 分享
发布于 2023-09-19 20:48 吉林
服务如果对 mq 的宕机或者消息在网络丢失是有感知(ack)的话,那么在无法判断 mq 的状态的情况下,我感觉只能尝试一些降级措施 1,生产的重试机制。2,死信队列。先持久化了再说,队列集群都崩了,redis 也只能容忍一段时间的数据不一致了
3 回复 分享
发布于 2023-09-19 14:20 湖南
kafka的leader和follower的机制?
2 回复 分享
发布于 2023-09-19 13:34 浙江
实际操作中就是定时+集群
1 回复 分享
发布于 2023-11-01 23:15 湖北
从不毁应届生,小众宝藏it公司,知名品牌全能扫描王;https://www.nowcoder.com/share/jump/7685791311074027918
1 回复 分享
发布于 2023-10-08 18:55 湖北
大佬,可以试试腾讯云智,hc多,不卡学历,而且面试不难,只要基础扎实,多准备准备很容易过———https://www.nowcoder.com/share/jump/26748809023214642
1 回复 分享
发布于 2023-09-20 23:37 湖南
生产者发送消息不是要有ack吗,不然怎么确保写不丢失,而且消费也有ack,确认消费后才会删除消息。
1 回复 分享
发布于 2023-09-19 22:06 辽宁
也可以看看滴滴,内推麻 NTAWhht
点赞 回复 分享
发布于 2024-03-11 22:25 北京
手术机器人小厂,大量招人,研发非研发都缺https://www.nowcoder.com/share/jump/1699860835392
点赞 回复 分享
发布于 2023-11-16 11:19 湖北
定时任务呗
点赞 回复 分享
发布于 2023-11-04 13:03 河南
这个要区分场景,分弱一致性还是最终一致性。 弱一致性直接Cache aside 最终一致性就用canal那套咯。
点赞 回复 分享
发布于 2023-11-01 23:38 广东
想要走c++和嵌入式可以看一下我的面经哦,励志做全网最全的嵌入式总结,后边我也会出算法总结 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 回复 分享
发布于 2023-10-27 18:51 北京

相关推荐

06-11 18:20
已编辑
门头沟学院 Java
更新:4天后问hr微信结果,秒回不合适不找了,收笔不面了,都浪费时间。某个家居厂,第一次面这么久,前50分钟项目+场景挖呀挖,只问了第一个项目(乐尚代驾),目前面的中小厂都主要问项目,有的问题会延伸扩展,现在才体会到简历上写的项目经历不仅要能答出来,还要针对可能的深挖场景有预备,不然答不出来就尬住了。下面是前50分钟关于项目场景的一些问题,只记得一些大概,不记得延伸问题了1.自我介绍2.籍贯,到岗时间3.项目是自己学的还是什么4.有哪个项目你觉得学到很多东西的5.那就讲一讲你这个项目,先说说大体框架内容6.用的springcloud是吧,springcloud有什么原生组件(几乎没说上来一个),你项目用的组件7.项目怎么部署的(本地虚拟机Linux玩具部署)8.用docker安装的redis,怎么持久化数据(回的是redis的持久化策略,面试官说要问的是docker的redis怎么持久化,docker没了怎么办,当时愣住了,现在想想应该是docker的目录挂载吧)9.你怎么理解单体与分布式。集群负载均衡怎么做(脱口而出k8s,面试官没继续问这点了)10.redis和mongodb在项目怎么用的11.怎么搜索附近司机和推送订单的12.乘客下单到司机接单的流程13.司机抢单怎么实现的,分布式锁锁的粒度是什么14.redis+caffeine怎么用的15.minio是什么,分片上传到合并的流程16.如果分片上传中某个分片失败了,前端自己怎么知道呢17.completablefuture项目怎么用的,讲一讲它的底层原理吧18.forkjoinpool里面是怎么实现的19.xxl-job怎么用的,它有几种调度20.支付怎么做的呢(模拟支付)21.项目中异常捕获怎么实现的等等,记不起来了,每个问题大概能问几分钟项目问了50分钟,很多问题会深入拷问项目的实现,汗流浃背。——————————————————————————接下来问点java基础吧终于来到我最爱的八股环节,大概10分钟1.==和equals区别2.接口与抽象类区别3.反射,用反射获取对象实例的方法,你自己有用反射做过什么吗4.juc包中的锁,synth和reen的区别5.aqs公平锁和非公平锁的实现6.jvm内存各个部分7.堆内存,垃圾回收过程是怎样的8.怎么判断一个对象可以被回收9.对象在堆内存还有栈,逃逸分析10.线程池参数,线程池的工作流程11.jvm如果oom了出问题了,怎么分析解决八股基础大概10分钟————————————————————————反问环节1.怎么周末了还要上班面试2.我们公司的这个it部门重要吗3.您多大了,后面的职业规划是怎么样的4.面试官:建议是自己去看源码实现,不要只看网上别人怎么分析的5.我会把面评什么的给hr,等她给你通知反问聊大概7分钟。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
60
301
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务