滴滴国际化外卖后端面试经历

滴滴 · 国际化外卖后端 · 北京 · 2026-03

面试题目

  1. 自我介绍
  2. 个人职业前景
  3. 技术栈相关:从C-C++转向Java中间件的理解(包括epoll、消息队列、主从模型、生产者消费者模型,以及处理TCP粘包/拆包的应用层协议设计)
  4. IO网络模型有哪些
  5. 场景题:如何保证抗住高并发流量
  6. 场景题:如何保证外卖流程的顺序不乱
  7. 场景题:如何保证MQ在MQ层不丢失(引导至Raft一致性算法)
  8. 手撕算法:合并有序链表
  9. 反问:AI开发支持、Agent开发前景、美洲外卖业务展望

参考解析

  • IO网络模型:主要包括阻塞IO、非阻塞IO、IO多路复用(select/poll/epoll)、信号驱动IO和异步IO。重点关注epoll的边缘触发(ET)与水平触发(LT)区别及内核事件表机制。
  • 高并发流量保障:通过集群化部署、负载均衡(Nginx/LVS)、缓存(Redis)、限流降级(Sentinel/Hystrix)及数据库读写分离、分库分表等手段应对。
  • 外卖流程顺序性:主要通过消息队列的单分区顺序消费、版本号/时间戳校验或分布式锁控制业务并发来实现。
  • MQ消息可靠性(Raft):MQ层不丢失通常依赖于多副本同步机制。Raft算法通过Leader选举和日志复制,确保消息在集群中大多数节点持久化成功后才确认,从而保证数据一致性和高可用。
  • 合并有序链表:可采用递归或迭代双指针法,维护一个虚拟头节点,依次比较两个链表节点数值并链接至结果链表,时间复杂度O(n+m)。