kafka丢数据了?-----通过优化broker 生产者 消费者提高集群可用性

本文探讨了Kafka在broker、生产者和消费者层面的可用性问题,包括不完全的首领选举可能导致的数据丢失,以及如何通过配置避免。还讨论了生产者重试机制、保证消息顺序的策略,并列举了消费者的可靠性配置选项。
摘要由CSDN通过智能技术生成

本文将围绕kafka的可用性展开,包含broker数据同步、顺序保证,以及生产者消费者为了保证数据同步可采用的高可用配置。是自己的一些心得。

文章关键词:

  • 不完全的首领选举
  • 丢数据的可能原因
  • 发送消息中,kafka可重试错误和不可重试错误
  • 保证顺序
  • producer consumer的可靠性配置

不完全的首领选举

场景:首领挂了,但是follower没有同步

针对该场景可以采取两种方式:

  1. 等首领好(可用性差,保证不丢数据)
  2. 不等首领,选择未同步副本做首领(可用性高,但是丢了与老首领未同步完的中间数据)

可以通过unclean.leader.election.enable设置,为true对应方式二,false对应方式一

附:unclean可能会引发的问题:consumer “Fetch offset xxxx is out of range, resetting offset”

丢数据的可能原因

上面提到了unclean.leader.election.enable=true会导致数据丢失,下面两种情况也会导致数据丢失:

  1. producer生产者角色acks参数影响,可能会导致问题,场景:acks=1,发送给leader成功时,没有同步给replicas时leader挂了。在producer层面则丢失了这条消息
  2. acks=all时,发送时返回了“首领不可用”,但是producer客户端没有重试机制,或者好的处理方式ÿ
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值