美团一面凉经

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

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 上海

相关推荐

31 194 评论
分享
牛客网
牛客企业服务