该文档对应的是 kafka安装目录/config/server.properties 文件中的topic部份的内容。由于原英文版的文档从句太多太难理解,我花了四天时间翻译了一份中文文档,希望给大家带来帮助,有问题请留言。
可能网页显示不全,请下载附件PDF。
名称 | 描述 | 类型 | 默认值 | 可用值 | 服务器默认属性 | 重要性 |
cleanup.policy | "delete" 或 “compact”的字符串。这个字符串指派了用在老的日志片段的保存策略。默认的策略(“delete”)会在它们的保留时间或是大小超出限制时丢弃老的片段。设置为”compact”将在主题上启用日志压缩。 | 列表 | delete | [compact, delete] | log.cleanup.policy | 中 |
compression.type | 为一个给定的主题指定最终的压缩类型。这个配置接受标准的压缩编码器('gzip', 'snappy', lz4)。它额外的接受’uncompressed’,等于不压缩;还有'producer' 表示使用生产者设置的原始压缩编码器。 | 字符 | producer | [uncompressed, snappy, lz4, gzip, producer] | compression.type | 中 |
delete.retention.ms | 为日志压缩主题保留删除墓碑标记的时间。这个设置也给出了一个消费者必须完成一个读取的边界,如果它们开始从偏移0 到确保它可以得到一个可用的最尾端的快照(否则在它们完成扫描之前删除墓碑会被收集) | 长整型 | 86400000 | [0,...] | log.cleaner.delete.retention.ms | 中 |
file.delete.delay.ms | 从文件系统删除一个文件之前的等待时间。 | 长整型 | 60000 | [0,...] | log.segment.delete.delay.ms | 中 |
flush.messages | 这个设置允许指定一个时间间隔,它将用于写入到日志的数据强制进行文件同步。例如:如果这个值被设置为1我们将在每条消息之后进行文件同步。如果是5我将在每5条消息后进行文件同步。通常我们推荐你不要设置这个值并使用副本实现持久性和允许使用操作系统的后台刷新能力,因为它更高效。此设置可以按每个主题覆盖(参见每个主题配置部分)。 | 长整型 | 9223372036854775807 | [0,...] | log.flush.interval.messages | 中 |
flush.ms | 这个设置允许指定一个时间间隔,它将用于写入到日志的数据强制进行文件同步。例如:如果这个值被设置成1000我们将在1000毫秒之后进行文件同步。通常我们推荐你不要设置这个值并使用副本实现持久性和允许使用操作系统的后台刷新能力,因为它更高效。 | 长整型 | 9223372036854775807 | [0,...] | log.flush.interval.ms | 中 |
follower.replication.throttled.replicas | 应该被限制在跟随者端的日志副本列表。这个列表应该描述成副本的一个集合,格式为 [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:…或是可选的通配符“*”,可以用来限制这个主题的所有副本。 | 列表 | "" | [partitionId],[brokerId]:[partitionId],[brokerId]:... | follower.replication.throttled.replicas | 中 |
index.interval.bytes | 这个设置控制了 Kafka添加一个索引入口到它的偏移索引的频率。默认设置是确保我们的索引信息大约每4096字节。更多的索引允许在日志中读取时跳跃到离期望的位置更近的地方,但是这样会让索引更大。你很可能不需要更改这个值。 | 列表 | 4096 | [0,...] | log.index.interval.bytes | 中 |
leader.replication.throttled.replicas | 应该被限制在服务器端的日志副本列表。这个列表应该描述成副本的一个集合,格式为 [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:…或是可选的通配符“*”,可以用来限制这个主题的所有副本。 | 列表 | "" | [partitionId],[brokerId]:[partitionId],[brokerId]:... | leader.replication.throttled.replicas | 中 |
max.message.bytes | Kafka允许的最大的记录批次大小。如果这是增长的并且有老于0.10.2的消费者,消费者获取大小也必须是增长的以便它们可以这个大小的记录批次。在最新的消息格式版本中,记录常常分组为批次来实现更高效。在先前的消息格式版本中,未压缩的记录没有按批次分组,并且在这种情况下这样的局限仅适用于一个单一的记录。 | 整型 | 1000012 | [0,...] | message.max.bytes | 中 |
message.format.version | 指定了broker将用于追加消息到日志的消息格式的版本。这个值应该是一个有效的API版本。例如:0.8.2, 0.9.0.0, 0.10.0,更多详情请查看API版本。通过设置一个独特的消息格式版本,用户可以证明所有在磁盘上已存在的消息版本都小或等于指定版本。如果这个值没有被正确的设置将导致有更老版本的消费者崩溃,它们将收到带有一个它们不认识的格式的消息。 | 字符 | 0.11.0-IV2 |
| log.message.format.version | 中 |
message.timestamp.difference.max.ms | 一个broker收到一个消息时的时间戳与在消息中指定的时间戳之间允许的最大差异。如果message.timestamp.type=CreateTime,消息会被拒绝,如果时间戳的差异超过了这个阈值。如果message.timestamp.type=LogAppendTime这个配置会被忽略。 | 长整型 | 9223372036854775807 | [0,...] | log.message.timestamp.difference.max.ms | 中 |
message.timestamp.type | 定义消息的时间戳是消息的创建时间或是日志的追加时间。这个值应该是`CreateTime` 或 `LogAppendTime` | 字符 | CreateTime |
| log.message.timestamp.type | 中 |
min.cleanable.dirty.ratio | 这个配置控制着日志压缩器将要尝试清理日志的频率(假设日志压缩已启用)。默认情况下,我们将避免清理超过50%的已被压缩的日志。这个比率限制了日志中重复的最大空间(最多50%个日志中的50%个可能是重复的)。更高的比率意味着更少、更高效的清洁,但也意味着在日志中有更多的空间浪费。 | 双精度型 | 0.5 | [0,...,1] | log.cleaner.min.cleanable.ratio | 中 |
min.compaction.lag.ms | 一条消息在日志里保持未压缩的最小时间。只对压缩的日志有效。 | 长整型 | 0 | [0,...] | log.cleaner.min.compaction.lag.ms | 中 |
min.insync.replicas | 当一个生产者设置acks 为 “all”或是 “-1”。这个配置指定了必须被认为是成功的一个写入的副本的最小数量。如果这个最小数量不能被满足,那么生产者将抛出一个异常( NotEnoughReplicas 或 NotEnoughReplicasAfterAppend)。当min.insync.replicas 和 acks 一起使用时,允许你实现更强的耐久性保证。一个典型的情况是与3个复制因子创建主题,设置 min.insync.replicas 为2,并且生产者的acks 为 “all”。这将确保生产者抛出一个意外,如果一个主要的副本没有接收到一个写入。 | 整型 | 1 | [1,...] | min.insync.replicas | 中 |
preallocate | 设为true时我们应当在创建一个新的日志片段时预分配文件在磁盘上。 | 布尔 | FALSE |
| log.preallocate | 中 |
retention.bytes | 如果我们使用”delete”保留策略,这个配置控制了丢弃一个老的日志片段来释放之前保留一个日志文件可以增长到的最大在小。默认情况下没有大小限制,只有时间限制。 | 长整型 | -1 |
| log.retention.bytes | 中 |
retention.ms | 如果我们使用”delete”保留策略,这个配置控制了丢弃一个老的日志片段来释放之前保留一个日志文件最大时间。这代表在服务级别协议之上,一个消费者必须多快地读取他们的数据。 | 长整型 | 604800000 |
| log.retention.ms | 中 |
segment.bytes | 这个配置控制了日志片段文件。保留或清理通常是一次一个文件的进行的。所以一个大的片段大小意味着更少的文件,但是保留上的控制会有更少的颗粒。 | 整型 | 1073741824 | [14,...] | log.segment.bytes | 中 |
segment.index.bytes | 这个配置控制了到文件位置的映射偏移索引的大小。我们预分配这个索引文件并且只在日志展开后收缩。通常情况下不需要改这个设置。 | 整型 | 10485760 | [0,...] | log.index.size.max.bytes | 中 |
segment.jitter.ms | 计划的片段展开时间减少的最大随机抖动,以免发生迅速集中的片段展开。 | 长整型 | 0 | [0,...] | log.roll.jitter.ms | 中 |
segment.ms | 这个配置控置了时间周期,在这之后 kafka将会强制日志展开,即使这个片段文件没有满到确保保留可以删除或是压缩旧的数据。 | 长整型 | 604800000 | [0,...] | log.roll.ms | 中 |
unclean.leader.election.enable | 指示是否开启不在ISR里的副本设置为选举为领导者作为最后的手段,尽管这样做会导致数据丢失。 | 布尔 | FALSE |
| unclean.leader.election.enable | 中 |