美团一面凉经

今天下午面的,面到一半就知道挂定了。。。为啥看大家伙的美团面筋都是八股,我上来就是场景题?

1.自我介绍

2.讲讲你的实习项目吧

3.怎么保证你向另一端发送的请求能被接受到?

4.假设现在有个场景,一个结算系统,一个积分系统,一个用户消费后,需要通过积分系统增加对应的积分。那么你怎么实现这个请求的发送?说了同步和异步

5.你刚刚说消息队列和RPC远程调用是吧,那你在选择这两种方式的时候,评判标准是什么? 我答了时效性。

6.还有别的评判标准吗?我想了想说消息队列可以起存储消息的作用,可以让消息在队列中存储一段时间,后面再进行处理,面试官说这也是时效性。(我说我想不到了 ...)

7.假如用消息队列,那么会不会出现,消费了但是积分没增加的情况?怎么解决呢?

8.楼主说的rabbitMQ,从可靠性以及生产者、队列、消费者三个维度来说了怎么保证消息不丢失?

9.你刚刚说消费端用消息确认模式,那我假设消息消费失败了怎么办,(我说可以重入列,or 本地重试,重试了放死信队列,后期处理)

10.假如我现在结算系统发送给积分系统的消息,确认失败返回了nack报文怎么办?(我说可以建立重试机制。)

11.那么我要是一直重试失败,MQ就是接受不到这个消息,怎么办? (想了想说,可以从网络的角度去考虑,可能当前出现了网络阻塞,因此可以把消息先发送给另一个消息队列,或者直接先落库。)

12.但是你这样,相当于原来的MQ没有被使用了呀? 而且你这样存储入库了,怎么保证时效性呢?(我其实没听懂他什么意思,事后问同事,同事说用了MQ不就已经不考虑实时性了吗。。。) 回到那个一直重试的问题,求求大佬说一下,我场景题太差了。

13.我们换个问题吧,假如我现在MQ中有两个增加积分的消息,会不会出现被积分系统重复消费的问题? 怎么解决呢? 我说可以设置唯一分布式ID,通过唯一性来解决幂等问题。或者也可以通过数据库的唯一性id来解决这个问题。

14.你理解错了我的意思,我的意思是这两个消息的内容是一样的,但是id不同,你该怎么处理?

15.(我还是没听懂他的意思,我理解是如果不是重试机制下发出相同ID的消息,正常发出的两个内容相同的消息正常消费不就可以了吗。。)他说,那我换个问法吧,假如现在有一个List<Student> student的字段有 id name classid 现在这个列表中,存在多个相同的学生(id name classid都相同),你怎么做去重,同时做分组(将存在重复的,以及不存在的分组)?写个代码实现一下吧。

16.你把刚刚那题,在数据库的场景下,写个sql语句吧。(..太久没写sql了框架用多了。。。给忘了怎么写了)

17.了解spring吗,事务以及对应的传播机制,循环依赖怎么解决的?

18.分布式锁了解吗?为什么要给分布式锁加ttl呢?

19.反问:知道自己铁挂了,就直接问对自己的评价,需要哪方面加强了。

#美团#
全部评论
我根据我的理解的话,他其实那几个幂等性的问题,其实关键就是消费系统里面的ID,就对于一个用户来说,他消费系统做的一次消费,这次消费应该有唯一的消费单ID,可以用这个消费单ID作为唯一索引。然后进来以后,积分系统增加积分成功以后,应该把这个消费单ID和用户ID,积分相关内容一起记录。然后接下来防重我感觉有3步要做,首先应该根据订单ID和一些其他属性作为Redis分布式锁的Key,保证同时只有一个进入,然后进入后首先查这个消费单ID是否有记录,有的话就不继续加积分系统,没有的话就积分系统加分,成功的话把这个消费单ID,用户ID,积分相关内容作为一条记录落库。
5
送花
回复
分享
发布于 2023-08-31 22:29 北京
感觉可以和他聊聊分布式事务 tcc
3
送花
回复
分享
发布于 2023-08-31 21:37 北京
滴滴
校招火热招聘中
官网直投
咱俩同一个面试官吧,题目基本一样,我感觉我寄了
3
送花
回复
分享
发布于 2023-08-31 22:28 浙江
有没有可能问这种难度的都是觉得你是大佬,过的可能性会比较大呢?
3
送花
回复
分享
发布于 2023-08-31 22:42 湖北
12题之前感觉他是想问分布式事务相关,比如结算系统在下游失败后应该有相应的回滚能力、以及对账能力去感知下游接口是否更新成功
2
送花
回复
分享
发布于 2023-08-31 22:02 广东
大家可以试试腾讯云智,hc多,不卡学历,而且面试不难,只要基础扎实,多准备准备很容易过———https://www.nowcoder.com/share/jump/68795928579826351
1
送花
回复
分享
发布于 2023-08-31 21:45 湖南
15这个分组 没搞懂他啥意思 楼主咋回答的呀
1
送花
回复
分享
发布于 2023-08-31 22:02 广东
我也是到家,一面问了70多分钟八股,问麻了然后做了二十多分钟题
1
送花
回复
分享
发布于 2023-09-02 08:43 北京
这这这,这是后端嘛
点赞
送花
回复
分享
发布于 2023-08-31 21:37 北京
同学,要不试试携程吧,秋招刚开,NTAW4HN帮忙查进度。
点赞
送花
回复
分享
发布于 2023-08-31 22:19 上海
佬是到家下的哪个部门
点赞
送花
回复
分享
发布于 2023-08-31 22:37 上海
最怕的就是get不到面试官想问的是什么
点赞
送花
回复
分享
发布于 2023-09-01 09:46 浙江
试试这个
点赞
送花
回复
分享
发布于 2023-09-01 12:44 北京
谢谢分享
点赞
送花
回复
分享
发布于 2023-09-01 13:47 江苏
这么难吗
点赞
送花
回复
分享
发布于 2023-09-01 14:30 江苏
可以看下富途,互联网券商,金融科技。 现在投,预计最快九月份拿offer。 https://www.nowcoder.com/share/jump/7403134121720614441
点赞
送花
回复
分享
发布于 2023-09-01 14:37 广东
来试试我司
点赞
送花
回复
分享
发布于 2023-09-02 11:10 江苏
哥们试试众安保险,互联网保险企业,工资是互联网级别的,招JAVA和后台岗的,区别竞争一下~
点赞
送花
回复
分享
发布于 2023-09-02 15:40 上海

相关推荐

一、项目+八股(55min)1、自我介绍2、简单介绍一下你的项目3、压测的性能瓶颈?怎么调试的?4、缓存的数据一致性问题怎么解决的?为什么选择这个方案?还可以优化吗?5、Redis为什么快?6、Redis的数据结构?7、Redis内存淘汰策略?8、什么是可重入?如何基于Redis实现一个可重入的分布式锁?9、set和set&nbsp;nx命令有什么区别?10、zet如何优化底层的查询的?11、设计冗余字段的背景是什么?优点是什么?缺点又是什么?12、MySQL的索引结构?13、为什么一般采用自增ID当主键?14、为什么做深度分页的时候会很慢?15、MySQL的日志文件主要有哪几种?16、事务管理通过哪些文件来管理的?17、String、StringBuilder和StringBuffer的区别?18、Synchorized和Lock的区别?19、Synchorized的锁升级过程?20、学习Java过程中,有没有什么事情是你反复练习的事情?21、介绍一件收获最大的事情?22、介绍一下项目中的多机竞争?怎么优化的?23、多机竞争的核心本质是什么?24、分表为什么要按照大小分表?有没有别的思路?分表解决的问题是冷热分离吗?25、用什么其他方案能够解决冷热数据的问题?26、怎么通过任务ID来定位到存储的表的?27、在任务生成前已经知道该任务存储到哪里了?28、你怎么知道切表了?二、算法(25min)重排链表(没做过,做了半天A了一半测试用例,面试官让说了一下思路)三、反问(5min)您觉得我本次面试有什么不足的地方?可以提供一些建议吗?(1)基础扎实,但是缺乏实践(2)实践的时候要多思考,选用哪种方案?为什么选用这种方案?有没有其他更好的方案?不要闭门造车。四、总结面试官很和蔼,遇到不会的问题也是循序渐进地引导,就是对于项目的拷打太狠了,另外算法还是刷的少了面完3分钟,北森代发短信通知过了,有佬知道美团会用这玩意吗?我一度怀疑是不是美团发的短信,如果我的外卖也能有这么高的效率就好了
点赞 评论 收藏
转发
31 194 评论
分享
牛客网
牛客企业服务