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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值