kafka 1.0 中文文档(四)--主题级别配置(Topic-Level Configs)

Kafka topic级别的配置参数。首先是可以在配置文件中设置全局性的topic配置参数,其次是可以在创建topic时使用 –confi设置一个或多个自定义的配置。自定义的配置项优先级别会高于全局配置。
这是在创建一个topic时自定义了最大的消息字节数和消息持久化参数:

> bin/kafka-topics.sh –zookeeper localhost:2181 –create –topic my-topic –partitions 1 –replication-factor 1 –config max.message.bytes=64000 –config flush.messages=1

可以在创建topic后继续使用命令修改topic中已经定义了的参数,本示例更新my-topic的最大message大小::

> bin/kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name my-topic –alter –add-config max.message.bytes=128000

要检查在主题上设置的覆盖,您可以执行

> bin/kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name my-topic –describe

或者是删除指定的topic中的某个自定义参数:

> bin/kafka-topics.sh –zookeeper localhost:2181 –alter –topic my-topic –deleteConfig max.message.bytes

或者是删除指定的topic中的某个自定义参数:

> bin/kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name my-topic –alter –delete-config max.message.bytes

以下是主题级配置。 该属性的服务器默认配置在“服务器默认属性”标题下给出。 给定的服务器默认配置值只适用于主题,如果它没有明确的主题配置覆盖。

topic参数 默认值 broker默认参数 描述
cleanup.policy delete log.cleanup.policy 要么是”delete“要么是”compact“; 这个字符串指明了针对旧日志部分的利用方式;默认方式(”delete”)将会丢弃旧的部分当他们的回收时间或者尺寸限制到达时。”compact“将会进行日志压缩
delete.retention.ms 86400000 (24 hours) log.cleaner.delete.retention.ms 对于压缩日志保留的最长时间,也是客户端消费消息的最长时间,通log.retention.minutes的区别在于一个控制未压缩数据,一个控制压缩后的数据。此项配置可以在topic创建时的置顶参数覆盖
file.delete.delay.ms 60000 log.segment.delete.delay.ms 从文件系统中删除文件之前的等待时间
flush.messages None log.flush.interval.messages 此项配置指定时间间隔:强制进行fsync日志。例如,如果这个选项设置为1,那么每条消息之后都需要进行fsync,如果设置为5,则每5条消息就需要进行一次fsync。一般来说,建议你不要设置这个值。此参数的设置,需要在”数据可靠性”与”性能”之间做必要的权衡.如果此值过大,将会导致每次”fsync”的时间较长(IO阻塞),如果此值过小,将会导致”fsync”的次数较多,这也意味着整体的client请求有一定的延迟.物理server故障,将会导致没有fsync的消息丢失.
flush.ms None log.flush.interval.ms 此项配置用来置顶强制进行fsync日志到磁盘的时间间隔;例如,如果设置为1000,那么每1000ms就需要进行一次fsync。一般不建议使用这个选项
follower.replication.
throttled.replicas
“” follower.replication.
throttled.replicas
在follower一侧限制哪一个log副本的列表。该列表应以[PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:…的形式描述一组副本,或者也可以使用通配符“*”来限制该主题的所有副本。
index.interval.bytes 4096 log.index.interval.bytes 默认设置保证了我们每4096个字节就对消息添加一个索引,更多的索引使得阅读的消息更加靠近,但是索引规模却会由此增大;一般不需要改变这个选项
leader.replication.
throttled.replicas
“” leader.replication.
throttled.replicas
应该在leader side限制日志复制的副本列表。 该列表应以[PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:…的形式描述一组副本,或者也可以使用通配符“*”来限制该主题的所有副本。
max.message.bytes 1000000 max.message.bytes kafka追加消息的最大尺寸。注意如果你增大这个尺寸,你也必须增大你consumer的fetch 尺寸,这样consumer才能fetch到这些最大尺寸的消息。
message.format.version 0.11.0-IV2 log.message.format.version 指定broker将用于将消息添加到日志文件的消息格式版本。 该值应该是有效的ApiVersion。 一些例子是:0.8.2,0.9.0.0,0.10.0。 通过设置特定的消息格式版本,用户保证磁盘上的所有现有消息都小于或等于指定的版本。 不正确地设置这个值将导致使用旧版本的用户出错,因为他们将接收到他们不理解的格式的消息。
message.timestampdifference
.max.ms
9223372036854775807 log.message.timestamp.
difference.max.ms
broker收到消息时的时间戳和消息中指定的时间戳之间允许的最大差异。 如果log.message.timestamp.type = CreateTime,如果时间戳的差值超过此阈值,则会拒绝接受这条消息。 如果log.message.timestamp.type = LogAppendTime,则忽略此配置。允许的最大时间戳差异不应大于log.retention.ms,以避免不必要地频繁进行日志滚动。
message.timestamp.type CreateTime log.message.timestamp.type 定义消息中的时间戳是消息创建时间还是日志追加时间。 该值应该是“CreateTime”或“LogAppendTime”
min.cleanable.dirty.ratio 0.5 min.cleanable.dirty.ratio 此项配置控制log压缩器试图进行清除日志的频率。默认情况下,将避免清除压缩率超过50%的日志。这个比率避免了最大的空间浪费
min.compaction.lag.ms 0 log.cleaner.min.
compaction.lag.ms
消息在日志中保持未压缩的最短时间。 仅适用于正在压缩的日志。
min.insync.replicas 1 min.insync.replicas 当producer设置request.required.acks为-1时,min.insync.replicas指定replicas的最小数目(必须确认每一个repica的写数据都是成功的),如果这个数目没有达到,producer会产生异常。
preallocate false log.preallocate 是否预创建新的段文件,windows推荐使用
retention.bytes None log.retention.bytes 如果使用“delete”的retention 策略,这项配置就是指在删除日志之前,日志所能达到的最大尺寸。默认情况下,没有尺寸限制而只有时间限制
retention.ms 7 days log.retention.minutes 如果使用“delete”的retention策略,这项配置就是指删除日志前日志保存的时间。
segment.bytes 1GB log.segment.bytes kafka中log日志是分成一块块存储的,此配置是指log日志划分成块的大小
segment.index.bytes 10MB log.index.size.max.bytes 此配置是有关offsets和文件位置之间映射的索引文件的大小;一般不需要修改这个配置
segment.ms 7 days log.roll.hours 即使log的分块文件没有达到需要删除、压缩的大小,一旦log 的时间达到这个上限,就会强制新建一个log分块文件
segment.jitter.ms 0 log.roll.jitter.{ms,hours} The maximum jitter to subtract from logRollTimeMillis.
compression.type producer compression.type 为主题指定一个压缩类型,此配置接受标准压缩编码(’gzip’, ‘snappy’, lz4),另外接受’uncompressed‘相当于不压缩, ‘producer’ 意味着压缩类型由producer指定。
unclean.leader.election.enable false unclean.leader.election.enable 指明了是否能够使不在ISR中replicas follower设置用来作为leader

你可能感兴趣的:(kafka,kafka,topic)