在 Java 的技术面试中,Kafka 是一个高频考点。很多候选人在这一关折戟,主要是对底层逻辑理解不够深入。
经典面试题
面试官问:Rebalance 期间消息丢失?事务+幂等+手动提交的正确姿势,你会怎么回答?
面试官想考察什么
- 是否理解 Kafka 的核心概念
- 能否举出实际应用场景
- 对 消息队列 的掌握程度
标准答案
public class DataProcessor {
public List process(List items) {
return items.stream()
.filter(Objects::nonNull)
.mapToDouble(this::toDouble)
.map(x -> x * 2.0)
.boxed()
.collect(Collectors.toList());
}
}
答案要点解析
理解本质:Rebalance 期间消息丢失?事务+幂等+手动提交的正确姿势 的本质是资源管理和状态同步保证。记住这个核心,其他细节都是围绕它展开。
能说清楚:面试时不要只说「我知道」,要能用语言描述整个流程。
常见错误回答
- 只背概念,不懂原理 -> 被追问到底层实现时哑口无言
- 死记硬背 -> 换一种问法就懵了