0%

阿里国际后端一面

2025.5.14 40min
面试官介绍部门非常详细,lazada东南亚最大电商平台
主要是结合项目问八股,也有项目中某些细节的具体实现,和数据库表的设计
面试官很好,在问的过程中,一边在记录面评,面试中学到了很多。
虽然也有些没答上来,或者没答到位,但是比阿里云的体验好多了。

面试官先介绍实习招聘的流程,说Bravo102实习生招聘是统一面试的,最后拿到offer,会让同学自己选择想去的部门,双向选择。
第一个没让自我介绍的公司。

  1. Redis的过期删除策略
  2. 具体的过期删除算法有哪些,绕了好久,最后发现他想问的是内存淘汰策越(LRU、LFU、随机删)
  3. Spring拦截器用到了吗,拦截器的底层原理
  4. 拦截器和过滤器的区别
  5. Kafka怎么保证消息不丢失
  6. 项目中Kafka具体怎么使用的
  7. 消息异常,没有发出去该怎么解决
  8. 重试具体是怎么做的,循环吗
    在生产者配置中设置retries参数
    指数退避是一种常见的重试间隔调整策略,它通过逐渐增加每次重试之间的等待时间来减少对系统资源的压力。例如,第一次重试等待1秒,第二次等待2秒,第三次等待4秒等。
  9. 重试多次失败,怎么办,抛出异常吗
    记录详细的错误信息,然后根据业务需求决定下一步行动
  10. 消息一直没发出去是什么原因,分析一下
    网络连通性、生产者配置、主题是否存在、Kafka集群是否是健康状态
  11. SQL怎么优化的
  12. 怎么判断是慢查询的
  13. 怎么设计一个好的数据库
    根据需求,选择合适的数据库类型和存储引擎,遵循第三范式进行数据建模,创建合理的索引加快查询速度
  14. 说说项目的数据库表是怎么设计的,可以说字段、索引、外键等一些设计
  15. 主键怎么设计的,普通递增,分布式中可以用雪花算法
  16. 问具体的字段用什么类型设计的,比如用户名
  17. 除了雪花算法和UUID,还有什么可以让主键不重复
    还有一种是预先分配一段连续的数字范围分给每个客户端
  18. 什么时候用到了JOIN
    当显示某条评论时,除了展示评论内容外,通常还需要显示发布该评论的用户名或其他用户信息。
    需要将用户表和帖子表连接
  19. left join、right join和outer join
  20. 加密算法有哪些,什么区别
  21. 项目中用到哪些Spring特性
  22. 简单说说AOP是什么
  23. 动态代理,有的基于接口,有的不基于接口,具体说说什么区别
  24. 项目中哪些地方用到了AOP
  25. 说一下设计模式,以及知道哪些常用的设计模式,项目中怎么用到设计模式的
  26. 模版模式了解吗
  27. 说说Spring中事务传播级别有哪些
  28. 两个方法嵌套调用,A调用B,A发生异常时事务传播机制怎么设置,B发生异常时事务传播机制怎么设置
  29. Redis和数据库怎么保证数据一致性
  30. SpringCache了解吗
    SpringCache简化应用程序中的缓存管理,通过注解来启用和配置缓存功能,支持多种缓存提供者(如 Ehcache、Caffeine、Redis 等)
  31. 说说线程池
  32. 核心线程数根据什么设置
    • 对于I/O密集型应用:线程数 = CPU核心数 * (1 + 等待时间/执行时间)
    • 对于CPU密集型应用:线程数 ≈ CPU核心数
  33. 说说Synchronized
  34. Synchronized 和volatile 的区别
  35. 项目中或者哪些场景下用到volatile

反问(虽然是东南亚平台,但是做技术的不需要国外出差,非常详细的介绍部门和业务大概有5分多钟)
最后对问的问题也进行了总结,说可以钻研深入些,还有多看看源码。
对于他问的问题,每个问题可以多说一点(比如说慢查询优化,可以从怎么选择存储引擎,项目数据量是多少,每个表怎么设计的,索引怎么设计,这些方面都可以说),不用等着他来问。关于分库分表,也要考虑表的规模。
对于阿里来说,每个表可以存放千万条数据。还要多考虑些性能问题,比如阿里的淘宝某些小游戏,为了增加用户停留时间,一般QPS都在几十万,双十一还会达到几千万,怎么保证高可用,都可以考虑。