首页/数据/数据工程与 ETL 速查/Kafka 生产者工作流程
Kafka64 条

Kafka 生产者工作流程

生产者发送一条消息经历:序列化 → 分区器选择分区 → 进入累加器等待成批 → 发送到分区 Leader → 按 acks 等待确认,失败按重试策略重发。

关键组件序列化器、分区器、记录累加器(缓冲批次)、Sender 线程
关键参数bootstrap.servers、key/value serializer、acks、retries、linger.ms
幂等开启后重试不会产生重复(同一生产者会话内)

生产者核心配置

生产者核心配置
bootstrap.servers=kafka1:9092,kafka2:9092
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer
acks=all
enable.idempotence=true
retries=2147483647
生产者只需连接部分 Broker 获取元数据,指定两到三个地址即可,不用列全部节点。

易错点

  • value.serializer 与实际消息类型不匹配会在发送时抛序列化异常,排查要从客户端日志看根因
  • 网络抖动时的无限重试配合过大 delivery.timeout.ms 会让发送线程长时间阻塞

数据来源与参考

  • Apache Kafka 官方文档:Producer Design 与 Producer Configs
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌