跳到主要内容

Kafka面试题

基本概念与架构

核心概念

  1. 什么是Kafka?它的主要特点是什么?
  2. Kafka的核心组件有哪些?(Broker、Producer、Consumer、Topic、Partition)
  3. 什么是Topic和Partition?它们的关系是什么?
  4. 什么是Consumer Group?作用是什么?
  5. 什么是Offset?如何管理?
  6. Kafka和其他消息队列(RabbitMQ、RocketMQ)的区别?

架构原理

  1. Kafka的整体架构是怎样的?
  2. Kafka和Zookeeper的关系?Zookeeper在Kafka中的作用?
  3. Kafka 2.8版本后的KRaft模式是什么?
  4. 什么是Controller?它的作用是什么?
  5. ISR(In-Sync Replicas)是什么?作用是什么?
  6. Kafka的数据存储机制是怎样的?

集群部署与高可用

集群搭建

  1. Kafka集群如何搭建?需要注意哪些参数?
  2. Broker的配置文件有哪些重要参数?
  3. 如何规划Kafka集群的规模?
  4. 多数据中心部署如何实现?

高可用机制

  1. Kafka如何实现高可用?
  2. 副本机制是如何工作的?
  3. Leader选举机制是怎样的?
  4. 如何配置副本数量和同步策略?
  5. 集群扩容和缩容如何操作?
  6. 如何实现跨机房容灾?

数据处理与性能

数据处理

  1. Kafka的消息传递语义有哪些?(At-most-once、At-least-once、Exactly-once)
  2. 如何保证消息不丢失?
  3. 如何保证消息的顺序性?
  4. 如何处理大消息?
  5. 消息压缩支持哪些格式?如何配置?

性能优化

  1. Kafka的性能指标有哪些?
  2. 如何优化Producer性能?
  3. 如何优化Consumer性能?
  4. 批量发送如何配置?
  5. 如何优化磁盘I/O性能?
  6. JVM参数如何调优?

监控与运维

监控指标

  1. Kafka需要监控哪些关键指标?
  2. 如何监控消息积压情况?
  3. 如何监控集群健康状态?
  4. JMX监控如何配置?

运维工具

  1. Kafka自带的管理工具有哪些?
  2. 如何使用kafka-topics.sh管理主题?
  3. 如何使用kafka-consumer-groups.sh查看消费组?
  4. Kafka Manager(CMAK)的主要功能?
  5. 如何集成Prometheus和Grafana?

日常运维

  1. 如何备份Kafka数据?
  2. 如何进行版本升级?
  3. 日志清理策略如何配置?
  4. 如何调整Topic的分区数?
  5. 如何重置Consumer的Offset?

故障处理

常见故障

  1. Broker宕机如何处理?
  2. 消息堆积如何解决?
  3. Consumer消费延迟如何排查?
  4. 磁盘空间不足如何处理?
  5. 网络分区(脑裂)如何处理?

故障恢复

  1. 如何恢复丢失的数据?
  2. 如何处理ISR频繁变化?
  3. Zookeeper连接失败如何处理?
  4. 如何处理Kafka OOM问题?

安全与权限

  1. Kafka支持哪些认证机制?
  2. 如何配置SSL/TLS加密?
  3. ACL权限如何配置?
  4. 如何实现数据加密存储?

最佳实践

  1. Topic命名规范建议?
  2. 分区数如何合理设置?
  3. 副本数设置多少合适?
  4. 数据保留策略如何制定?
  5. 监控告警如何设置?

更新时间:2025-01-30