Kafka配置说明Broker Configs
Property Default Description
broker.id 每个broker都可以⽤⼀个唯⼀的⾮负整数id进⾏标识;这个id可以作为broker的“名字”,并且它的存在使得broker⽆须混淆consumers就可以迁移到不同的host/port上。你可以选择任意你喜欢的数字作为id,只要id是唯⼀的即可。
log.dirs/tmp/kafka-logs kafka存放数据的路径。这个路径并不是唯⼀的,可以是多个,路径之间只需要使⽤逗号分隔即可;每当创建新partition时,都会选择在包含最少partitions的路径下进⾏。
port6667rver接受客户端连接的端⼝
ZooKeeper 允许你增加⼀个“chroot”路径,将集群中所有kafka数据存放在特定的路径下。当多个Kafka集群或者其他应⽤使⽤相同ZooKeeper集群时,可以使⽤这个⽅式设置数据存放路径。这种⽅式的实现可以通过这样设置连接字符串格式,如下所⽰:
hostname1:port1,hostname2:
port2,hostname3:port3/chroot/path
这样设置就将所有kafka集群数据存放
在/chroot/path路径下。注意,在你启动broker之前,你必须创建这个路径,并且consumers必须使⽤相同的连接格式。
message.max.bytes1000000rver可以接收的消息最⼤尺⼨。重要的
是,consumer和producer有关这个属性的设置必须同步,否则producer发布的消息对consumer来说太⼤。驾驶证和行驶证的区别
numwork.threads3rver⽤来处理⽹络请求的⽹络线程数⽬;⼀般你不需要更改这个属性。
num.io.threads8rver⽤来处理请求的I/O线程的数⽬;这个线程数⽬⾄少要等于硬盘的个数。
background.threads4⽤于后台处理的线程数⽬,例如⽂件删除;你不需要更改这个属性。
quests500在⽹络线程停⽌读取新请求之前,可以排队等待I/O线程处理的最⼤请求个
数。
host.name null broker的hostname;如果hostname已经设置的话,broker将只会绑定到这个地址上;如果没有设置,它将绑定到所有接⼝,并发布⼀份到ZK
设置,它将绑定到所有接⼝,并发布⼀份到ZK
advertid.host.name null 如果设置,则就作为broker 的hostname发往producer、consumers以及其他brokers
advertid.port null 此端⼝将给与producers、consumers、以及其他brokers,它会在建⽴连接时⽤到;它仅在实际端⼝和rver需要绑定的端⼝不⼀样时才需要设置。
饮牛歌socket.nd.buffer.bytes100 * 1024SO_SNDBUFF 缓存⼤⼩,rver进⾏socket 连接所⽤
num.partitions1如果创建topic时没有给出划分partitions个数,这个数字将是topic下partitions数⽬的默认数值。
查看
查看
log.cleanup.policy delete
喜唰唰ion.minutes和ion.hours7 days 每个⽇志⽂件删除之前保存的时间。默认数据保存时间对所有topic都⼀样。
这个属性设置可以在topic基本设置时进⾏覆盖。查看
注意,这项设置可以由每个topic设置时进⾏覆盖。
查看
检查⽇志分段⽂件的间隔时间,以确定是否⽂件
属性是否到达删除要求。
able fal 当这个属性设置为fal时,⼀旦⽇志的保存时间或者⼤⼩达到上限时,就会被删除;如果设置为true,则当保存属性达到上限时,就会进⾏。
log.cleaner.threads1进⾏⽇志压缩的线程数
log.cleaner.io.max.d None 进⾏log compaction时,log cleaner可以拥有的最⼤I/O数⽬。这项设置限制了cleaner,以避免⼲扰活动的请求服务。
联欢会主持词log cleaner清除过程中针对⽇志进⾏索引化以及
log.cleaner.io.buffer.size500*1024*1024精简化所⽤到的缓存⼤⼩。最好设置⼤点,以提
供充⾜的内存。
log.cleaner.io.buffer.load.factor512*1024进⾏log cleaning时所需要的I/O chunk尺⼨。你不需要更改这项设置。
log.cleaner.io.buffer.load.factor0.9log cleaning中所使⽤的hash表的负载因⼦;你不需要更改这个选项。
log.cleaner.backoff.ms15000进⾏⽇志是否清理检查的时间间隔
log.cleaner.min.cleanable.ratio0.5这项配置控制log compactor试图清理⽇志的频率(假定是打开的)。默认避免清理压缩超过50%的⽇志。这个⽐率绑定了备份⽇志所消耗的最⼤空间(50%的⽇志备份时压缩率为50%)。更⾼的⽐率则意味着浪费消耗更少,也就可以更有效的清理更多的空间。这项设置在每个topic设置中可以覆盖。
查看。
log.ion.ms1day 保存时间;保存压缩⽇志的最长时间;也是客户端消费消息的最长时间,荣ion.minutes 的区别在于⼀个控制未压缩数据,⼀个控制压缩后的数据;会被topic创建时的指定时间覆盖。
log.index.size.max.bytes10*1024*1024每个log gment的最⼤尺⼨。注意,如果log尺⼨达到这个数值,即使尺⼨没有超过
log.index.interval.bytes4096当执⾏⼀次fetch后,需要⼀定的空间扫描最近的offt,设置的越⼤越好,⼀般使⽤默认值就可以
log.ssages Long.MaxValue log⽂件“sync”到磁盘之前累积的消息条数。因为磁盘IO操作是⼀个慢操作,但⼜是⼀个“数据可靠性”的必要⼿段,所以检查是否需要固化到硬盘的时间间隔。需要在“数据可靠性”与“性能”之间做必要的权衡,如果此值过⼤,将会导致每次“发sync”的时间过长(IO阻塞),如果此值过⼩,将会导致“fsync”的时间较长(IO阻塞),如果此值过⼩,将会导致”发sync“的次数较多,这也就意味着整体的client请求有⼀定的延迟,物理rver 故障,将会导致没有fsync的消息丢失。
log.flush.scheduler.interval.ms Long.MaxValue检查是否需要fsync的时间间隔
log.flush.interval.ms Long.MaxValue 仅仅通过interval来控制消息的磁盘写⼊时机,是不⾜的,这个数⽤来控制”fsync“的时间间隔,如
果消息量始终没有达到固化到磁盘的消息数,但是离上次磁盘同步的时间间隔达到阈值,也将触发磁盘同步。
log.delete.delay.ms60000⽂件在索引中清除后的保留时间,⼀般不需要修改
controller.socket.timeout.ms30000partition管理控制器进⾏备份时,socket的超时时间。
replica.lag.time.max.ms10000如果⼀个follower在这个时间内没有发送fetch请求,leader将从ISR重移除这个follower,并认为
这个follower已经挂了
replica.ssages4000如果⼀个replica没有备份的条数超过这个数值,则leader将移除这个follower,并认为这个follower 已经挂了
replica.socket.timeout.ms30*1000leader 备份数据时的socket⽹络请求的超时时间
ive.buffer.bytes64*1024备份时向leader发送⽹络请求时的socket receive buffer
replica.fetch.max.bytes1024*1024备份时每次fetch的最⼤值
replica.fetch.min.bytes500leader发出备份请求时,数据到达leader的最长等待时间
矢口否认replica.fetch.min.bytes1备份时每次fetch之后回应的最⼩尺⼨
replica.high.watermark.checkpoint.interval.ms5000每个replica检查是否将最⾼⽔位进⾏固化的频率fetch.purgatory.quests1000fetch 请求清除时的清除间隔
producer.purgatory.quests1000producer请求清除时的清除间隔zookeeper.ssion.ti
meout.ms6000zookeeper会话超时时间。
able true 是否能够控制broker的关闭。如果能够,broker将可以移动所有leaders到其他的broker上,在关闭之前。这减少了不可⽤性在关机过程中。
controlled.ies3在执⾏不彻底的关机之前,可以成功执⾏关机的命令数。
backoff.ms5000在关机之间的backoff时间华为云空间怎么用
able true 如果这是true,控制者将会⾃动平衡brokers对于partitions的leadership
leader.imbalance.per.broker.percentage10每个broker所允许的leader最⼤不平衡⽐率leader.imbalance.ds300检查leader不平衡的频率
connections.max.idle.ms600000空连接的超时限制
unclean.able true 指明了是否能够使不在ISR中replicas设置⽤来作为leader
连公子
offts.load.buffer.size5242880这项设置与批量尺⼨相关,当从offts gment 中读取时使⽤。
中读取时使⽤。
Property Default Server Default Property Description
cleanup.policy delete log.cleanup.policy 要么是”delete“要么
是”compact“;这个字符串指明了针对旧⽇志部分的利⽤⽅式;默认⽅式("delete")将会丢弃旧的部分当他们的回收时间或者尺⼨限制到达时。
”compact“将会进⾏⽇志压缩糖醋鲫鱼的做法
⾏⼀次fsync。⼀般来说,建议你不要设置这个值。此参数的设置,需要在"数据可靠性"与"性能"之间做必要的权衡.如果此值过⼤,将会导致每次"fsync"的时间较长(IO阻塞),如果此值过⼩,将会导致"fsync"的次数较多,这也意味着整体的client请求有⼀定的延迟.物理rver故障,将会导致没有fsync的消息丢失.
flush.ms None log.flush.interval.ms 此项配置⽤来置顶强制进⾏fsync⽇志到磁盘的时间间隔;例如,如果设置为1000,那么每1000ms就需要进⾏⼀次fsync。⼀般不建议使⽤这个选项
index.interval.bytes4096log.index.interval.bytes 默认设置保证了我们每4096个字节就对消息添加⼀个索引,更多的索引使得阅读的消息更加靠近,但是索引规模却会由此增⼤;⼀般不需要改变这个选项
kafka追加消息的最⼤尺⼨。注