Kafka主要可调参数简介

        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(默认值),最大等待多久要拉取一次

响应给生产者参数

        socket.send.buffer.bytes:102400(默认值),消息投递成功后返回给生产者的socket的请求buffer大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值