找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 121|回复: 0

蚂蚁科技集团股份有限公司二面

[复制链接]

1288

主题

0

回帖

4008

积分

论坛元老

积分
4008
发表于 2026-5-28 23:16:48 | 显示全部楼层 |阅读模式
基本信息
  • 形式:二面采用视频面试形式。面试包含项目深度追问、系统设计、前沿技术考察、手写代码等环节。
  • 时长:约60分钟以上。面试节奏紧凑,问题层层递进,会追问到知识边界。
  • 氛围:面试官级别更高,会从项目细节延伸到系统设计,考察技术深度和工程思维。

面试流程
一面通过 → 二面通知 → 按时参加视频面试 → 项目深度追问 → 前沿技术考察 → 系统设计/手写代码 → 反问环节 → 退场。
面试问题及参考回答一、项目深度与架构设计

1. 请介绍你负责的项目模块的架构设计及原因。
参考回答:项目采用微服务架构,主要考虑以下几点:高可用性——用户状态存储在Redis中,支持任意节点处理请求;Nginx负载均衡+Sentinel熔断降级保障高峰期稳定;可扩展性——服务节点动态增减,通过Nacos+Spring Cloud Gateway实现自动注册发现,支持弹性伸缩。

2. 如何处理CPU高/内存高的问题?
参考回答:CPU高排查:使用top查看高CPU进程,jstack查看线程堆栈,分析是否有死循环或锁竞争;内存高排查:jmap分析内存快照,查找内存泄漏对象。常用工具包括Arthas、MAT等。

3. 如何解决锁竞争频繁的问题?
参考回答:使用读写锁(ReentrantReadWriteLock)分离读写操作;使用分段锁(ConcurrentHashMap);使用CAS操作(AtomicInteger);缩小锁粒度,避免锁大块代码。

4. 死锁如何排查和解决?
参考回答:排查步骤:jstack检查线程堆栈查看死锁状态,分析日志定位锁对象,使用Arthas等工具辅助排查。解决方案:避免嵌套锁,使用tryLock尝试获取锁避免阻塞,统一锁获取顺序。

二、数据库深度

5. MySQL的幻读是什么?如何解决?
参考回答:幻读指同一事务内多次执行相同查询,结果集发生变化。MySQL通过间隙锁解决幻读——SELECT ... FOR UPDATE会锁住查询范围的间隙,防止新数据插入。升级到Serializable隔离级别也能解决幻读,但并发性能会下降。

6. 间隙锁死锁的原因与排查思路?
参考回答:死锁原因:事务锁定范围重叠相互等待;索引未命中触发不必要间隙锁;并发插入同一区间数据。排查:SHOW ENGINE INNODB STATUS查看死锁详情;SHOW PROCESSLIST查看等待锁的事务。预防:使用唯一索引减少间隙锁;避免大范围FOR UPDATE;降低隔离级别。

7. Redo Log在磁盘上的存储方式及落盘策略?
参考回答:Redo Log以循环写的固定大小日志文件存储。落盘策略由innodb_flush_log_at_trx_commit参数控制:0每秒刷新到磁盘;1每次事务提交时刷新;2每次提交写入系统缓存,每秒刷新到磁盘。

三、分布式与中间件

8. RabbitMQ镜像集群与普通集群的区别?
参考回答:普通集群只有主节点存储队列数据,其他节点只存储元数据;镜像集群所有节点存储完整队列,避免单点故障但同步开销大。高可用建议使用Quorum Queues或镜像队列策略。

9. 消息队列的持久化机制是怎样的?
参考回答:消息持久化将消息写入磁盘,防止服务重启丢失。RabbitMQ通过将队列和消息标记为持久化实现;RocketMQ通过CommitLog顺序写盘;Kafka通过将消息写入磁盘段文件实现持久化。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|知行公社 ( 粤ICP备2020096454号 )

GMT+8, 2026-9-6 01:11 , Processed in 0.051573 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表