kafka mq重复消费问题
kafka mq重复消费问题
1. 实现逻辑:offset --消息顺序的序号,消费完,消费端会提交回去
2. 消息重发场景:
消费者不是说消费完一条数据就立马提交offset,二十定时定期提交一次offset
问题:准备提交但未提交时,消费者进程被重启,
会出现已消费未提交的offset丢失
kafka会把这段offset重新发送
--> 消息重发
消费者重新消费数据,导致出现问题
3. 幂等处理
思想:
1. 一条数据重复出现两次,消费者自己确保数据不重复使用
2. 消费者拿到消息后,在内存集合中做下已使用校验
3. 基于数据库的唯一键保证数据不重复插入