4.17蚂蚁一面凉经

  1. 自我介绍
  2. 毕业想从事什么方向的工作
  3. 聊一下自己做的项目(我自己挑了一个黑马点评)
  4. UV统计怎么做的?为什么要这么实现呢?用HyperLogLog为什么不会占用很大空间呢?16KB怎么去存储这个数据呢
  5. 好友关注怎么做的
  6. 项目的哪个点是有挑战性的(回答了优惠券秒杀)
  7. 秒杀为什么要用消息队列
  8. Redis挂了怎么办(回答用集群方案来解决)整个集群挂了就不行了对吧?(面试官追问 回答考虑限流)
  9. 但你的库存信息都是在 Redis 里面,对吧?就是限流,你取不到库存了吗
  10. 你怎么保证那个 Redis 里面库存和 DB 里面的库存它是一致的,没有可能出错?
  11. 你那个 Redis 你去做扣减库存怎么保障它的原子性呢?
  12. 不用lua脚本会带来什么样的问题?
  13. 扣减库存的原子性是为了解决什么样的问题
  14. 假设这个地方我们不用 lua 脚本,对吧?就用最普通的方案会带来什么样的问题?
  15. 乐观锁怎么解决超卖的问题
  16. 你能那个详细的描述一下 lua 脚本里面是用了什么样的 Redis 的命令?
  17. 你lua脚本就是怎么写的?就是你肯定是用了 Redis 的命令,对吧?
  18. 比如说你扣了库存,我们肯定是要做支付,对吧?那库存和支付的顺序是怎么样?先支付再扣,或者先扣库存再支付,这个过程你来讲一下吧。
  19. 创建订单,然后假设支付失败了呢。
  20. 那怎么去把数据写到 Redis 里面呢?你这个时候你 Redis 里面库存也得回加,对吧?这里就可以会涉及到一个你 DB 的库存跟 Redis 的库存的一致性的问题,怎么去保障它们一致性?
  21. 因为消息丢失导致的这个消息消费失败导致的库存不一致,怎么发现这个问题
  22. 重新发消息的时候会不会导致那个库存的操作重复?
  23. 通过订单号去做幂等是吗。
  24. 那假设那个用户量进一步的变大,就可能你一步的去消费 MQ 的消息的时候, DB 的压力还是会比较大,还是会消化不完,这个时候我们应该怎么去优化呢?(考虑集群、分库)
  25. 你这个场景你会怎么去做?分库用什么字段去分?(回答用订单号作为分配的依据)
  26. 假设一个用户下了 3 笔单,然后落到了 3 个库,他最终去查的时候,他会涉及一个全库式扫描,对吧?你怎么去避免这种问题呢?(答用用户id来做分库)
  27. 那假设商家要查他有多少秒杀进来的订单,这个情况怎么办呢?
  28. 如果用 MQ 消息队列可以做吗?用消息队列可以去怎么优化这个 case (指的是用消息队列优化商家查询订单的速度)吗?
  29. 反问阶段

全程拷打点评项目,一天后挂了

还是太菜了 再沉淀沉淀吧

全部评论

相关推荐

评论
1
18
分享

创作者周榜

更多
牛客网
牛客企业服务