美文网首页
Broker重要参数

Broker重要参数

作者: SnailFast | 来源:发表于2019-07-19 10:27 被阅读0次

    参考官方文档

    broker.id

            Kafka集群中Broker的唯一标识。

    zookeeper.connect

            Zookeeper连接地址,支持逗号分隔的形式配置多个zk地址,也可以在最后加上zk的路径。如zookeeper.connect=bigdata-1:2181,bigdata-2:2181,bigdata-3:2181/kafka。

    advertised.listeners(默认值为null)

            Kafka客户端使用的地址,不配置的话使用listeners配置的值。当Borker之间使用内网通信,Producer和Consumer使用外网通信时,需要配置advertised.listeners为外网地址。

    listeners(默认值为null)

            Borker之间通信地址,可以逗号分隔的形式配置多个IP和端口,支持PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL等安全协议。如果IP配置为0.0.0.0,则相当于bind了所有网卡。如果IP地址不配置的话,则会使用回环地址。如listeners=PLAINTEXT://bigdata-2:6667。

    auto.create.topics.enable(默认值为true)

            是否允许自动创建Topic,默认值为true,建议线上环境设置为false,严格管理新增的Topic。

    auto.leader.rebalance.enable(默认值为true)

            如果某个Partition的Leader挂掉,该Partition副本所在的Broker会成为这Partition的Leader,这样会造成Leade分布不均衡,Leader多的Broker读写压力都会比较大。如果开启了auto.leader.rebalance.enable,则当原来挂掉的Broker恢复正常以后,可以夺回Leader。

    leader.imbalance.per.broker.percentage (默认值为10)

            所有Broker中leader的不平衡比例,若是超过这个数值,会对分区进行重新的平衡。Broker的分区不平衡比例=非优先副本的leader个数/分区总数。只有当auto.leader.rebalance.enable设置为true时才有效。建议将auto.leader.rebalance.enable设置为false,避免集群自动执行优先副本选举,因为这样不可控。最好是手动使用path-to-json-file的方式小批量执行优先副本选举。

    leader.imbalance.check.interval.seconds(默认值为300)

            检查集群leader是否平衡的时间间隔。

    compression.type(默认值为producer)

            Broker对消息的压缩格式,支持gzip、snappy、 lz4、zstd和uncompressed。也可以配置成producer,表示以Producer端设置的压缩方式为准。

    delete.topic.enable(默认值为true)

            是否支持使用管理工具删除Topic,默认为true,支持删除。

    log.dir(默认值为/tmp/kafka-logs)

            Broker数据的存储目录。

    log.dirs(默认值为null)

            Broker数据的存储目录,支持配置多个目录,一般都会每个磁盘配置一个目录。如果没有配置,则使用log.dir指定的目录作为数据存储目录。如果配置了,则优先级高于log.dir。

    log.flush.interval.messages(默认值为Long.MAX_VALUE)

            设置当一个分区的Log文件积累了多少数据量以后Flush到磁盘。备注:操作系统也会不定期的把缓存中的数据Flush到磁盘。

    log.flush.interval.ms(默认值为null)

            设置一个分区Log文件中的数据在缓冲区的最长时间,超过这个时间则需要FLush到磁盘。如果不设置,则使用参数log.flush.scheduler.interval.ms的值。

    log.flush.scheduler.interval.ms(默认值为Long.MAX_VALUE)

            设置每隔多久检查一次分区Log文件是否需要Flush到磁盘。

    log.flush.offset.checkpoint.interval.ms(默认值为60000)

            设置Flush已经存储到磁盘的数据的offset的频率,在数据恢复的时候使用。比如Flush到磁盘的数据的最大offset为99,则在数据恢复时,需要从其他副本offset为100开始拉去数据。

    log.flush.start.offset.checkpoint.interval.ms

            更新Log起始offset的持久记录的频率。

    log.retention.hours(默认值为168)

            Kafka数据Housekeeping策略,默认为168小时,即7天。

    log.retention.minutes(默认值为null)

             Kafka数据Housekeeping策略,如果不设置,则使用参数log.retention.hours设置的值。

    log.retention.ms(默认值为null)

             Kafka数据Housekeeping策略,如果不设置,则使用参数log.retention.minutes设置的值。如果设置为-1,则表示不做Housekeeping。

    log.segment.delete.delay.ms(默认值为60000)

            日志文件被真正删除前的保留时间。当删除的条件满足以后,日志将被“删除”,但是这里的删除其实只是将该日志进行了“delete”标注,文件只是无法被索引到了而已。但是文件本身,仍然是存在的,只有当过了log.segment.delete.delay.ms 这个时间以后,文件才会被真正的从文件系统中删除。

    log.roll.hours(默认值为168)

            Kafka的数据文件滚动策略,默认为168小时,即7天。

    log.roll.ms(默认值为null)

            Kafka的数据文件滚动策略,如果不设置,则使用参数log.roll.hours设置的值。

    log.segment.bytes(默认值为1073741824)

             Kafka的数据文件滚动策略,默认值为1073741824个字节,即1G。

    message.max.bytes (默认值为1000012)  

            Broker接收Producer单次请求的最大字节数,间接限制了单条消息的大小。该参数值不应该设置得大于Consumer端fetch.message.max.bytes参数的值。

    min.insync.replicas (默认值为1)  

            当Producer端将acks设置为"all"或者"-1"时,min.insync.replicas指定必须确认成功写入的最小副本数。如果达不到min.insync.replicas指定的数量,则Producer端会抛NotEnoughReplicas 或NotEnoughReplicas。

    num.io.threads(默认值为8)  

            Broker端处理数据请求和响应的线程数,包括处理磁盘IO的线程。

    num.network.threads(默认值为3)  

            Broker端处理网络连接的线程数。

    num.replica.fetchers(默认值为1)

            当需要从其他Broker拉取数据时,该参数限制了用于拉取数据的线程数。增加该参数的值,可以提高IO的并行度。

    queued.max.requests(默认值为500)  

            Broker端请求队列大小。

    replica.fetch.min.bytes(默认值为1)

            限制每个Fetch Response的最小字节数,如果达不到该参数设置的值,则需要等待参数replica.fetch.wait.max.ms指定的毫秒数。

    replica.fetch.wait.max.ms(默认值为500)

            限制Fetch Response的字节数达不到replica.fetch.min.bytes指定的值时,Fetch Request需要等待的时间。

    replica.lag.time.max.ms(默认值为10000)  

            该参数设置了Leader将Replica移出ISR的条件。当Replica在该参数指定的时间没有从Leader拉取数据,也没有追上Leader的LEO,则Leader会该Replica移出ISR。

    request.timeout.ms(默认值为30000)   

            该参数限制了客户端等待响应的最长时间,超过了这个时间,则客户端会重新发送请求。

    unclean.leader.election.enable(默认值为false)

            是否允许非ISR的Replica参与竞选Leader。

    zookeeper.connection.timeout.ms(默认值为null)

            等待与Zookeeper建立连接的最长时间。如果没有设置该参数,则使用zookeeper.session.timeout.ms参数指定的参数值。

    zookeeper.session.timeout.ms(默认值为6000)  

            与Zookeeper建立连接的超时时间。

    default.replication.factor(默认值为1)

            创建Topic时,默认的Replica数量。

    num.partitions(默认值为1)

             创建Topic时,默认的分区数量。

    相关文章

      网友评论

          本文标题:Broker重要参数

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