开发技术-解决kafka消息重复消费

1.需求:近来有小伙伴反应他负责的那块服务出现了kafka消息重复消费的问题。

2.解决:
    出现重复消费的原因:消费者(consumer)依据偏移量(offset)读取消息, 消费完消息后,会向kafka的节点(broker) 发送一个消息被消费的反馈,也就是提交该消息的偏移量,然后broker更新对应消息的consumer_offset中,接着等待下个消费者依据偏移量读取消息。    
    消费者提交offset的默认时间是5分钟,超过这个时间,若有别的消费者请求消息,就会形成重复消费。
    
    方法1:修改微服务关于消费者参数-每次消费者拉取(poll)消息的条数(默认500)
    spring.kafka.consumer.max-poll-records
    方法2:延长微服务关于消费者参数-提交offset的时间(默认5分钟)
    spring.kafka.properties.max.poll.interval.ms
    方法3:修改业务逻辑,提高消费者消费能力

#默认500
spring.kafka.consumer.max-poll-records=100

#默认300000,单位毫秒
spring.kafka.properties.max.poll.interval.ms=600000
spring:
  kafka:
    consumer:
      max-poll-records: 100
  	properties:
      max:
        poll:
          interval:
            ms: 600000

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值