数据岗位面试题更新 2026-08-05

在 Apache Kafka 中,Producer 与 Consumer 各自承担什么职责?请描述消息从生产到被消费的完整流程,并说明其中涉及的关键机制。

数据系统设计技术原理Apache Kafka

考察说明

考查对 Kafka 基础角色及其消息流转过程的理解。

回答思路

  1. 【回答框架 1】Producer 负责将消息发布到指定的 Topic。它根据消息的 Key 或轮询策略选择分区,并将数据批量发送到该分区的主副本所在的 Broker。Producer 端支持分区器、压缩器和批次大小等参数调节吞吐与延迟。
  2. 【回答框架 2】Consumer 以消费者组为单位订阅 Topic,并按分区分配策略消费消息。组内每个分区同一时刻只被一个消费者实例消费,从而实现负载均衡;组内消费者增减时会触发 Rebalance 重新分配分区。
  3. 【回答框架 3】消息生产与消费的完整流程包括:Producer 序列化消息并选择分区,发送到 Broker 的日志段;Broker 持久化后向 Producer 返回确认。Consumer 从指定位移开始拉取消息,处理完成后提交位移,断点续传依赖位移提交机制。
  4. 【回答框架 4】可靠性由多副本同步与消费者位移共同保证:Producer 可设置 acks=all 等待所有同步副本确认;Consumer 可启用自动提交或手动提交位移,避免消息丢失或重复。
  5. 【回答框架 5】消费位置由 Consumer 维护的 Offset 决定,消息在 Kafka 中的保留时长或大小由 Broker 的保留策略控制,与 Consumer 是否消费无关。
  6. 【关键点 1】Producer 负责消息的分区选择、批量发送与可靠性确认;Consumer 通过消费者组实现分区订阅与负载均衡。
  7. 【关键点 2】消息流程包括序列化、分区、发送、Broker 持久化、拉取消费、位移提交。
  8. 【关键点 3】acks=all 结合副本同步可避免生产者侧消息丢失;位移提交决定消费语义。
  9. 【关键点 4】Realance 在组内成员增减时触发,可能导致短暂消费暂停。