Broker重要参数

参考官方文档

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重要参数)