2025.5.14 40min
面试官介绍部门非常详细,lazada东南亚最大电商平台
主要是结合项目问八股,也有项目中某些细节的具体实现,和数据库表的设计
面试官很好,在问的过程中,一边在记录面评,面试中学到了很多。
虽然也有些没答上来,或者没答到位,但是比阿里云的体验好多了。
面试官先介绍实习招聘的流程,说Bravo102实习生招聘是统一面试的,最后拿到offer,会让同学自己选择想去的部门,双向选择。
第一个没让自我介绍的公司。
- Redis的过期删除策略
- 具体的过期删除算法有哪些,绕了好久,最后发现他想问的是内存淘汰策越(LRU、LFU、随机删)
- Spring拦截器用到了吗,拦截器的底层原理
- 拦截器和过滤器的区别
- Kafka怎么保证消息不丢失
- 项目中Kafka具体怎么使用的
- 消息异常,没有发出去该怎么解决
- 重试具体是怎么做的,循环吗
在生产者配置中设置retries参数
指数退避是一种常见的重试间隔调整策略,它通过逐渐增加每次重试之间的等待时间来减少对系统资源的压力。例如,第一次重试等待1秒,第二次等待2秒,第三次等待4秒等。 - 重试多次失败,怎么办,抛出异常吗
记录详细的错误信息,然后根据业务需求决定下一步行动 - 消息一直没发出去是什么原因,分析一下
网络连通性、生产者配置、主题是否存在、Kafka集群是否是健康状态 - SQL怎么优化的
- 怎么判断是慢查询的
- 怎么设计一个好的数据库
根据需求,选择合适的数据库类型和存储引擎,遵循第三范式进行数据建模,创建合理的索引加快查询速度 - 说说项目的数据库表是怎么设计的,可以说字段、索引、外键等一些设计
- 主键怎么设计的,普通递增,分布式中可以用雪花算法
- 问具体的字段用什么类型设计的,比如用户名
- 除了雪花算法和UUID,还有什么可以让主键不重复
还有一种是预先分配一段连续的数字范围分给每个客户端 - 什么时候用到了JOIN
当显示某条评论时,除了展示评论内容外,通常还需要显示发布该评论的用户名或其他用户信息。
需要将用户表和帖子表连接 - left join、right join和outer join
- 加密算法有哪些,什么区别
- 项目中用到哪些Spring特性
- 简单说说AOP是什么
- 动态代理,有的基于接口,有的不基于接口,具体说说什么区别
- 项目中哪些地方用到了AOP
- 说一下设计模式,以及知道哪些常用的设计模式,项目中怎么用到设计模式的
- 模版模式了解吗
- 说说Spring中事务传播级别有哪些
- 两个方法嵌套调用,A调用B,A发生异常时事务传播机制怎么设置,B发生异常时事务传播机制怎么设置
- Redis和数据库怎么保证数据一致性
- SpringCache了解吗
SpringCache简化应用程序中的缓存管理,通过注解来启用和配置缓存功能,支持多种缓存提供者(如 Ehcache、Caffeine、Redis 等) - 说说线程池
- 核心线程数根据什么设置
- 对于I/O密集型应用:
线程数 = CPU核心数 * (1 + 等待时间/执行时间)
- 对于CPU密集型应用:
线程数 ≈ CPU核心数
- 对于I/O密集型应用:
- 说说Synchronized
- Synchronized 和volatile 的区别
- 项目中或者哪些场景下用到volatile
反问(虽然是东南亚平台,但是做技术的不需要国外出差,非常详细的介绍部门和业务大概有5分多钟)
最后对问的问题也进行了总结,说可以钻研深入些,还有多看看源码。
对于他问的问题,每个问题可以多说一点(比如说慢查询优化,可以从怎么选择存储引擎,项目数据量是多少,每个表怎么设计的,索引怎么设计,这些方面都可以说),不用等着他来问。关于分库分表,也要考虑表的规模。
对于阿里来说,每个表可以存放千万条数据。还要多考虑些性能问题,比如阿里的淘宝某些小游戏,为了增加用户停留时间,一般QPS都在几十万,双十一还会达到几千万,怎么保证高可用,都可以考虑。