Shopee后端一面

1.项目中mysql和redis一致性保障是怎么做的?我简历上写的是先更新数据库,后

RocketMQ删redis缓存。然后追问,如果写好Mysql了,但是消息没发出去怎么办。我回答MQ会有ack,生产者没收到回传的ack就重试/抛异常统一处理,或者事物消息。消费者那边mg有重试机制,重试多次未成功就进死信队列,或者落库后续人工处理。

2.Mysql的隔离机制是什么?回答RR,问RR有什么问题吗?我说有可能幻读,快照读通过 MVCC机制解决,当前读通过临键锁。他追问我的项目是怎么选择隔离机制的呢?我说因为 Mysql默认就那样,不过我的电商系统,用 RR可能更好,如果RC有可能出现数据不一致的情况。

3.有没有了解过读写锁?适用于什么情况?我说读读不互斥,读写,写写互斥,一般用在读多写少的场景。追问1微秒临界区,读写比例10:1,该不该用读写锁?(完全不会,最后提问问他,面试官和我说想考查我有没有看过读写锁实现底层,问了ai,也各个说法不一

4.项目用的websocket长连接,服务端如果发现一个客户端连接qps特别高,疑似被攻击,服务端想要断开连接,这时候该怎么做?这个我也不是很会,我说的是像tcp那种发个消息给客户端(就是瞎说的),他好像不太满意,就说他换个说法:如果直接关闭会有什么问题?(完全不知道,查了以后感觉有可能是没发断开连接的原因,客户端会无限重连)

5.concurrenthashmap,底层怎么实现的?说了数组+链表+红黑树用 CAS +

synchronized实现,synchronized是什么

锁?主要让我答可重入,为什么要可重入?我没回答太好,我说的是递归的时候不会死锁。(查了以后感觉是不一定是递归,有可能这个线程会调用其他加锁的方法)

6.算法:LRU,acm模式,自己写main方法。

三个月没看八股和项目了。感觉面的挺差的,很多都没答上来,就凭感觉讲的思路。LRU是撕出来了。当晚约二面了。

全部评论

相关推荐

10-31 14:35
门头沟学院 Java
1、谈谈浏览器中键入一个 URL,按下回车后的执行链路是怎样的2、项目 1 拷打(5min)3、介绍一下自己在项目 2 中的工作内容4、项目中 MD5 + 盐主要解决什么问题?5、你当前的加密方式,如果有数据库的权限,能否破解出用户的密码?6、谈谈项目中多级缓存的设计流程7、Spring Session 中存储的是什么数据?8、存储用户信息的过程中通常会涉及序列化和反序列化的操作,这有什么作用?9、二进制序列化和 JSON 序列化的差异和适配的应用场景10、序列化和反序列化操作是在计算机网络的哪一层去做的?11、谈谈项目中的分段锁 + 编程式事务的如何实现的?12、ConcurrentHashMap 在项目中是如何使用的?key 和 value 存的什么内容?13、谈谈微服务这个项目中做了什么工作,遇到了什么难点,怎么去解决的?14、谈谈 Sentinel 中都有哪些限流的方法?它们有什么区别,对应的使用场景的是怎样的?15、谈谈 Sentinel 底层的实现原理16、假设一个场景,做的商城服务,现在购物车中添加了三个商品 a,b,c。它们参加满减的活动和满折的活动,那如何在购物车页面中去展示最优的一个价格?17、谈谈 Nacos 服务注册,服务发现的原理18、谈谈线程池有哪些核心参数?每个参数对应的作用是什么?19、ThreadLocal 主要拿来做什么?如果我现在希望跨线程去传递 ThreadLocal,有哪些方法?20、谈谈 volatile 这个关键字有什么作用?它的原理是什么?21、谈谈 TCP 和 UDP 的区别,以及对应的使用场景22、为什么 TCP 挥手需要四次?两次和三次分别会存在什么问题?23、谈谈 Http1.0、Http1.1、Http2.0 版本的差异
查看22道真题和解析
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

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