26年2月神州数码 Java开发工程师 二面

1. Spring Boot自定义Starter中,META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件作用?

思路

核心讲该文件在Spring Boot 2.7+替代旧版spring.factories的核心作用,以及自动配置类的加载逻辑。

回答示例

该文件是Spring Boot 2.7.x及以上版本中,自定义Starter实现自动配置的核心配置文件,替代了旧版的META-INF/spring.factories,作用如下:

  1. 指定自动配置类:文件内逐行写入自定义Starter的自动配置类全限定名(如com.example.starter.MyAutoConfiguration),Spring Boot启动时会扫描该文件,加载所有配置的自动配置类;
  2. 触发条件装配:加载的自动配置类通过@ConditionalOnClass/@ConditionalOnMissingBean等注解实现“条件装配”,仅满足条件时才注册Bean;
  3. 简化配置加载:相比spring.factories,该文件格式更简洁(纯类名列表),且Spring Boot对其加载逻辑做了优化,减少了不必要的扫描开销。

示例文件内容:

com.example.starter.datasource.DataSourceAutoConfiguration
com.example.starter.log.LogAutoConfiguration

核心:替代旧版spring.factories,是自定义Starter让自动配置类被Spring Boot识别并加载的核心入口。

2. MySQL主从延迟监控:Seconds_Behind_Master突增时的排查路径?

思路

按“先定位延迟类型→再排查具体原因”的逻辑,从主库、从库、网络、SQL四个维度拆解排查步骤。

回答示例

Seconds_Behind_Master(从库延迟秒数)突增时,核心排查路径:

  1. 第一步:确认延迟类型(同步延迟/复制中断)
  2. 第二步:排查主库侧原因
  3. 第三步:排查从库侧原因
  4. 第四步:排查网络原因
  5. 第五步:排查SQL兼容性

核心排查逻辑:先确认复制是否中断,再区分“主库生成慢、网络传输慢、从库回放慢”三类根因。

3. Redis Cluster槽位迁移过程中,客户端如何感知MOVED重定向?

思路

讲MOVED重定向的触发场景、客户端处理逻辑,区分“首次访问”和“槽位迁移中”的不同处理。

回答示例

Redis Cluster槽位迁移(如扩容/缩容)时,客户端通过MOVED响应+重定向机制感知槽位变化,核心流程:

  1. 触发MOVED响应
  2. 客户端处理逻辑
  3. 客户端优化

核心:MOVED是“永久重定向”(更新缓存),ASK是“临时重定向”(不更新缓存),客户端自动处理重定向,业务无感知。

4. Kafka ISR集合动态调整:replica.lag.time.max.ms参数调优经验?

思路

先解释参数含义,再讲调优的核心原则(平衡一致性与可用性),结合场景给出调优建议。

回答示例

1. 参数核心含义

replica.lag.time.max.ms(默认30000ms=30秒):Follower副本若超过该时间未向Leader同步数据(或同步进度落后),则被踢出ISR集合;若后续追上,可重新加入ISR。

2. 调优核心原则

  • 调大:提升数据一致性(ISR更稳定,减少副本掉队),但降低可用性(ISR缩小到低于min.insync.replicas时,生产者写入失败);
  • 调小:提升可用性(Follower快速掉队,ISR不易缩小),但降低一致性

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务