2021-04

一面

  1. 1. 介绍项目: 订单履约系统流程
  2. 1.1 业务介绍
  3. 1.2 项目Maven模块化拆分介绍;
  4. 2. 项目中设计的技术点
  5. 项目QPS
  6. MQ:Kafka 高级特性:重复消费,高吞吐
  7. 缓存:Redis分布式锁->由setNx引入,超时缺点,引出Redisson 锁续命机制;
  8. 数据存储:分库分表逻辑 (还没有实战,聊了逻辑,但是看出面试官比较看重)
  9. 订单表,订单商品明细表,发货表,订单收货人信息,订单促销信息(目前5个)
  10. 头部商家,路由策略,如何解决数据分配不均匀问题。(要非常具体的那种,因为没做过,所以细节根本不会)
  11. 数据库:
  12. Mysql如何存储千万级别的数据(聚簇索引,1170*1170*16=2100W数据,B+树高度为3,只需要2IO)
  13. 算法:
  14. 手写二叉树层序遍历(queue bfs)
  15. 大数据topK问题,分片,构造大顶堆,堆排序原理(优先队列) (sift up/sift down)
  16. Redis 布隆过滤器;
  17. 大数据场景相关问题 bitmap(没回答上来)
  18. 3.反问环节
  19. 业务介绍: 类似于松鼠拼拼,团长,前置仓,配送,团长收货/佣金,用户完成,履约结束等等。
  20. 业务痛点: 社区团购履约时效控制,尤其到了夏天,水果/蔬菜这些 很容易造成货损,仓配方向核心问题;
  21. 技术框架: RPC:dubbo, springboot, MQ削峰,分库分表,数据量一天2000W订单;

二面

  1. 二面偏向于实战高并发开发过程重细节
  2. Kafka 高级特性,高并发下丢数据什么原因,如何解释及解决;
  3. Redis分布式锁,对于Redisson 加锁时,如果当前节点宕机,会出现什么情况,该怎么办?
  4. 分库分表逻辑及细节
  5. Dmall 主站APP订单下单流程中 如何控制分布式事务?
  6. 算法:
  7. 888&889&890.....&98765 = ?
  8. 当时分析:
  9. 110
  10. 1000
  11. ------
  12. 0000
  13. 遇到2^n 所有结果都会变成0
  14. 最后面试结束时,面试官提交到是一种数据结构,线段树 ?后缀数组 ?
  15. 面试完后在LC上找到了类似题目:https://leetcode-cn.com/problems/bitwise-and-of-numbers-range/