第 2 章 主题配置属性
cleanup.policytype: list
Default: delete
Valid Values: [compact, delete]
Server Default Property: log.cleanup.policy
Importance: medium
是"删除"或"compact"或两者的字符串。这个字符串指定了在旧日志片段中使用的保留策略。当达到其保留时间或大小限制时,默认策略("删除")将丢弃旧的片段。"compact"设置将在主题中启用 日志压缩。
compression.typetype : string
Default: producer
Valid Values: [uncompressed, zstd, lz4, snappy, gzip, producer]
Server Default Property: compression.type
Importance: medium
指定给定主题的最后一个压缩类型。此配置接受标准的压缩码c('gzip', 'snappy', 'lz4', 'zstd')。它还接受"未压缩的",它等同于没有压缩 ; 和 'producer' 表示由制作者保留原始压缩代码。
delete.retention.mstype: long
Default: 86400000(1 天)
Valid Values: [0,…]
Server Default Property: log.cleaner.delete.retention.ms
Importance: medium
为 日志压缩主题保留 delete tombstone 标记的时间长度。此设置还可在消费者开始从偏移 0 开始读取的时间绑定,以确保它们获得最终阶段的有效快照(在完成扫描之前,可以收集到其他的删除操作)。
file.delete.delay.mstype: long
Default: 60000(1 minute)
Valid Values: [0,…]
Server Default Property: log.segment.delete.delay.ms
Importance: medium
从文件系统中删除文件前等待的时间。
flush.messagestype: long
Default: 9223372036854775807
Valid Values: [0,…]
Server Default Property: log.flush.interval.messages
Importance: medium
此设置允许指定一个间隔,我们将强制 fsync 写入日志中的数据。例如,如果将其设置为 1,在每次消息后都会进行 fsync;如果消息是 5,则每个五条消息后都会进行 fsync。通常,我们建议您不要为持久性设置并使用复制功能,并允许操作系统后台清除功能,因为它效率更高。此设置可以逐个主题覆盖(请参阅 各主题配置部分)。
flush.mstype: long
Default: 9223372036854775807
Valid Values: [0,…]
Server Default Property: log.flush.interval.ms
Importance: medium
此设置允许指定时间间隔,在其中会强制重新同步写入日志的数据。例如,如果此值设为 1000,则在通过 1000 ms 后,我们将 fsync 过。通常,我们建议您不要为持久性设置并使用复制功能,并允许操作系统后台清除功能,因为它效率更高。
follower.replication.throttled.replicasDescription: list
Default: ""
Valid Values: [partitionId],[partitionId]:[brokerId]:[brokerId],…
Server Default Property: follower.replication.throttled.replicas
Importance: medium
在后面的一个副本列表中,日志复制应该节流。该列表应当描述一组副本,格式为 [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:… or alternatively the wildcard '*' 可用于调整此主题的所有副本。
index.interval.bytestype: int
Default: 4096(4 kibibytes)
Valid Values: [0,…]
Server Default Property: log.index.interval.bytes
Importance: medium
此设置控制 Kafka 在其偏移索引中添加索引条目的频率。默认设置可确保每个 4096 字节都只索引一个消息。通过索引,读取可以更接近日志里的确切位置,但索引越大。您可能不需要更改。
leader.replication.throttled.replicasDescription: list
Default: ""
Valid Values: [partitionId],[partitionId]:[brokerId]:[brokerId],…
Server Default Property: leader.replication.throttled.replicas
Importance: medium
在领导端应节流日志复制的副本列表。该列表应当描述一组副本,格式为 [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:… or alternatively the wildcard '*' 可用于调整此主题的所有副本。
max.compaction.lag.msDescription: long
Default: 9223372036854775807
Valid Values: [1,…]
Server Default Property: log.cleaner.max.compaction.max.compaction.lag.ms
Importance: medium
在日志中,消息会保持在日志中的压缩状态的最长时间。只适用于正在压缩的日志。
max.message.bytestype: int
Default: 1048588
Valid Values: [0,…]
Server Default Property: message.max.bytes
Importance: medium
Kafka 允许的最大记录批处理大小(如果启用了压缩,则经过压缩)。如果这个增大并且存在大于 0.10.2 的消费者,则必须增加消费者的获取大小,以便他们能够获取此大型的记录批处理。在最新的消息格式版本中,记录始终分组到批处理中以提高效率。在以前的消息格式版本中,未将未压缩记录分组为批处理,这种限制仅适用于该示例中的单个记录。
message.format.versiontype: string
Default: 3.0-IV1 Valid Values: [0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.10.0-IV0, 0.10.0-IV1, 0.10.1-IV1, 0.10.1-IV1, 0.10.1-IV2, 0.10.2-IV0, 0.10.0-IV0
0.11.0-iv0, 0.11.0-iv1, 0.11.0-iv2, 1.0-iv0, 1.1-iv0, 2.0-iv0, 2.1-iv1, 2.1-iv1, 2.1-iv2, 2.2-iv0, 2.2-iv1, 2.3-iv0, 2.3-iv0, 2.3-iv1, 2.3-iv1, 2.4-IV0, 2.4-IV1, 2.5-IV0, 2.6-IV0, 2.7-IV0, 2.7-IV1, 2.7-IV2, 2.8-IV0, 2.8-IV1, 3.0-IV0, 3.0-IV1, 3.1-IV0, 3.2-IV0] Server Default Property: log.message.format.version
[DEPRECATED] 指定代理将使用的消息格式版本,将消息附加到日志中。如果
inter.broker.protocol.version是3.0或更高版本(忽略实际配置值),则此配置的值始终假定为 3.0。否则,该值应该是有效的 ApiVersion。一些示例为: 0.10.0、1.1、2.8、3.0。通过设置特定的消息格式版本,用户需要验证磁盘上的所有现有信息都小于或等于指定版本。设定这个值会错误地导致具有旧版本的用户出现问题,因为它们会收到没有理解的格式的消息。message.timestamp.difference.max.msDescription: long
Default: 9223372036854775807
Valid Values: [0,…]
Server Default Property: log.message.timestamp.difference.max.ms
Importance: medium
代理收到消息和消息中指定的时间戳之间允许的最大差别。如果 message.timestamp.type=CreateTime,如果时间戳超过这个阈值,则会拒绝一条消息。如果 message.timestamp.type=LogAppendTime,则此配置会被忽略。
message.timestamp.typetype : string
Default: CreateTime
Valid Values: [CreateTime, LogAppendTime]
Server Default Property: log.message.timestamp.type
Importance: medium
定义消息中的时间戳是消息创建时间或日志附加时间。该值应该是
CreateTime或LogAppendTime。min.cleanable.dirty.ratiotype: double
Default: 0.5
Valid Values: [0,…,1]
Server Default Property: log.cleaner.min.clean.ratio
Importance: medium
此配置控制日志紧凑器尝试清理日志的频率(假设 日志压缩 被启用)。默认情况下,我们将避免清理超过 50% 的日志。这种比例使日志空间达到最大的空间(最多 50% 的日志重复)。较高的比率意味着较少的、效率更高的清理,但在日志中意味着更多空间。如果还指定了 max.compaction.lag.ms 或 min.compaction.lag.ms 配置,则日志压缩器会在日志被认为在达到(i)达到脏比率阈值时,日志至少具有 min.compaction.lag.lag.lag.ms 持续时间(未匹配)的记录。 或者(ii)如果日志在 max.compaction.lag.lag.ms 周期内有脏(不相关)记录。
min.compaction.lag.msDescription: long
Default: 0
Valid Values: [0,…]
Server Default Property: log.cleaner.min.compaction.lag.ms
Importance: medium
日志消息在日志中保持不限定的最小时间。只适用于正在压缩的日志。
min.insync.replicastype: int
Default: 1
Valid Values: [1,…]
Server Default Property: min.insync.replicas
Importance: medium
当制作者将 acks 设为 "all"(或 "-1"),此配置指定了必须确认写入操作成功的最小副本数。如果达到此最小值,则生产者将引发异常(NotEnoughReplicas 或 NotEnoughReplicasAppend)。当同时使用
min.insync.replicas和acks时,您可以强制实现更大的持久保障。典型的场景是创建包含复制原因 3 的主题,将min.insync.replicas设置为 2,并使用"all"进行生成。这将确保,在大多数副本没有收到写入时,生产者会引发异常。预分配type: boolean
Default: false
Server Default Property: log.preallocate
Importance: medium
满足在创建新日志段时,应在磁盘上预分配该文件。
retention.bytesType: long
Default: -1
Server Default Property: log.retention.bytes
Importance: medium
此配置控制分区(由日志片段)在我们使用"删除"保留策略时丢弃旧日志片段,以释放空间的最大大小。默认情况下,大小限制仅有一个时间限制。由于这个限制在分区级别强制实施,因此根据分区的数量来计算主题保留(以字节为单位)。
retention.mstype: long
Default: 604800000(7 days)
Valid Values: [-1,…]
Server Default Property: log.retention.ms
Importance: medium
此配置会控制在我们使用"删除"保留策略时丢弃旧日志片段,以释放空间前的最长时间。这代表一个 SLA,了解消费者必须如何读取其数据。如果设置为 -1,则不应用时间限制。
segment.bytestype: int
Default: 1073741824(1 gibibyte)
Valid Values: [14,…]
Server Default Property: log.segment.bytes
Importance: medium
此配置控制日志的片段文件大小。保留和清理总是一次完成一个文件,因此较大的片段大小意味着较少的文件,但对保留的更精细的控制。
segment.index.bytestype: int
Default: 10485760(10 mebibytes)
Valid Values: [0,…]
Server Default Property: log.index.size.max.bytes
Importance: medium
此配置控制将偏移映射到文件位置的索引大小。我们预先分配这个索引文件,只有在日志推出后将其缩小。您通常不需要更改此设置。
segment.jitter.mstype: long
Default: 0
Valid Values: [0,…]
Server Default Property: log.roll.jitter.ms
Importance: medium
从调度的网段滚动时间中减去最大随机危机,以避免在网段滚动中产生任何影响。
segment.mstype: long
Default: 604800000(7 days)
Valid Values: [1,…]
Server Default Property: log.roll.ms
Importance: medium
此配置控制在这段文件未满的情况下,Kafka 将强制日志推出的时间,以确保保留可以删除或紧凑旧数据。
unclean.leader.election.enabletype: boolean
Default: false
Server Default Property: unclean.leader.election.enable
Importance: medium
指明是否将 ISR 集中的副本作为最后的手段被选为领导人,即使这样做可能会导致数据丢失。
message.downconversion.enabletype: boolean
Default: true
Server Default Property: log.message.downconversion.enable
Importance: low
此配置控制是否启用了 down-conversion 的消息格式来满足请求量。当设置为
false时,代理将不会为希望旧消息格式的用户执行 down-conversion。代理以UNSUPPORTED_VERSION错误响应,以消耗来自此类老客户端的请求。此配置不适用于复制器可能需要的任何消息格式转换。