赞
踩
一。生产者阶段重复
原因:生产发送的消息没有收到正确的broke响应,导致生产者重试。
过程:
解决方案:
1.启动kafka的幂等性,设置: enable.idempotence=true ,以及 ack=all 以及 retries > 1 。
2.ack=0,不重试,适用高吞吐量忽略消息准确性。
二。生产者和broker阶段消息丢失
原因:
1.ack设置为1或者设置为0,为0时不确认broke是否听到,为1时只是leader副本同步
2. unclean.leader.election.enable 配置true,允许选举ISR以外的副本作为leader,会导致数据丢失,默认为false。
解决方案
1.ack设置为ALL, 配置:min.insync.replicas > 1
2.unclean.leader.election.enable 配置false
3.失败的offset单独记录
三。消费者数据重复
原因:数据消费完没有及时提交offset到broker。
解决方案:
1.取消自动提交offset,适用手动提交offset
2.下游做幂等,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。