文章目录
- Kafka 消息 0 丢失的最佳实践
- 生产者端的最佳实践
- 使用带有回调的 producer.send(msg, callback) 方法
- 设置 acks = all
- 设置 retries 为一个较大的值
- 启用幂等性与事务(Kafka 0.11+)
- 正确关闭生产者与 flush() 方法
- Broker 端的最佳实践
- 设置 unclean.leader.election.enable = false
- 设置 replication.factor >= 3
- 设置 min.insync.replicas > 1
- 确保 replication.factor > min.insync.replicas
- 优化 Broker 存储与磁盘配置
- 消费者端的最佳实践
- 确保消息消费完成再提交
- 处理 Rebalance 事件
- 异常重试与死信队列(DLQ)
- 业务维度的 0 丢失架构
- 本地消息表 + 定时扫描
- 监控与告警
- 结论