Kafka面试题
基本概念与架构
核心概念
- 什么是Kafka?它的主要特点是什么?
- Kafka的核心组件有哪些?(Broker、Producer、Consumer、Topic、Partition)
- 什么是Topic和Partition?它们的关系是什么?
- 什么是Consumer Group?作用是什么?
- 什么是Offset?如何管理?
- Kafka和其他消息队列(RabbitMQ、RocketMQ)的区别?
架构原理
- Kafka的整体架构是怎样的?
- Kafka和Zookeeper的关系?Zookeeper在Kafka中的作用?
- Kafka 2.8版本后的KRaft模式是什么?
- 什么是Controller?它的作用是什么?
- ISR(In-Sync Replicas)是什么?作用是什么?
- Kafka的数据存储机制是怎样的?
集群部署与高可用
集群搭建
- Kafka集群如何搭建?需要注意哪些参数?
- Broker的配置文件有哪些重要参数?
- 如何规划Kafka集群的规模?
- 多数据中心部署如何实现?
高可用机制
- Kafka如何实现高可用?
- 副本机制是如何工作的?
- Leader选举机制是怎样的?
- 如何配置副本数量和同步策略?
- 集群扩容和缩容如何操作?
- 如何实现跨机房容灾?
数据处理与性能
数据处理
- Kafka的消息传递语义有哪些?(At-most-once、At-least-once、Exactly-once)
- 如何保证消息不丢失?
- 如何保证消息的顺序性?
- 如何处理大消息?
- 消息压缩支持哪些格式?如何配置?
性能优化
- Kafka的性能指标有哪些?
- 如何优化Producer性能?
- 如何优化Consumer性能?
- 批量发送如何配置?
- 如何优化磁盘I/O性能?
- JVM参数如何调优?
监控与运维
监控指标
- Kafka需要监控哪些关键指标?
- 如何监控消息积压情况?
- 如何监控集群健康状态?
- JMX监控如何配置?
运维工具
- Kafka自带的管理工具有哪些?
- 如何使用kafka-topics.sh管理主题?
- 如何使用kafka-consumer-groups.sh查看消费组?
- Kafka Manager(CMAK)的主要功能?
- 如何集成Prometheus和Grafana?
日常运维
- 如何备份Kafka数据?
- 如何进行版本升级?
- 日志清理策略如何配置?
- 如何调整Topic的分区数?
- 如何重置Consumer的Offset?
故障处理
常见故障
- Broker宕机如何处理?
- 消息堆积如何解决?
- Consumer消费延迟如何排查?
- 磁盘空间不足如何处理?
- 网络分区(脑裂)如何处理?
故障恢复
- 如何恢复丢失的数据?
- 如何处理ISR频繁变化?
- Zookeeper连接失败如何处理?
- 如何处理Kafka OOM问题?
安全与权限
- Kafka支持哪些认证机制?
- 如何配置SSL/TLS加密?
- ACL权限如何配置?
- 如何实现数据加密存储?
最佳实践
- Topic命名规范建议?
- 分区数如何合理设置?
- 副本数设置多少合适?
- 数据保留策略如何制定?
- 监控告警如何设置?
更新时间:2025-01-30