目录
- 问题
- 排查原因
-
- 生产者原因
- 消费者可能原因
-
- 1. 重复消息被分到同一消费者的同一批次处理
- 2. 重复消息被分到同一消费者的不同批次处理
- 3. 重复消息被几乎同时分到不同消费者处理
- 解决方案
-
- 1.对批量消息进行去重
- 2. 对分配到不同消费者的消息进行redis去重
- 3. 生产者在发送消息前先进行路由分区
- 消费超时发送重平衡导致重复消费
-
- kafka消费原理简介
-
- enable.auto.commit
- auto.commit.interval.ms
- session.timeout.ms
- max.poll.interval.ms
- max.poll.records
- 重复消费原因
- 解决办法
- 其他
-
- poll(5000)中5000的含义
- 如果poll处理时发生异常怎么办?
问题
线上ELK日志发现kafka消费者消费到重复消息
排查原因
生产者原因
由于生产方本身就发送了重复的消息,导致消费到重复消息
消费者可能原因
消费方采用的是循环poll的模式,具体是在多线程分租户去批量处理的消息
while(true) { ConsumerRecords consumerRecords; do { consumerRecords = this.consumer.poll(60000L); } while(consumerRecords == null); if (!consumerRecords.isEmpty()) { long beginTime = System.currentTimeMillis(); MaprecordMap = this.consumerHandler.slice(consumerRecords); List
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章