minimax(AI独角兽公司) 后端开发面筋

minimax面筋 后端开发

整体流程:问项目+手撕算法+反问 问答环境半个小时,手撕出了bug调了一会,全程一个小时不到点

1.面试官做自我介绍,然后我做自我介绍

2.讲一下项目当中的excel批量导入你是怎么做的(答线程池+redis兜底,防阻塞)

追问:redis兜底怎么兜,在这里面起到什么作用,为什么不起线程来兜底,redis定时任务怎么实现的

3.说一下submissionthreadlocal的实现原理

追问:submissionthreadlocal是如何在微服务,多机环境下传递线程上下文的(其实这玩意只能单机,面试官估计也是抱着疑问而不是考察的态度在聊)

追问:你为什么用这个东西,直接用kafka里面添个字段传上下文不行吗(答kafka异步消费,消费者那边是复用了一个方法,他自带角色校验,我需要把上下文带到消费者这边来,要不然校验不过去,kafka加个字段也是一样要拿出来塞到线程上下文的,两种做法都ok)

4.项目中有提到对目录的处理,是如何做的(答树行目录,链式存储数据库+预加载到内存当中,crud基于内存来做,数据库层只做内存与数据库的同步)

追问:内存与数据库同步怎么做的(答对同步性要求不高,可以定时更新,但我这边是用了lazy tag,需要用的时候再更新)

追问:lazy tag具体触发逻辑,如果宕机你的内存不持久化怎么办(答:小项目,设计不规范,设计时没有考虑低概率的宕机,要考虑这一点的话可以存中间件里,如redis,他有宕机持久化策略)

追问:为什么用mysql存而不是用芒果db或者oss这种对象存储(答项目只引入了mysql,为了这一个功能单独引新的库比较不划算)

追问:使用mysql和oss来存有什么区别,可不可以把整个目录关系树捏成一个json存mysql的一个字段里面(答mysql在初始化到内存时无法避免需要递归访问数据库来构建整棵树,oss整个能直接拿出来用,但考虑到对目录关系修改的问题,mysql比较方便,一整个json对象毕竟不太好修改的)

5.我看你项目里提到高并发场景,把RR库降级到了RC,为什么这样能提高并发(答mvcc那一套间隙锁没了,并发自然高了)

追问:降级会有什么影响,我看你提到不重要的数据可以降级,重要的不能降级,为什么(答RC只能保证最终一致性,重要数据高并发下会出问题)

追问:具体举个例子,说明会出什么问题(答间隙锁下区域内的幻读,比如检索abc为开头的字段,另一个线程来修改把一个abc改掉了,就会出问题(修改+查询))

算法手撕:力扣56 区间合并

反问:公司业务,研究ai细化到什么程度,我有机会去做agent吗最近比较火,想玩一玩哪方面,跟智谱华章是不是做得业务差不多

总结:面试体验直逼大厂,我发现如果面的岗位薪资在20k+的公司,面试官都会先做一个自我介绍,然后再让我介绍。整个面试以引导为主,业务也聊的很细,问的点都很有启发性,特别是oss那块属于是对我的项目提出了建设性意见,体验很好,对我的帮助很大。

#面经##面试##面试体验感最好的是哪家?##面试体验最好的公司#
全部评论
牛客上开了两个 25 应届生
2 回复 分享
发布于 昨天 18:26 湖南
这是实习么哥们,问的已经这么难了么
点赞 回复 分享
发布于 今天 10:50 江苏
这家公司卡转正,牛客上好几个25届的已经被卡了
点赞 回复 分享
发布于 昨天 14:27 安徽

相关推荐

求求offer的河老师很爱吃香菜:Uu会赢的,uu要是接受可以来广东这边我个人感觉这边实习还是可以找到的
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客企业服务