kafka重复消费问题

132 阅读1分钟

broker存储的消息都有一个offset标记,kafka的消费者是根据消息的offset值去判断消息是否已被消费,消费者每消费一批数据就会去更新offset值避免重复消费,在消息被消费时候应用程序挂掉了就会导致offset没有提交从而产生重复消费的问题

解决办法:可以通过提高消费端处理性能,采用异步方式处理消息,缩短单个消息消费时长,延迟消息处理的超时时间;减少一次性从broker上拉取数据的条数,还可以通过幂等性思想实现,针对消息生成md5值保存redis或mysql,处理消息之前先去判断是否消费过