下面我们来介绍下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(十) 延迟时间相关参数
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 下面我们来介绍下Kafka怎么调优吞吐量相关的参数,首先我们需要确定当我们想要调优kafka的时候,我们需要从哪些...