kafka--基础知识点--19--消息重复

1 生产者

acks = 1 或 -1,当消息已经写入leader或ISR中的folloer后,brocker给生产者发送确认响应后发送网络抖动或leader崩溃又崩溃重启,生产者发现没有确认响应再次发送,导致消息brocker中出现了两条重复的消息,重复发送导致。

解决: 精确一次发送方案 = (acks=-1) + 事务 + 重试

2 消费者

消费者设为手动提交时,当消费者消费完消息又因为其它异常情况进程中断导致没有提交偏移量,又重启消费者,再次拉取同一条消息进行消费,导致brocker中同一条消息被消费两次,重复消费导致。

解决:

  • 消费者自身要做好分情况异常处理;
  • 需要有幂等处理逻辑,可以用id号等。
相关推荐
叶总没有会10 小时前
RabbitMQ高级
分布式·rabbitmq
ABB自动化13 小时前
ABB 500CIM06 (1MRB150077R0111) | REB500 通信接口
大数据·分布式·系统架构·系统安全·模块测试·plc 控制器
ZENERGY-众壹13 小时前
告别本地工控机:分布式光伏 SCADA 架构如何实现云边协同
分布式·架构·光伏运维·能源数字化·电站监控
code_slave(码畜)13 小时前
微服务架构落地:读写分离架构 —— 主从延迟引发的“刚开单查不到”灾难与破局
spring boot·分布式·spring cloud·微服务·云原生·架构·读写分离
JAVA_AI人工智能项目实战15 小时前
分布式大模型训练_学习笔记
人工智能·分布式·语言模型·自然语言处理
starzy199015 小时前
KafkaProducer 源码深度剖析:RecordAccumulator 封装消息流程
大数据·kafka
星夜孤帆15 小时前
Redis缓存击穿与分布式锁实战:专栏目录、源码与实验说明
redis·分布式·缓存
yyk3332417 小时前
Spark介绍
大数据·分布式·spark
成为你的宁宁17 小时前
【基于 SSH 与 JNLP 协议的 Jenkins 分布式构建方案】
分布式·jenkins