美文网首页
深入理解Kafka(十) 延迟时间相关参数

深入理解Kafka(十) 延迟时间相关参数

作者: skyguard | 来源:发表于2021-06-20 10:18 被阅读0次

下面我们来介绍下Kafka怎么调优延迟时间相关的参数。对于kafka的不同组件,延迟时间的意义是不同的。对于producer来说,延迟时间主要是发送消息的延时,也就是producer发送请求到broker端返回response的时间间隔,对于consumer来说,延迟时间就是consumer发送拉取数据请求到broker端返回response的时间间隔。大量的分区数会降低延时,分区数越多,broker就需要越多的时间才能实现leader与follower的同步。所以要调优延时,我们必须调整一个broker上的分区数,有以下3种方法:
1.不要创建有很多分区数的topic
2.适当的增加集群中broker的数量,来分散分数的数量
3.提高num.replica.fetchers的参数,提高broker端的并行度
不同与调优tps参数,调优延时要求producer端尽量不要缓存消息,尽快地将消息发送出去。因此最好将linger.ms参数设置成0,同时producer端的ack参数也是一个重要的参数。leader越快地发送response,producer端就能越快地发送下一批消息。该参数的默认值为1,如果用户对延时有比较高的要求,但却能容忍一定程度消息的丢失,则可以考虑将acks设置成0,在这种情况下,producer不会管broker端的response,而是一直发送消息,从而达到最低的延时。
在consumer端,用户需要调整leader返回的最小数据量来影响consumer的延时,也就是fetch.min.bytes的参数值。对于延时来说,默认值1已经是一个很不错的选择,这样能够使brokder尽快地返回数据,而不是积累一段时间再进行消费数据。
下面来总结一下调优延时的参数
broker端
1.适当增加num.replica.fetchers
2.尽量不要创建过多的topic分区
producer端
1.设置linger.ms=0
2.设置acks=1
consumer端
设置fetch.min.bytes=1
到这里,我们就介绍了kafka延迟时间相关的参数,kafka延迟时间相关的参数就介绍到这里了。

相关文章

网友评论

      本文标题:深入理解Kafka(十) 延迟时间相关参数

      本文链接:https://www.haomeiwen.com/subject/ecijyltx.html