Kafka消费数据重复解决方案

YupDB内通过kafka传递进来的数据有重复现象(Kafka消费数据重复)
遇到这种问题,基本上是心跳或offset更新不及时导致。
在kafka环境中,有以下几个参数对于数据重复有很好的效果。
auto.commit.interval.ms
consumer向zookeeper提交offset的频率,单位是秒,默认60*1000
此值太大会导致数据重复消费,将其调小可避免重复数据。建议值100(毫秒)
max.poll.interval.ms
数据处理时间
max.poll.records
一次从kafka中poll出来的数据条数
max.poll.records条数据需要在max.poll.interval.ms这个时间内处理完
session.timeout.ms
zookeeper 会话的超时限制。如果consumer在这段时间内没有向zookeeper发送心跳信息,则它会被认为挂掉了,并且reblance将会产生。默认6000
request.timeout.ms
broker尽力实现request.required.acks需求时的等待时间,否则会发送错误到客户端,默认10000
request.timeout.ms值应大于session.timeout.ms的值
fetch.min.bytes
每次fetch请求时,server应该返回的最小字节数。如果没有足够的数据返回,请求会等待,直到足够的数据才会返回。默认1
fetch.wait.max.ms
如果没有足够的数据能够满足fetch.min.bytes,则此项配置是指在应答fetch请求之前,server会阻塞的最大时间。默认100

你可能感兴趣的:(Kafka消费数据重复解决方案)