第 2 章 主题配置属性
cleanup.policytype: list
Default: delete
Valid Values: [compact, delete]
Server Default Property: log.cleanup.policy
Importance: medium
此配置指定用于日志片段的保留策略。当达到保留时间或大小限制时,"删除"策略(默认值)将丢弃旧的片段。"compact"策略将 启用日志压缩,它会保留每个密钥的最新值。也可以在逗号分隔列表中指定这两个策略(如 "delete,compact")。在这种情况下,旧片段将按保留时间和大小配置丢弃,而保留片段将被压缩。
compression.typetype : string
Default: producer
Valid Values: [uncompressed, zstd, lz4, snappy, gzip, producer]
Server Default Property: compression.type
Importance: medium
指定给定主题的最终压缩类型。此配置接受标准压缩代码('gzip', 'snappy', 'lz4', 'zstd')。它还接受 'uncompressed',它相当于没有压缩;而 'producer' 意味着保留由制作者设置的原始压缩代码。
delete.retention.msType: long
Default: 86400000 (1 day)
Valid Values: [0,…]
Server Default Property: log.cleaner.delete.retention.ms
Importance: medium
为日志压缩主题保留 delete tombstone 标记的时间长度。此设置还赋予一个时间绑定,消费者在从偏移 0 开始时必须完成读取,以确保它们获得最终阶段的有效快照(否则可以收集到mbstones,然后再完成其扫描)。
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: [1,…]
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
此设置允许指定时间间隔,我们将强制将写入日志的 fsync 数据。例如,如果它被设置为 1000,则我们会在 1000 毫秒后执行 fsync。通常,我们建议您不要设置它,并将复制用于持久性并允许操作系统的后台清除功能,因为它效率更高。
follower.replication.throttled.replicastype: list
Default: ""
Valid Values: [partitionId]:[brokerId],[partitionId]:[brokerId],…
Server Default Property: follower.replication.throttled.replicas
Importance: medium
在后续一侧应该节流日志复制的副本列表。该列表应该以 [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:… 或 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.replicastype: list
Default: ""
Valid Values: [partitionId]:[brokerId],[partitionId]:[brokerId],…
Server Default Property: leader.replication.throttled.replicas
Importance: medium
在领导端,日志复制应该节流的副本列表。该列表应该以 [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:… 或 wildcard '*' 的形式描述一组副本,可用于节流这个主题的所有副本。
max.compaction.lag.msType: long
Default: 9223372036854775807
Valid Values: [1,…]
Server Default Property: log.cleaner.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-IV theValid Values: [0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.10.0-IV0, 0.10.0-IV1, 0.10.1-IV0, 0.10.1-IV1, 0.10.1-IV2, 0.10.2-IV0, 0.11.0-IV0, 0.11.0-IV1, 0.11.0-IV2, 1.0-IV0, 1.1-IV0,
2.0-iv0, 2.0-iv1, 2.1-iv0, 2.1-iv1, 2.1-iv2, 2.2-iv0, 2.2-iv1, 2.3-iv1, 2.3-iv0, 2.4-iv1, 2.5-iv0, 2.6-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.0-iv1, 3.0-iv1, 3.1-IV0, 3.2-IV0, 3.3-IV0, 3.3-IV1, 3.3-IV2, 3.3-IV3, 3.4-IV0]
Server Default Property: log.message.format.version
Importance: medium
[DEPRECATED] 指定代理将用来将消息附加到日志中的消息格式版本。如果
inter.broker.protocol.version是3.0或更高版本,则此配置的值总是被假定为 3.0。否则,该值应该是有效的 ApiVersion。一些示例有: 0.10.0、1.1、2.8、3.0。通过设置特定的消息格式版本,用户正在认证磁盘上的所有现有消息都小于指定版本。设置这个值会错误地会导致带有旧版本的用户中断,因为它们将使用不理解的格式接收信息。message.timestamp.difference.max.msType: 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.typeDescription: 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.cleanable.ratio
Importance: medium
此配置控制日志紧凑程序将尝试清理日志的频率(假设启用了 日志压缩 )。默认情况下,我们将避免清理日志超过 50% 的日志。这种比例使日志空间达到最大的空间(50% 最多 50% 的日志重复)。较高的比率将意味着更短、效率更高的清理,但意味着日志中更多浪费空间。如果同时指定了 max.compaction.lag.ms 或 min.compaction.lag.ms 配置,则日志压缩器会在满足脏比率阈值时马上考虑日志有资格进行压缩:(i)脏比率阈值,并且日志至少在 min.compaction.lag.ms 持续时间内具有脏(不编译)记录。 或(ii)如果日志具有最多 max.compaction.lag.ms 周期的脏(不解释)记录。
min.compaction.lag.msType: 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 或 NotEnoughReplicasAfterAppend)。当一起使用时,
min.insync.replicas和acks允许您强制执行更大的持久性保证。典型的场景是创建包含复制原因 3 的主题,将min.insync.replicas设置为 2,并使用acksof "all" 生成。这将确保,当大多数副本没有收到写入时,生产者会引发异常。preallocateType: boolean
Default: false
Server Default Property: log.preallocate
Importance: medium
在创建新日志片段时,如果我们应该预先分配磁盘上的文件,则为 true。
retention.bytesType: long
Default: -\":\"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.bytesDescription: 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: [4,…]
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
从调度的片段汇总中减去了最大随机 jitter,以避免出现片段滚动的限制。
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.enableDescription: boolean
Default: true
Server Default Property: log.message.downconversion.enable
Importance: low
此配置控制是否启用了 down-conversion 消息格式来满足消费请求。当设置为
false时,代理将不会对希望旧消息格式的消费者执行 down-conversion。对于来自较旧的客户端的消费请求,代理会以UNSUPPORTED_VERSION错误响应。此配置不适用于复制才能遵循的任何消息格式转换。