项目03:Advanced Producer
演示 Kafka 生产者的高级配置和性能优化。
功能
- 幂等性配置(Producer.Idempotent)
- 批量发送优化(Flush.Bytes/Messages/Frequency)
- Snappy 压缩
- 并发发送(10个 goroutine)
- 吞吐量统计
环境准备
bash
# 启动 Kafka
docker-compose up -d
# 创建主题(3个分区)
docker exec -it <kafka-container> kafka-topics.sh \
--create --topic advanced-topic --partitions 3 --replication-factor 1 \
--bootstrap-server localhost:9092运行
bash
# 启动消费者
go run consumer/main.go
# 另开终端启动生产者(发送10000条消息)
go run producer/main.go关键配置说明
可靠性
RequiredAcks: WaitForAll- 等待所有 ISR 确认Retry.Max: 5- 失败重试 5 次Idempotent: true- 开启幂等性,避免重复
性能
Flush.Bytes: 1MB- 批次达到 1MB 才发送Flush.Messages: 1000- 或累积 1000 条消息Flush.Frequency: 100ms- 或最长等待 100msCompression: Snappy- Snappy 压缩算法
代码结构
03-advanced-producer/
├── docker-compose.yml
├── producer/
│ └── main.go # 高并发批量生产者
├── consumer/
│ └── main.go # 消费者组(自动提交)
└── go.mod