Skip to content

可靠性保证 ​

消息可靠性 ​

Producer 配置 ​

go
config := sarama.NewConfig()

// 等待所有副本确认
config.Producer.RequiredAcks = sarama.WaitForAll

// 重试次数
config.Producer.Retry.Max = 5

// 幂等性
config.Producer.Idempotent = true

Consumer 配置 ​

go
config := sarama.NewConfig()

// 从最早开始消费
config.Consumer.Offsets.Initial = sarama.OffsetOldest

// 手动提交offset
config.Consumer.Offsets.AutoCommit.Enable = false

Exactly 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)

参考:https://kafka.apache.org/documentation/