kafka的参数有很多,下面我们根据kafka消息投递到消费的顺序来看下有哪些参数可调,每个参数具体是什么意思?
网络传输相关参数
socket.receive.buffer.bytes: 102400(默认值),socket接受缓冲区的大小,提高这个值可以提高消息的发送速度。这个是kafka给我们设置的值,如果想要用操作系统层面的值,可以设置成-1;如果网络的往返延迟RTT是100ms,并要求网络的传输速度要10m/s,那么这个值的计算公式就是->socket.receive.buffer.bytes * 1s / 100ms > 10m 故socket.receive.buffer.bytes == 1m
num.network.threads:3(默认值),网路服务器用于接收和发送请求的线程数,理论上增大这个值可以提升接受和发送效率。
socket.request.max.bytes:104857600(默认值),socket发送消息的最大值,这个值默认已经很大了,基本上不需要修改。如果提高了socket.receive.buffer.bytes的值,可以根据情况调整这个参数。
请求队列相关参数
queued.max.request:500(默认值),队列中默认有500个请求。默认使用这个参数,具体要设置多少呢?一般设置成活跃的客户端数据量,就是有多少活跃的生产者的数量。
queued.max.request.bytes:-1(默认值),队列中所有请求的大小来分。一般不用
IO参数
num.io.threads:8(默认值),服务器中可用的用于处理IO请求的线程数,也包括磁盘IO的线程,如果需要同步的把pagecache写如磁盘中,或者pagecache刷盘的频率很快,需要调高这个参数,但是一般8个也足够用了。
Pagecache参数
log.flush.interval.ms:null(默认值),间隔多少时间把pagecache的数据flush到硬盘上
log.flush.interval.message:Long.Max_Value(默认值),有多少条数据在pagecache时要flush到硬盘上。如果要同步刷,那么可以把这个值改成1,同时要修改num.io.threads的值。
实际上pagecache flush到硬盘的功能主要用linux内核来完成,尽量不需要动
副本参数
num.replica.fetchers:1(默认值),正常会有三个副本,一个leader副本,两个follower副本,副本主要是作为备份。这个参数表示从leader副本复制到follower副本的线程数。如果一个broker节点上有多个topic,每个topic又有多个patition,每个partition又有多个副本,这个同步的时间会比较长,此时可以提高这个参数。
num.replica.min.bytes:1(默认值),每次抓取的字节数,可以提成到1000,提高每次传输的大小;
replica.fetch.wait.max.ms:500(默认值),最大等待多久要拉取一次
响应给生产者参数文章来源:https://www.toymoban.com/news/detail-511259.html
socket.send.buffer.bytes:102400(默认值),消息投递成功后返回给生产者的socket的请求buffer大小文章来源地址https://www.toymoban.com/news/detail-511259.html
到了这里,关于Kafka主要可调参数简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!