可靠性保证
消息可靠性
Producer 配置
go
config := sarama.NewConfig()
// 等待所有副本确认
config.Producer.RequiredAcks = sarama.WaitForAll
// 重试次数
config.Producer.Retry.Max = 5
// 幂等性
config.Producer.Idempotent = trueConsumer 配置
go
config := sarama.NewConfig()
// 从最早开始消费
config.Consumer.Offsets.Initial = sarama.OffsetOldest
// 手动提交offset
config.Consumer.Offsets.AutoCommit.Enable = falseExactly Once
go
// 生产者幂等性
config.Producer.Idempotent = true
// 事务
config.Producer.Transaction.ID = "my-transaction"高可用配置
- 多副本(replication-factor ≥ 3)
- ISR 最小副本数(min.insync.replicas = 2)
- 避免不完全选举(unclean.leader.election.enable = false)