滴滴二面OC

首先感谢一下面试官,虽然说这一次没有直接透露说我有没有过,大概率是进排序或者说不太好意思说我挂了的事情

问的东西很多,场景题一个比一个离谱,直接就是说考验我的当场表现,完全没有考虑到之前怎么实现对应的内容,功能

不过面试官挺好的,会给我一定的提示

  1. 面试官介绍自己以及所在部门
  2. 我的自我介绍(老样子)
  3. 然后聊一下自己的项目(balabala,然后才发现说自己的项目中介绍写错了,只能硬扯下去)
  4. 问到说如果让我实现一个二维码登录,我打算怎么实现
  5. 这个还好,之前准备深信服提前批二面时兴趣使然,有一定的猜测过,不过还是答得较差,我只谈到了过期的情况,我们可以用redis来进行对应的设置一个ttl,但是却忘了说对应的二维码唯一性的事,不然还能往我个人修改的雪花算法靠一靠,然后分析了下首先我们扫描的设备需要是一个登录的状态或者说是一个可靠的状态例如说微信等平台,有点类似说oauth2的机制,我们去获取到对应用户在该平台的信息,然后再进行细分,1是注册,如果该用户扫描后发现对应的数据不在我们的平台上,那么大概率他就是一个注册,那么就需要去走注册的流程,而如果说对应的情况是登录的话,那么直接登录就行了
  6. 然后问到redis的过期时间是怎么实现的?直接开始汗流浃背,聊了说单机的情况最简单的就是借用定时任务,然后说到额外起一个进程或者说线程进行对应时间的监控,当对应的redis的时间快到了那么就进行删除,然后扯到了跟大key相关的知识(渐进式hash),说到定时任务的处理的过程中其实也要考虑到对服务的影响,然后说到最简单直白的就是轮询,不过呢,对于不同的定时时间来说我们能够做到的是不同的设计,例如说24小时的定时任务,可以说到最后一个小时,再进行轮询或者说最后一分钟再进行轮询,然后前面那些时间例如说发送个心跳给我们对应的运维服务器就行了("面试官答复到:你说的都是主动的情况,有没有被动的情况",然后我就扯到了说我们也可以说超时后然后我们去访问同时进行这个删除操作,其实这个就有点渐进式hash的思想来着,只不过现在意识到那是后话了,当时如果能提没准就稳了)
  7. 问到如果redis的数据出现过期,然后所有的请求去打到我们mysql那么这个情况你如何解决?提了一下之前设计模式中学到的单例设计模式(埋下败北伏笔,不过还是要感谢教我们设计模式的王备战老师,教课较为生动,让我还能记得点),在这个过程中我们使用到的是双检加锁的策略,我想这个情况下是可行的,不过这是在单机的情况下,应该能限制1个请求能够打到mysql,然后集群的环境下应该也能接受
  8. 问如果多节点的情况下,想要保证这个只有1个请求的情况呢?就说了用分布式锁,无论是使用到redis的redisson或者说是阿里的seata等等,然后提了一句我们也可以用协调的方式,在众多的节点中选出一个来进行对应的节点给他这个权限来访问mysql
  9. 紧接上题,你了解redis的哨兵机制吗?然后我多嘴的问了一句是要问raft算法是吧?然后就balabala地说了一下,然后提到说哨兵的话,例如说主节点挂了重新选择一个主节点的话,他考虑的比较仔细,不仅说你需要当前ping地通,还要对应之前的网络状态也良好(不过忘了提对应的与原先的主节点的同步进度(该死,还是犯了当时一面面试官说的问题,就是没有停下来思考,一想到一点就开始回答,才过了没多久脑子中就有答案))
  10. 然后发现了没问我mysql相关的问题,问了一嘴,一条mysql语句的查询流程是什么样的,然后就展开说明了(mysql分为两个层,一个是存储引擎层,2是server层(注:当时死活没想起server,现在突然就想起来了)),然后之前看过相关的文章,但是记得不清了,然后就说应该会有个构建语法树的过程,以及说聊到了优化器选择索引(这里该扩展开的,该聊到对应的自己的尝试),然后以全表扫描,聚簇索引,联合索引都分别聊了一点,然后聊到联合索引的时候聊了点索引下推
  11. 然后问到我说mysql如何保证对应的回滚的,以及说对应的事务提交后的落盘的,了解过但是没了解很深入....,就数鸭子一样的谈到了binlog用于同步,undolog用于回滚,redolog用于保证持久性,然后举了个例子,然后问到存储的内容,我其实没有亲身实践过,然后就谈到了说undolog存储的形式无非两种:1.快照,2.和我们事务完全相反的操作
  12. 问了我redolog以及说undolog还有binlog,写的顺序:答曰:redolog和binlog区别应该不大,而binlog应该是在最后的
  13. 然后就是说binlog的话,在一主二从或者其他情况下,工作机制?不懂,表示自己并没有搭建过mysql集群,在实践中唯一涉及到binlog的情况是使用canel来将数据同步到elasticsearch中
  14. 然后问到了mysql中例如说一主二从,或者说集群的情况,如果数据不同步,而我们需要对应的较强的数据一致性那么我们该怎么做?我回答是这基本上就是CAP的问题,说了CAP最多只能保其中的两个,然后主要的情况大概就如下两个,1要么我们维护目前数据一致的节点,然后获取请求时去自动获取(这里稍微提了一嘴sharding-jdbc(我也不太了解,只知道他类似我们redis集群是会有一个把各个key划分到各个节点的操作,让我来设计的话,应该会设计这个功能点的)),然后又提了一下,实在不行我们也可以延迟点时间嘛
  15. 还问了说关于Linux上的命令,是nginx的日志上的内容,然后查出对应访问的10个ip,虽然不会但是还是有点幸运来着,前不久发了一篇博客内容差不多,只不过是解析tomcat对应的日志也是ip,然后就跟面试官说了一下对应的思路(往往这种命令不会写,其实可以换个路子回答,诸如说让我来实现这个命令我该怎么实现),然后说了点,面试官应该也知道我没记命令,然后就没追问了
  16. 然后回收伏笔,设计模式出现了(第一次被别人提问手写设计模式,也是幸运,虽然没怎么学,但是他问到我的碰巧是我稍微听了一点的,当然我当时极度心虚,昨儿还特意刷了20道算法题来着,今儿给我来了道设计模式),问到的是观察者模式,开始打马虎眼,当时老师上课教到的作业我实现上是让使用java自带的Observer,然后问了问能直接使用吗?回答是不行,然后就额外扯到了课上说的"MVC"与观察者模式的对应,也提了一下,然后就开始写了,怎么说呢?写得很烂,大致打个50分吧
  17. 反问环节(1.结果大概什么时候会给通知?(answer:看hr那边,一周内吧)2.去的话是go是web开发还是说中间件开发(answer:web)3.有没有相关的学习资料推荐?(answer:网上一大堆...))

总结

虽然说没有把一面面试官说的想清楚再回答做到全部,但是我走了另外的一条路,就是讲完答案后做了一个总结

虽然说不小概率是挂了,半小时后OC了,然后本科生统一价

在这里再次感谢一下备战老师的SA,虽然说作业我不少是gpt来着的,但是备战老师的课莫名起到很好的作用,可能也是我一直被提问的情况

#滴滴##oc#
全部评论
Redis集群使用的是Gossip协议,不是raft
3 回复 分享
发布于 07-17 17:50 江西
太🐮了
2 回复 分享
发布于 07-15 18:05 湖北
深信服
校招火热招聘中
官网直投
我面日常也会这个难度吗
1 回复 分享
发布于 07-18 21:57 天津
实习还是正式offer呀!?
点赞 回复 分享
发布于 07-18 01:04 陕西
应该是一个面试官,国际化技术的,可惜我二面挂了😭
点赞 回复 分享
发布于 07-20 01:37 四川
m
点赞 回复 分享
发布于 07-24 10:02 北京
恭喜恭喜🎉
点赞 回复 分享
发布于 07-24 18:51 北京
大佬,卡学历嘛?
点赞 回复 分享
发布于 07-29 13:05 北京
闽江✌🏻带带我
点赞 回复 分享
发布于 07-29 22:28 福建
太牛了卧槽
点赞 回复 分享
发布于 07-31 13:36 四川

相关推荐

08-16 01:32
门头沟学院 Java
先声明,学不到任何,看热闹可以来,很生气-----------手动分割线深夜来整理一波今天滴滴高强度面试,提前告知了会尽量当天走完面试流程,因此选了下午两点的面试,但是不确定能闯到哪一关,所以也没请假,在实习公司会议室面的,没想到硬控我一下午。一面:2.20-3.30首先面试官迟到20分钟并且没有进行任何解释,面试所在地也是一个开放场地有点类似于大家随便找的地方在面,有半层二楼那种,还有一些不是沙发的临时座椅。面试官人不错,也比较友好交流,下面是问题。1.自我介绍2.实习经历,负责主要业务3.秒杀项目,一些细节,怎么解决的超卖问题,有缓存为什么还要用令牌桶(这里没太懂想问啥,令牌桶不是为了削峰填谷吗),mq做什么的,如何保证mq的消费可靠性,mq redis数据一致性保障,最后总结还需要多看看秒杀的一些异常情况处理4.mysql索引相关,亿级数据如何设计索引(开放问答,欢迎大家提提思路)5.coding实现核心代码九键,字母映射数字,给n个字符串,每个都由2-9或者大写字母或者-组成,遇到字母进行转换,分隔符跳过,最终保证能转成七位数字然后加个分隔符变成类似xxx-xxxx的形式。6.反问业务?没太听清,说是乘客打车这一块,C端最顶层的业务层。5分钟后邮件约二面,当前时间的十分钟后二面迟到5分钟,大约3.50开始,类似的场地,一样的戏谑的态度,一样的喝奶茶,开头还在和别人聊天,中间还被别人说了一句什么笑的很夸张,而且时不时就对着屏幕莫名笑,一眼看就是在电脑上聊天,我回答完也会反应半天,眼神就没在听。建议没聊完别面试。1.自我介绍2.实习做的内容,介绍的好像和简历不一样(因为还在做大需求,没做完当然不会往上写)3.盯着实习问4.计网模型,为什么要设计七层,为什么不是六层,八层5.之前做的和密码相关的问题,在得到了我https能解决,但是我加密也设计的有缺陷后,抓着这个点疯狂的逼问(我已经承认了自己这块设计的是没想到)6.秒杀项目,支付的一个流程是怎么样的,普遍的流程是怎么样的,涉及到支付平台,购物平台,银行等,引到分布式事务上。7.coding,在数组中找到和为target的最短子数组,求长度,前缀和+哈希8.反问看重校招生的特质?因人而异三面,约的4.50 hr打电话来告知5.10一样的场景,猜测都在一起坐,也是在和旁边的聊天,同时其他人和频繁入镜,整个人靠在椅子上,一副高高在上的样子。1.自我介绍2.实习或者项目最有挑战的,频繁打断,问一些无关紧要的问题,其他人可以做到问题是记录下来再进行交流的,唯独你不可以,不想听可以不听,或者干脆别面,耽误时间。最后还要否定,不是每个人的挑战都是像这位高管一样有挑战的。3.问一个java 一个进程,多个线程,一个OOM了,其余会怎么样,我想从堆和栈的角度分析,直接打断否定,说不会没关系,可以换一个。4.换到另一个,concurrenthashmap,set操作。经提示改正put操作,加锁吗,我说加,但是是否互相影响要看桶的位置是否发生冲突。问,你没有回答我的问题,我说get操作加锁吗,这里我已经不想说话了,我说你不是问的put吗,他回复,put和get同时进行,get是不是会加锁,不加他岂不是会读到脏数据,怎么保证原子性的,确实不理解他说的意思,我说通过volatile保障了可见性,put操作会及时更新到各个线程,追问,你没有回答我问题,这怎么保障原子性。最后就是直接不想说话,说不会,安慰道没关系,我们可以换个智力题,智力题https://blog.csdn.net/poppyl917/article/details/89175810第一题,直接输入在聊天框里,但是条件少,不解释,直接等我回答,问一句说一句,并且嘲讽,这是一个逻辑问题,不是魔幻世界。OK,最后确实不想动脑子了,没分析出来。最后结束不等我说完直接退出,礼貌让nm吃了?高高在上高惯了别低头委屈了自己来面我。总结,招不起别招,全是黑点😅 #后端# #Java# #2025# #秋招# #滴滴#
查看16道真题和解析
点赞 评论 收藏
分享
39 154 评论
分享
牛客网
牛客企业服务