记一次Kafka消费者拉取数据不均匀问题

来源:互联网 发布:淘宝按销量排名规则 编辑:程序博客网 时间:2024/05/03 12:40

记一次Kafka消费者拉取多个节点的数据,其中有1-2个节点出现拉取流量比较大问题,其原因是

我把consumer拉取的数据的自动提交配置设置成了false,而并没调用commit(offset)提交接口,推送导致是其原因由于没确认又重复的拉取数据了,

之后修改成自动确认的问题解决了。

配置如下,

enable.auto.commit:默认值为 true。auto.commit.interval.ms: 默认值为1000,也即 1s。

这两个参数组合的结果就是,每次poll时,再拉取数据前会预先做下面这件事:

检查上次提交位点的时间,如果距离当前时间已经超过 auto.commit.interval.ms,则启动位点提交动作。

因此,如果 enable.auto.commit 设置为 true,需要在每次poll时,确保前一次poll出来的数据已经消费完毕,否则可能导致位点跳跃。

如果想自己控制位点提交,则把 enable.auto.commit 设为 false,并调用commit(offsets)函数自行控制位点提交。




原创粉丝点击