【Kafka】Broker之Server.properties的重要参数说明

名称 描述 类型 默认值 有效值区间 重要程度
zookeeper.connect zk地址 string
advertised.host.name 过时的:只有当advertised.listeners或listeners没有配置的时候才会生效。使用advertised.listeners代替。发布在zk上的hostname,供客户端使用。在IaaS环境下,该值需要与broker绑定的接口不一样。如果该值没有配置,会使用配置的host.name。否则会使用java.net.InetAddress.getCanonicalHostName()返回的数据。 string null
advertised.listeners 发布在zk上的监听器,供客户端使用,如果与其他的监听器不一样的话。在Iaas环境下,该值需要与broker绑定的接口不一致。如果没有配置,会使用listener的值。 string null
advertised.port 过时的:只有当advertised.listeners或listeners没有配置时会生效。可以使用advertised.listeners代替。发布在zk上的端口,供客户端使用。在Iaas环境下,需要与broker绑定的接口不一样。如果未配置,会发布与broker绑定的一样的接口。 int null
auto.create.topics.enable 允许在服务器上自动创建主题(topic) boolean true
auto.leader.rebalance.enable 允许自动主平衡。后台线程定时校验和触发主平衡。 boolean true
background.threads 后台处理任务的线程数 int 10 [1...]
broker.id 服务器的broker编号。如果不配置,会自动生成唯一的id。为了避免zk生成的broker编码和用户配置编码的冲突,生成的broker编码从reserved.broker.max.id + 1开始。 int -1
compression.type 指定一个主题最后的压缩类型。这个配置项接收标准的压缩编码(gzip,snappy,lz4)。还可以配置为uncompressed,表示不压缩。也可以配置为producer,表示与生产者配置的压缩类型一致。 string producer
delete.topic.enable 可以删除主题。如果设置为关闭,那么通过管理工具删除主题是无效的。 boolean false
host.name 过时的:只有当listeners没有配置时才会生效。使用listeners来代替。broker的主机名称。如果配置该项,broker只会绑定到这个地址,如果不配置,会绑定所有接口。 string ""
leader.imbalance.check.interval.seconds 控制器触发分区调整校验的频率。 long 300
leader.imbalance.per.broker.percentage 每个broker允许的不平衡的leader的比率。如果每个broker超过了这个值,控制器会触发leader的平衡。这个值表示百分比。 int 10
listeners 监听器列表-逗号隔开,包含协议和链接。如果想绑定到所有的接口,需要把主机名设置为0.0.0.0。如果要绑定到特定的接口,主机名为空。示例:PLAINTEXT://myhost:9092,TRACE://:9091或者PLAINTEXT://0.0.0.0:9092, TRACE://localhost:9093 string null
log.dir 日志数据存储的目录(log.dirs属性的补充) string /tmp/kafka-logs
log.dirs 日志文件存储的目录,如果不配置,则使用log.dir。 string null
log.flush.interval.messages 在消息刷到磁盘之前,日志分区收集的消息数量 long 9223372036854775807
log.flush.interval.ms 主题中消息在刷到磁盘之前,保存在内存中的最长时间,单位是ms,如果不配置,使用log.flush.scheduler.interval.ms的配置 long null
log.flush.offset.checkpoint.interval.ms 更新上次刷磁盘的记录的频率,可以作为日志恢复点 int 60000 [0...]
log.flush.scheduler.interval.ms 单位为毫秒,日志刷新器检查日志是否需要刷到磁盘的频率 long 9223372036854775807
log.retention.bytes 日志被删除前最大量 long -1
log.retention.hours 日志保留的最大小时数,log.retention.ms的第三位 int 168
log.retention.minutes 日志文件保留的分钟数,log.retention.ms的第二位,如果不配,使用log.retention.hours int null
log.retention.ms 日志文件保留的毫秒数,如果不配,使用log.retention.minutes long null
log.roll.hours 即使文件没有到达log.segment.bytes,只要文件创建时间到达此属性,就会创建新文件。 int 168 [1...]
log.roll.jitter.hours 指定日志切分段的小时数,避免日志切分时造成惊群 int 0 [0...]
log.roll.jitter.ms 指定日志切分段的毫秒数,如果不设置,默认使用log.roll.jitter.hours long null
log.roll.ms 数据文件切分的时间间隔,与大小限制同时起作用的 long null
log.segment.bytes 数据文件大小 int 1073741824 [14...]
log.segment.delete.delay.ms 保存已删除日志的时间 long 60000 [0...]
message.max.bytes 表示log中能够容纳消息的最大字节数 int 1000012 [0,...]
min.insync.replicas 该属性规定了最小的ISR数 int 1 [1,...]
num.io.threads 执行磁盘IO的线程数 int 8 [1,...]
num.network.threads 处理网络请求的线程数 int 3 [1,...]
num.recovery.threads.per.data.dir 启停时做日志恢复每个目录所需的线程数,采用RAID的时候可以增大该值 int 1 [1,...]
num.replica.fetchers 从leader备份数据的线程数。该值越大,从broker的IO同步能力越强。 int 1
offset.metadata.max.bytes 客户端保留offset信息的最大空间大小 int 4096
offsets.commit.required.acks 在offset commit可以接受之前,需要设置确认的数目,一般不需要更改 short -1
offsets.commit.timeout.ms 只有所有replicas收到提交或者达到这个超时值,否则偏移量提交延迟。 int 5000 [1,...]
offsets.load.buffer.size 将偏移量加载到缓存中时,从偏移量区读取的大小限制。 int 5242880 [1,...]
offsets.retention.check.interval.ms 检查旧的偏移量的频率,单位是毫秒 long 600000 [1,...]
offsets.retention.minutes 偏移量主题的日志保留窗口,单位是分钟 int 1440 [1,...]
offsets.topic.compression.codec 偏移量主题的压缩编码,压缩可以用于原子提交 int 0
offsets.topic.num.partitions 偏移量提交主题的分区数量(部署后不应该修改) int 50 [1,...]
offsets.topic.replication.factor 偏移量主题的复制因子(尽量设置高点,保证可用性)。为了确保偏移量主题的有效复制因子是配置的值,活跃kafka集群的数量至少是第一次请求偏移量时的复制因子。如果不是,要么创建偏移量主题会失败,要么会获得一个最小量(活跃集群,配置的复制因子) short 3 [1,...]
offsets.topic.segment.bytes 偏移量主题的分区大小应该设置相对小,为了保证更快的日志压缩和缓存加载 int 104857600 [1,...]
port 过时的:只有当listener没有配置时才会生效,是指监听和获取连接的端口。 int 9092
queued.max.requests 加入队列的最大请求数(超过该值,network thread阻塞) int 500 [1,...]
quota.consumer.default 如果不同的消费者的每秒消费速度超过了这个值,就会被控制速度。 long 9223372036854775807 [1,...]
quota.producer.default 如果任何生产者的生产速度超过了这个值,就会被控制速率。 long 9223372036854775807 [1,...]
replica.fetch.max.bytes 一次性获取的消息数量的最大限制 int 1048576
replica.fetch.min.bytes 一次性获取的消息数量的最小值,如果达不到这个值,需要等待最多replicaMaxWaitTimeMs int 1
replica.fetch.wait.max.ms 每个消费请求的最大等待时间,这个值应该总是小于replica.lag.time.max.ms,以防止因为低吞吐量的主题,导致的频繁减少ISR的数量 int 500
replica.high.watermark.checkpoint.interval.ms 每个replica检查是否将最高水位进行固化的频率 long 5000
replica.lag.time.max.ms 如果一个follower在这个时间内没有发送fetch请求,leader将从ISR重移除这个follower,并认为这个follower已经挂了 long 10000
replica.socket.receive.buffer.bytes 备份时向leader发送网络请求时的socket receive buffer int 65536
replica.socket.timeout.ms 网络连接超时。这个值应该至少为replica.fetch.wait.max.ms int 30000
request.timeout.ms 这个配置控制客户端等待响应的最大时间。如果在规定时间内没有响应,客户端会根据需要重新发起请求。如果超过了重试次数,客户端会将这次请求置为失败。 int 30000
socket.receive.buffer.bytes socket用于接收网络请求的缓存大小 int 102400
socket.request.max.bytes server允许的最大请求尺寸; 这将避免server溢出,它应该小于Java heap size int 104857600 [1,...]
socket.send.buffer.bytes SO_SNDBUFF 缓存大小,server进行socket 连接所用 int 102400
unclean.leader.election.enable 指明了是否能够使不在ISR中replicas设置用来作为leader,尽管这么做可能会导致数据丢失 boolean true
zookeeper.connection.timeout.ms 客户端等待连接到zk的最大时间。如果不设置,系统默认使用zookeeper.session.timeout.ms int null
zookeeper.session.timeout.ms zk的session超时时间 int 6000
zookeeper.set.acl 设置客户端使用zk的安全策略ACLs boolean false
broker.id.generation.enable 是否启用集群机器id自动生成?如果启用,会检查配置的reserved.broker.max.id boolean true
posted @ 2017-08-28 10:47  飞轩  阅读(3190)  评论(0编辑  收藏  举报