8月28日美团二面

2020年08月28日晚上7点开始的面试。

更新:已经凉了,还是对项目不够了解,哎,和美团无缘吧

面试官是一位大叔,比较后生。上来先自我介绍。

  • 介绍一下你的项目,实现了哪些业务。使用了哪些技术框架。开发整个过程中,遇到什么问题,哪些地方是有挑战的。
  • 做了购买,下单的功能,就聊下单的吧。订单系统大家都比较熟悉吧?那你讲下你的订单的系统吧?
  • 下单的系统,最起码会去检查库存,扣库存之类的。下单了这些都要成功,分布式事务这块有什么方案吗?
  • seata是怎么做的呢?讲下二阶段的提交。
  • 那要是二阶段提交的时候,第二个阶段失败了怎么办?
  • 你商品上架的时候,需要解决什么分布式事务的问题呢?面试官似乎有点不太懂,我给他讲了很久。
  • 那你技术选型有什么区别呢?
  • 下单是异步的嘛,用户提交,你就异步处理了,你给用户是什么响应呢?
  • 你是让用户等待,所有的成功之后才去给响应是吗?
  • 那你怎么去保证时效呢?
  • 我的点是这样的,你下单是并发度高,所以你选择了MQ。你下单的时候是异步的,这样的话是不是用户的体验比较差吧?
  • 你的MQ是把你的消息存在里面是吧,然后你的消息需要放到各个微服务中去执行是吧。
  • 那你的最终一致性是怎么解决的呢?在哪里解决的最终一致性。
  • 延时队列是怎么做的呢?
  • MQ还用到了别的吗
  • 我现在各个系统为了保持削峰,所以用到了MQ。那么MQ如何保证消息的时序性呢?
  • 先支付成功了,然后取消了订单。但是你收到的消息顺序却是取消了订单,然后支付成功。这种情况要怎么处理呢?
  • 买了一件,支付了。然后改成2件,支付。然后这两个乱序到达了,是不是就有问题了。
  • 你用Redis做缓存是吧,都缓存哪些信息。
  • 有一个热点商品,它的并发度很高,这个时候访问,怎么处理呢?
  • 换个场景,读是可以一主多从,那如果需要写呢?我从限流的角度去考虑的,但是面试官说要支持高并发,怎么去体验更好。面试官说可以合并请求,散列都是可以的。可以修改散列算法来让同一个key散列到不同的机器上去。
  • 现在想去统计下每个商品访问量的top10。
  • 订单要落库,数据量比较大,比如千万,那怎么做查询呢?
  • 就拿下单这个场景来说,是以什么维度来区分的?如果你按照某个维度进行了区分,那有些诉求是按照你的诉求满足不了的,那怎么办呢?
  • socket编程,中间的网络的消息的传递是什么样的?
  • https是怎么保证安全的呢?
  • 用了Https能解决dns劫持的问题吗?
  • 如何解决dns劫持的问题呢?
  • 很多支持了http2.0,那http2.0的加速原理是什么?
  • 你平时对技术的生态,学习的途径都有哪些呢?

反问。