跳转至

3. 配置

Kafka使用属性文件格式的 键值对进行配置。这些值可以从文件或以编程方式提供。

3.1 Broker 配置

基本配置如下:

  • broker.id
  • log.dirs
  • zookeeper.connect

下面 将更详细地讨论主题级配置和默认值。

advertised.listeners

发布到 ZooKeeper 供客户端使用的侦听器(如果与listeners配置属性不同)。在 IaaS 环境中,这可能需要与代理绑定的接口不同。如果未设置,listeners则将使用 的值。与 不同的是listeners,通告 0.0.0.0 元地址是无效的。

与 不同的是listeners,此属性中可以有重复的端口,以便可以将一个侦听器配置为通告另一个侦听器的地址。这在某些使用外部负载均衡器的情况下非常有用。

Type:string
Default:null
Valid Values:
Importance:high
Update Mode:per-broker

auto.create.topics.enable

在服务器上启用自动创建主题

Type: boolean
Default: true
Valid Values:
Importance: high
Update Mode: read-only

auto.leader.rebalance.enable

启用自动领导者平衡。后台线程定期检查分区领导者的分布,可通过“leader.imbalance.check.interval.seconds”进行配置。如果领导者不平衡超过“leader.imbalance.per.broker.percentage”,则会触发领导者重新平衡到分区的首选领导者。

Type: boolean
Default: true
Valid Values:
Importance: high
Update Mode: read-only

background.threads

用于各种后台处理任务的线程数

Type: int
Default: 10
Valid Values: [1,...]
Importance: high
Update Mode: cluster-wide

broker.id

该服务器的代理 ID。如果未设置,将生成唯一的代理 ID。为了避免 Zookeeper 生成的代理 ID 和用户配置的代理 ID 之间的冲突,生成的代理 ID 从served.broker.max.id + 1 开始。

Type: int
Default: -1
Valid Values:
Importance: high
Update Mode: read-only

compression.type

指定给定主题的最终压缩类型。此配置接受标准压缩编解码器('gzip'、'snappy'、'lz4'、'zstd')。它还接受“未压缩”,这相当于不压缩;“生产者”表示保留生产者设置的原始压缩编解码器。

Type: string
Default: producer
Valid Values: [uncompressed, zstd, lz4, snappy, gzip, producer]
Importance: high
Update Mode: cluster-wide

control.plane.listener.name

用于控制器和代理之间通信的侦听器名称。Broker将使用control.plane.listener.name在侦听器列表中定位端点,以侦听来自控制器的连接。例如,如果代理的配置为:

listeners = INTERNAL://192.1.1.8:9092, EXTERNAL://10.1.1.5:9093, CONTROLLER://192.1.1.8:9094
listener.security.protocol.map = INTERNAL:PLAINTEXT, EXTERNAL:SSL, CONTROLLER:SSL
control.plane.listener.name = CONTROLLER

启动时,代理将开始使用安全协议“SSL”侦听“192.1.1.8:9094”。
在控制器端,当它通过zookeeper发现代理的已发布端点时,它将使用control.plane.listener.name来查找端点,它将用于建立与代理的连接。
例如,如果代理在 Zookeeper 上发布的端点为:

"endpoints" : ["INTERNAL://broker1.example.com:9092","EXTERNAL://broker1.example.com:9093","CONTROLLER://broker1.example.com:9094"]

并且控制器的配置是:

listener.security.protocol.map = INTERNAL:PLAINTEXT, EXTERNAL:SSL, CONTROLLER:SSL
control.plane.listener.name = CONTROLLER

那么控制器将使用“broker1.example.com:9094”,使用安全协议“SSL”连接到代理。
如果未显式配置,则默认值为 null,并且不会有用于控制器连接的专用端点。
如果显式配置,该值不能与 的值相同inter.broker.listener.name

Type: string
Default: null
Valid Values:
Importance: high
Update Mode: read-only

controller.listener.names

控制器使用的侦听器名称的逗号分隔列表。如果在 KRaft 模式下运行,这是必需的。当与控制器仲裁通信时,代理将始终使用此列表中的第一个侦听器。
注意:基于 ZK 的控制器不应设置此配置。

Type: string
Default: null
Valid Values:
Importance: high
Update Mode: read-only

controller.quorum.election.backoff.max.ms

开始新选举之前的最长时间(以毫秒为单位)。这用于二进制指数退避机制,有助于防止选举陷入僵局

Type: int
Default: 1000 (1 second)
Valid Values:
Importance: high
Update Mode: read-only

controller.quorum.election.timeout.ms

在触发新选举之前无法从领导者获取数据的最长时间(以毫秒为单位)

Type: int
Default: 1000 (1 second)
Valid Values:
Importance: high
Update Mode: read-only

controller.quorum.fetch.timeout.ms

在成为候选人并触发选民选举之前,从当前领导者那里成功获取信息的最长时间;在询问领导者是否有新纪元之前,没有收到来自大多数法定人数的提取的最长时间

Type: int
Default: 2000 (2 seconds)
Valid Values:
Importance: high
Update Mode: read-only

controller.quorum.voters

以逗号分隔的“{id}@{host}:{port}”条目列表中的一组投票者的 ID/端点信息映射。例如:`1@localhost:9092,2@localhost:9093,3@localhost:9094`

Type: list
Default: ""
Valid Values: non-empty list
Importance: high
Update Mode: read-only

delete.topic.enable

启用删除主题。如果关闭此配置,通过管理工具删除主题将不起作用

Type: boolean
Default: true
Valid Values:
Importance: high
Update Mode: read-only

early.start.listeners

以逗号分隔的侦听器名称列表,可以在授权者完成初始化之前启动。当授权者依赖于集群本身进行引导时,这非常有用,就像 StandardAuthorizer(将 ACL 存储在元数据日志中)的情况一样。默认情况下,controller.listener.names 中包含的所有侦听器也将是早期启动侦听器。如果侦听器接受外部流量,则不应出现在此列表中。

Type: string
Default: null
Valid Values:
Importance: high
Update Mode: read-only

leader.imbalance.check.interval.seconds

控制器触发分区重新平衡检查的频率

Type: long
Default: 300
Valid Values: [1,...]
Importance: high
Update Mode: read-only

leader.imbalance.per.broker.percentage

每个broker允许的领导者不平衡比率。如果每个broker的余额超过此值,控制器将触发领导者余额。该值以百分比指定。

Type: int
Default: 10
Valid Values:
Importance: high
Update Mode: read-only

listeners

侦听器列表 - 我们将侦听的 URI 的逗号分隔列表以及侦听器名称。如果监听器名称不是安全协议,listener.security.protocol.map也必须设置。
侦听器名称和端口号必须是唯一的。
将主机名指定为 0.0.0.0 以绑定到所有接口。
将主机名留空以绑定到默认接口。
合法侦听器列表的示例:
PLAINTEXT://myhost:9092,SSL://:9091
CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093

Type: string
Default: PLAINTEXT://:9092
Valid Values:
Importance: high
Update Mode: per-broker

log.dirs

保存日志数据的目录(log.dirs 属性的补充)

Type: string
Default: /tmp/kafka-logs
Valid Values:
Importance: high
Update Mode: read-only

log.dirs

存储日志数据的目录的逗号分隔列表。如果未设置,则使用 log.dir 中的值。

Type: string
Default: null
Valid Values:
Importance: high
Update Mode: read-only

log.flush.interval.messages

在消息刷新到磁盘之前日志分区上累积的消息数

Type: long
Default: 9223372036854775807
Valid Values: [1,...]
Importance: high
Update Mode: cluster-wide

log.flush.interval.ms

任何主题中的消息在刷新到磁盘之前在内存中保留的最长时间(以毫秒为单位)。如果未设置,则使用 log.flush.scheduler.interval.ms 中的值

Type: long
Default: null
Valid Values:
Importance: high
Update Mode: cluster-wide

log.flush.offset.checkpoint.interval.ms

我们更新充当日志恢复点的最后一次刷新的持久记录的频率

Type: int
Default: 60000 (1 minute)
Valid Values: [0,...]
Importance: high
Update Mode: read-only

log.flush.scheduler.interval.ms

日志刷新器检查是否有日志需要刷新到磁盘的频率(以毫秒为单位)

Type: long
Default: 9223372036854775807
Valid Values:
Importance: high
Update Mode: read-only

log.flush.start.offset.checkpoint.interval.ms

我们更新日志起始偏移量的持久记录的频率

Type: int
Default: 60000 (1 minute)
Valid Values: [0,...]
Importance: high
Update Mode: read-only

log.retention.bytes

删除日志之前的最大大小

Type: long
Default: -1
Valid Values:
Importance: high
Update Mode: cluster-wide

log.retention.hours

删除日志文件之前保留日志文件的小时数(以小时为单位),第三级为 log.retention.ms 属性

Type: int
Default: 168
Valid Values:
Importance: high
Update Mode: read-only

log.retention.minutes

删除日志文件之前保留日志文件的分钟数(以分钟为单位),次要于 log.retention.ms 属性。如果未设置,则使用 log.retention.hours 中的值

Type: int
Default: null
Valid Values:
Importance: high
Update Mode: read-only

log.retention.ms

删除日志文件之前保留日志文件的毫秒数(以毫秒为单位),如果未设置,则使用 log.retention.minutes 中的值。如果设置为 -1,则不应用时间限制。

Type: long
Default: null
Valid Values:
Importance: high
Update Mode: cluster-wide

log.roll.hours

推出新日志段之前的最长时间(以小时为单位),次要于 log.roll.ms 属性

Type: int
Default: 168
Valid Values: [1,...]
Importance: high
Update Mode: read-only

log.roll.jitter.hours

从 logRollTimeMillis 中减去的最大抖动(以小时为单位),次要于 log.roll.jitter.ms 属性

Type: int
Default: 0
Valid Values: [0,...]
Importance: high
Update Mode: read-only

log.roll.jitter.ms

从 logRollTimeMillis 中减去的最大抖动(以毫秒为单位)。如果未设置,则使用 log.roll.jitter.hours 中的值

Type: long
Default: null
Valid Values:
Importance: high
Update Mode: cluster-wide

log.roll.ms

推出新日志段之前的最长时间(以毫秒为单位)。如果未设置,则使用 log.roll.hours 中的值

Type: long
Default: null
Valid Values:
Importance: high
Update Mode: cluster-wide

log.segment.bytes

单个日志文件的最大大小

Type: int
Default: 1073741824 (1 gibibyte)
Valid Values: [14,...]
Importance: high
Update Mode: cluster-wide

log.segment.delete.delay.ms

从文件系统中删除文件之前等待的时间

Type: long
Default: 60000 (1 minute)
Valid Values: [0,...]
Importance: high
Update Mode: cluster-wide

message.max.bytes

Kafka 允许的最大记录批量大小(如果启用压缩,则在压缩后)。如果增加此值并且存在早于 0.10.2 的消费者,则消费者的获取大小也必须增加,以便他们可以获取这么大的记录批次。在最新的消息格式版本中,为了提高效率,记录总是分组为批次。在以前的消息格式版本中,未压缩的记录不会分组为批次,并且此限制仅适用于这种情况下的单个记录。这可以使用主题级别配置针对每个主题进行设置max.message.bytes

Type: int
Default: 1048588
Valid Values: [0,...]
Importance: high
Update Mode: cluster-wide

metadata.log.dir

此配置决定了我们将 KRaft 模式下集群的元数据日志放置在何处。如果未设置,元数据日志将放置在 log.dirs 中的第一个log.dirs中。

Type: string
Default: null
Valid Values:
Importance: high
Update Mode: read-only

metadata.log.max.record.bytes. Between.snapshots

这是最新快照与生成新快照之前所需的高水位线之间的日志中的最大字节数。默认值为20971520。要根据经过的时间生成快照,请参见metadata.log.max.snapshot.interval.ms配置。当达到最大时间间隔或达到最大字节数限制时,Kafka 节点将生成快照。

Type: long
Default: 20971520
Valid Values: [1,...]
Importance: high
Update Mode: read-only

metadata.log.max.snapshot.interval.ms

如果日志中存在未包含在最新快照中的已提交记录,则这是等待生成快照的最大毫秒数。值为零将禁用基于时间的快照生成。默认值为3600000。如果要根据元数据字节数生成快照,请参见配置metadata.log.max.record.bytes.between.snapshots。当达到最大时间间隔或达到最大字节数限制时,Kafka 节点将生成快照。

Type: long
Default: 3600000 (1 hour)
Valid Values: [0,...]
Importance: high
Update Mode: read-only

metadata.log.segment.bytes

单个元数据日志文件的最大大小。

Type: int
Default: 1073741824 (1 gibibyte)
Valid Values: [12,...]
Importance: high
Update Mode: read-only

metadata.log.segment.ms

推出新元数据日志文件之前的最长时间(以毫秒为单位)。

Type: long
Default: 604800000 (7 days)
Valid Values:
Importance: high
Update Mode: read-only

metadata.max.retention.bytes

删除旧快照和日志文件之前元数据日志和快照的最大组合大小。由于在删除任何日志之前必须至少存在一个快照,因此这是一项软限制。

Type: long
Default: 104857600 (100 mebibytes)
Valid Values:
Importance: high
Update Mode: read-only

metadata.max.retention.ms

删除元数据日志文件或快照之前保留的毫秒数。由于在删除任何日志之前必须至少存在一个快照,因此这是一项软限制。

Type: long
Default: 604800000 (7 days)
Valid Values:
Importance: high
Update Mode: read-only

min.insync.replicas

当生产者将 acks 设置为“all”(或“-1”)时,min.insync.replicas 指定必须确认写入才能被视为成功的最小副本数。如果无法满足此最小值,则生产者将引发异常(NotEnoughReplicas 或 NotEnoughReplicasAfterAppend)。
当一起使用时,min.insync.replicas 和 ack 允许您强制执行更高的持久性保证。典型的场景是创建一个复制因子为 3 的主题,将 min.insync.replicas 设置为 2,并使用“all”的 ack 进行生成。这将确保生产者在大多数副本未收到写入时引发异常。

Type: int
Default: 1
Valid Values: [1,...]
Importance: high
Update Mode: cluster-wide

node.id

当“process.roles”非空时,与该进程所扮演的角色关联的节点 ID。这是在 KRaft 模式下运行时所需的配置。

Type: int
Default: -1
Valid Values:
Importance: high
Update Mode: read-only

num.io.threads

服务器用于处理请求的线程数,其中可能包括磁盘 I/O

Type: int
Default: 8
Valid Values: [1,...]
Importance: high
Update Mode: cluster-wide

num.network.threads

服务器用于从网络接收请求并向网络发送响应的线程数。注意:每个监听器(除了控制器监听器)都会创建自己的线程池。

Type: int
Default: 3
Valid Values: [1,...]
Importance: high
Update Mode: cluster-wide

num.recovery.threads.per.data.dir

每个数据目录用于启动时日志恢复和关闭时刷新的线程数

Type: int
Default: 1
Valid Values: [1,...]
Importance: high
Update Mode: cluster-wide

num.replica.alter.log.dirs.threads

可以在log.dirs之间移动副本的线程数,其中可能包括磁盘 I/O

Type: int
Default: null
Valid Values:
Importance: high
Update Mode: read-only

num.replica.fetchers

用于从每个源代理复制记录的获取器线程数。每个 Broker 上的 fetcher 总数num.replica.fetchers与集群中的 Broker 数量相乘。增加此值可以提高跟随者和领导者 Broker 中的 I/O 并行度,但代价是更高的 CPU 和内存利用率。

Type: int
Default: 1
Valid Values:
Importance: high
Update Mode: cluster-wide

offsets.metadata.max.bytes

与偏移提交关联的元数据条目的最大大小

Type: int
Default: 4096 (4 kibibytes)
Valid Values:
Importance: high
Update Mode: read-only

offsets.commit.required.acks

可以接受提交之前所需的确认。一般来说,不应覆盖默认值(-1)

Type: short
Default: -1
Valid Values:
Importance: high
Update Mode: read-only

offsets.commit.timeout.ms

偏移量提交将被延迟,直到偏移量主题的所有副本都收到提交或达到此超时。这类似于生产者请求超时。

Type: int
Default: 5000 (5 seconds)
Valid Values: [1,...]
Importance: high
Update Mode: read-only

offsets.load.buffer.size

将偏移量加载到缓存中时从偏移量段读取的批量大小(软限制,如果记录太大则覆盖)。

Type: int
Default: 5242880
Valid Values: [1,...]
Importance: high
Update Mode: read-only

offsets.retention.check.interval.ms

检查过时偏移量的频率

Type: long
Default: 600000 (10 minutes)
Valid Values: [1,...]
Importance: high
Update Mode: read-only

offsets.retention.minutes

对于订阅的消费者,在以下情况下,特定分区的已提交偏移量将过期并被丢弃: 1)在消费者组失去所有消费者(即变空)后,此保留期已过; 2) 自上次为该分区提交偏移量以来,该保留期已过,并且该组不再订阅相应的主题。 对于独立消费者(使用手动分配),自上次提交以来的保留期过后,偏移量将过期。 请注意,当通过delete-group请求删除一个组时,其提交的偏移量也将被删除,而无需额外的保留期; 此外,当通过删除主题请求删除主题时,在传播元数据更新时,该主题的任何组的提交偏移量也将被删除,而无需额外的保留期。

Type:int
Default: 10080
Valid Values: [1,...]
Importance: high
Update Mode: read-only

offsets.topic.compression.codec

偏移量主题的压缩编解码器 - 压缩可用于实现“原子”提交

Type: int
Default: 0
Valid Values:
Importance: high
Update Mode: read-only

offsets.topic.num.partitions

偏移提交主题的分区数量(部署后不应更改)

Type: int
Default: 50
Valid Values: [1,...]
Importance: high
Update Mode: read-only

offsets.topic.replication.factor

偏移主题的复制因子(设置较高以确保可用性)。在集群大小满足此复制因子要求之前,内部主题创建将失败。

Type: short
Default: 3
Valid Values: [1,...]
Importance: high
Update Mode: read-only

offsets.topic.segment.bytes

偏移量主题段字节应保持相对较小,以便于更快的日志压缩和缓存加载

Type: int
Default: 104857600 (100 mebibytes)
Valid Values: [1,...]
Importance: high
Update Mode: read-only

process.roles

此流程扮演的角色:“broker”、“控制者”或“broker、控制者”(如果两者兼而有之)。此配置仅适用于KRaft(Kafka Raft)模式的集群(而不是ZooKeeper)。对于 Zookeeper 集群,将此配置保留为未定义或为空。

Type: list
Default: ""
Valid Values: [broker, controller]
Importance: high
Update Mode: read-only

queued.max.requests

在阻塞网络线程之前,数据平面允许的排队请求数

Type: int
Default: 500
Valid Values: [1,...]
Importance: high
Update Mode: read-only

replica.fetch.min.bytes

每个获取响应所需的最小字节数。如果没有足够的字节,请等待replica.fetch.wait.max.ms(代理配置)。

Type: int
Default: 1
Valid Values:
Importance: high
Update Mode: read-only

replica.fetch.wait.max.ms

跟随者副本发出的每个 fetcher 请求的最大等待时间。该值应始终小于replica.lag.time.max.ms,以防止低吞吐量主题的ISR频繁收缩

Type: int
Default: 500
Valid Values:
Importance: high
Update Mode: read-only

replica.high.watermark.checkpoint.interval.ms

将高水位线保存到磁盘的频率

Type: long
Default: 5000 (5 seconds)
Valid Values:
Importance: high
Update Mode: read-only

replica.lag.time.max.ms

如果追随者没有发送任何获取请求或者至少在这一次没有消耗到领导者日志结束偏移量,则领导者将从 isr 中删除追随者

Type: long
Default: 30000 (30 seconds)
Valid Values:
Importance: high
Update Mode: read-only

replica.socket.receive.buffer.bytes

用于向领导者复制数据的网络请求的套接字接收缓冲区

Type: int
Default: 65536 (64 kibibytes)
Valid Values:
Importance: high
Update Mode: read-only

replica.socket.timeout.ms

网络请求的套接字超时。它的值至少应该是replica.fetch.wait.max.ms

Type: int
Default: 30000 (30 seconds)
Valid Values:
Importance: high
Update Mode: read-only

request.timeout.ms

该配置控制客户端等待请求响应的最长时间。如果在超时之前未收到响应,则客户端将在必要时重新发送请求,或者在重试次数耗尽时使请求失败。

Type: int
Default: 30000 (30 seconds)
Valid Values:
Importance: high
Update Mode: read-only

sasl.mechanism.controller.protocol

sasl.mechanism用于与控制器通信。默认为 GSSAPI。

Type: string
Default: GSAPI
Valid Values:
Importance: high
Update Mode: read-only

socket.receive.buffer.bytes

套接字服务器套接字的 SO_RCVBUF 缓冲区。如果值为-1,将使用操作系统默认值。

Type: int
Default: 102400(100 KB)
Valid Values:
Importance: high
Update Mode: read-only

socket.request.max.bytes

一次socket请求的最大字节数

Type: int
Default: 104857600 (100 mebibytes)
Valid Values: [1,...]
Importance: high
Update Mode: read-only

socket.send.buffer.bytes

The SO_SNDBUF buffer of the socket server sockets. If the value is -1, the OS default will be used.

Type:int
Default:102400 (100 kibibytes)
Valid Values:
Importance:high
Update Mode:read-only

transaction.max.timeout.ms

The maximum allowed timeout for transactions. If a client’s requested transaction time exceed this, then the broker will return an error in InitProducerIdRequest. This prevents a client from too large of a timeout, which can stall consumers reading from topics included in the transaction.

Type:int
Default:900000 (15 minutes)
Valid Values:[1,...]
Importance:high
Update Mode:read-only

transaction.state.log.load.buffer.size

Batch size for reading from the transaction log segments when loading producer ids and transactions into the cache (soft-limit, overridden if records are too large).

Type:int
Default:5242880
Valid Values:[1,...]
Importance:high
Update Mode:read-only

transaction.state.log.min.isr

Overridden min.insync.replicas config for the transaction topic.

Type:int
Default:2
Valid Values:[1,...]
Importance:high
Update Mode:read-only

transaction.state.log.num.partitions

事务主题的分区数量(部署后不应更改)。

Type: int
Default: 50
Valid Values: [1,...]
Importance: high
Update Mode: read-only

transaction.state.log.replication.factor

事务主题的复制因子(设置较高以确保可用性)。在集群大小满足此复制因子要求之前,内部主题创建将失败。

Type: short
Default: 3
Valid Values: [1,...]
Importance: high
Update Mode: read-only

transaction.state.log.segment.bytes

事务主题段字节应保持相对较小,以便于更快的日志压缩和缓存加载

Type: int
Default: 104857600 (100 mebibytes)
Valid Values: [1,...]
Importance: high
Update Mode: read-only

transactional.id.expiration.ms

在事务 ID 过期之前,事务协调器在未收到当前事务的任何事务状态更新的情况下将等待的时间(以毫秒为单位)。当交易仍在进行时,交易 ID 不会过期。

Type: int
Default: 604800000 (7 days)
Valid Values: [1,...]
Importance: high
Update Mode: read-only

unclean.leader.election.enable

指示是否将不在 ISR 集中的副本作为最后手段选举为领导者,即使这样做可能会导致数据丢失

Type: boolean
Default: false
Valid Values:
Importance: high
Update Mode: cluster-wide

zookeeper.connect

以以下形式指定 ZooKeeper 连接字符串,hostname:port其中 host 和 port 是 ZooKeeper 服务器的主机和端口。要允许在 ZooKeeper 机器关闭时通过其他 ZooKeeper 节点进行连接,您还可以在表单中指定多个主机hostname1:port1,hostname2:port2,hostname3:port3
服务器还可以将 ZooKeeper chroot 路径作为其 ZooKeeper 连接字符串的一部分,该连接字符串将其数据放置在全局 ZooKeeper 命名空间中的某个路径下。例如,要给出 chroot 路径,/chroot/path请将连接字符串给出为hostname1:port1,hostname2:port2,hostname3:port3/chroot/path.

Type: string
Default: null
Valid Values:
Importance: high
Update Mode: read-only

zookeeper.connection.timeout.ms

客户端等待与zookeeper建立连接的最长时间。如果未设置,则使用zookeeper.session.timeout.ms中的值

Type: int
Default: null
Valid Values:
Importance: high
Update Mode: read-only

zookeeper.max.in.flight.requests

客户端在阻塞之前向 Zookeeper 发送的未确认请求的最大数量。

Type: int
Default: 10
Valid Values: [1,...]
Importance: high
Update Mode: read-only

zookeeper.metadata.migration.enable

启用 ZK 到 KRaft 迁移

Type: boolean
Default: false
Valid Values:
Importance: high
Update Mode: read-only

zookeeper.session.timeout.ms

Zookeeper 会话超时

Type: int
Default: 18000 (18 seconds)
Valid Values:
Importance: high
Update Mode: read-only

zookeeper.set.acl

设置客户端使用安全 ACL

Type: boolean
Default: false
Valid Values:
Importance: high
Update Mode: read-only

broker.heartbeat.interval.ms

代理心跳之间的时间长度(以毫秒为单位)。在 KRaft 模式下运行时使用。

Type: int
Default: 2000 (2 seconds)
Valid Values:
Importance: medium
Update Mode: read-only

broker.id.generation.enable

在服务器上启用自动代理 ID 生成。启用后,应检查为served.broker.max.id配置的值。

Type: boolean
Default: true
Valid Values:
Importance: medium
Update Mode: read-only

broker.rack

broker的机架。这将用于机架感知复制分配以实现容错。示例:“RACK1”、“us-east-1d”

Type: string
Default: null
Valid Values:
Importance: medium
Update Mode: read-only

broker.session.timeout.ms

The length of time in milliseconds that a broker lease lasts if no heartbeats are made. Used when running in KRaft mode.

Type:int
Default:9000 (9 seconds)
Valid Values:
Importance:medium
Update Mode:read-only

connections.max.idle.ms

Idle connections timeout: the server socket processor threads close the connections that idle more than this

Type:long
Default:600000 (10 minutes)
Valid Values:
Importance:medium
Update Mode:read-only

connections.max.reauth.ms

When explicitly set to a positive number (the default is 0, not a positive number), a session lifetime that will not exceed the configured value will be communicated to v2.2.0 or later clients when they authenticate. The broker will disconnect any such connection that is not re-authenticated within the session lifetime and that is then subsequently used for any purpose other than re-authentication. Configuration names can optionally be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.oauthbearer.connections.max.reauth.ms=3600000

Type:long
Default:0
Valid Values:
Importance:medium
Update Mode:read-only

controlled.shutdown.enable

Enable controlled shutdown of the server

Type:boolean
Default:true
Valid Values:
Importance:medium
Update Mode:read-only

controlled.shutdown.max.retries

Controlled shutdown can fail for multiple reasons. This determines the number of retries when such failure happens

Type:int
Default:3
Valid Values:
Importance:medium
Update Mode:read-only

controlled.shutdown.retry.backoff.ms

Before each retry, the system needs time to recover from the state that caused the previous failure (Controller fail over, replica lag etc). This config determines the amount of time to wait before retrying.

Type:long
Default:5000 (5 seconds)
Valid Values:
Importance:medium
Update Mode:read-only

controller.quorum.append.linger.ms

The duration in milliseconds that the leader will wait for writes to accumulate before flushing them to disk.

Type:int
Default:25
Valid Values:
Importance:medium
Update Mode:read-only

controller.quorum.request.timeout.ms

该配置控制客户端等待请求响应的最长时间。如果在超时之前未收到响应,则客户端将在必要时重新发送请求,或者在重试次数耗尽时使请求失败。

Type: int
Default: 2000 (2 seconds)
Valid Values:
Importance: medium
Update Mode: read-only

controller.socket.timeout.ms

控制器到代理通道的套接字超时

Type: int
Default: 30000 (30 seconds)
Valid Values:
Importance: medium
Update Mode: read-only

default.replication.factor

自动创建主题的默认复制因子

Type: int
Default: 1
Valid Values:
Importance: medium
Update Mode: read-only

delegate.token.expiry.time.ms

令牌需要更新之前的令牌有效时间(以毫秒为单位)。默认值 1 天。

Type: long
Default: 86400000 (1 day)
Valid Values: [1,...]
Importance: medium
Update Mode: read-only

delegation.token.master.key

已弃用:delegation.token.secret.key 的别名,应使用它来代替此配置。

Type: password
Default: null
Valid Values:
Importance: medium
Update Mode: read-only

delegation.token.max.lifetime.ms

令牌具有最长生命周期,超过该生命周期就无法再续订。默认值 7 天。

Type: long
Default: 604800000 (7 days)
Valid Values: [1,...]
Importance: medium
Update Mode: read-only

delegation.token.secret.key

用于生成和验证委托令牌的密钥。必须在所有代理之间配置相同的密钥。如果密钥未设置或设置为空字符串,代理将禁用委托令牌支持。

Type: password
Default: null
Valid Values:
Importance: medium
Update Mode: read-only

delete.records.purgatory.purge.interval.requests

删除记录请求purgatory的清除间隔(以请求数为单位)

Type: int
Default: 1
Valid Values:
Importance: medium
Update Mode: read-only

fetch.max.bytes

我们将为获取请求返回的最大字节数。必须至少为 1024。

Type: int
Default: 57671680 (55 mebibytes)
Valid Values: [1024,...]
Importance: medium
Update Mode: read-only

fetch.purgatory.purge.interval.requests

获取请求炼狱的清除间隔(以请求数为单位)

Type: int
Default: 1000
Valid Values:
Importance: medium
Update Mode: read-only

group.initial.rebalance.delay.ms

组协调员在执行第一次重新平衡之前等待更多消费者加入新组的时间。较长的延迟意味着可能会减少重新平衡,但会增加处理开始之前的时间。

Type: int
Default: 3000 (3 seconds)
Valid Values:
Importance: medium
Update Mode: read-only

group.max.session.timeout.ms

注册消费者允许的最大会话超时。较长的超时使消费者有更多的时间在心跳之间处理消息,但代价是检测故障的时间更长。

Type: int
Default: 1800000(30分钟)
Valid Values:
Importance: medium
Update Mode: read-only

group.max.size

单个消费组可以容纳的最大消费者数量。

Type: int
Default: 2147483647
Valid Values: [1,...]
Importance: medium
Update Mode: read-only

group.min.session.timeout.ms

注册消费者允许的最短会话超时。更短的超时会导致更快的故障检测,但代价是更频繁的消费者心跳,这可能会压垮代理资源。

Type: int
Default: 6000 (6 seconds)
Valid Values:
Importance: medium
Update Mode: read-only

initial.broker.registration.timeout.ms

最初向控制器仲裁注册时,在声明失败并退出代理进程之前等待的毫秒数。

Type: int
Default: 60000 (1 minute)
Valid Values:
Importance: medium
Update Mode: read-only

inter.broker.listener.name

用于代理之间通信的侦听器名称。如果未设置,则侦听器名称由 security.inter.broker.protocol 定义。同时设置此属性和 security.inter.broker.protocol 属性是错误的。

Type: string
Default: null
Valid Values:
Importance: medium
Update Mode: read-only

inter.broker.protocol.version

指定将使用哪个版本的代理间协议。
在所有代理升级到新版本后,这通常会受到影响。
一些有效值的示例为: 0.8.0、0.8.1、0.8.1.1、0.8.2、0.8.2.0、0.8.2.1、0.9.0.0、0.9.0.1 检查 MetadataVersion 以获取完整列表。

Type: string
Default: 3.5-IV2
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-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 [0100]-IV0、2.2-IV1、2.3-IV0、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, 3.3-IV0, 3.3-IV1, 3.3-IV2, 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2]
Importance: medium
Update Mode: read-only

log.cleaner.backoff.ms

The amount of time to sleep when there are no logs to clean

Type:long
Default:15000 (15 seconds)
Valid Values:[0,...]
Importance:medium
Update Mode:cluster-wide

log.cleaner.dedupe.buffer.size

The total memory used for log deduplication across all cleaner threads

Type:long
Default:134217728
Valid Values:
Importance:medium
Update Mode:cluster-wide

log.cleaner.delete.retention.ms

The amount of time to retain delete tombstone markers for log compacted topics. This setting also gives a bound on the time in which a consumer must complete a read if they begin from offset 0 to ensure that they get a valid snapshot of the final stage (otherwise delete tombstones may be collected before they complete their scan).

Type:long
Default:86400000 (1 day)
Valid Values:[0,...]
Importance:medium
Update Mode:cluster-wide

log.cleaner.enable

Enable the log cleaner process to run on the server. Should be enabled if using any topics with a cleanup.policy=compact including the internal offsets topic. If disabled those topics will not be compacted and continually grow in size.

Type:boolean
Default:true
Valid Values:
Importance:medium
Update Mode:read-only

log.cleaner.io.buffer.load.factor

Log cleaner dedupe buffer load factor. The percentage full the dedupe buffer can become. A higher value will allow more log to be cleaned at once but will lead to more hash collisions

Type:double
Default:0.9
Valid Values:
Importance:medium
Update Mode:cluster-wide

log.cleaner.io.buffer.size

The total memory used for log cleaner I/O buffers across all cleaner threads

Type:int
Default:524288
Valid Values:[0,...]
Importance:medium
Update Mode:cluster-wide

log.cleaner.io.max.bytes.per.second

The log cleaner will be throttled so that the sum of its read and write i/o will be less than this value on average

Type:double
Default:1.7976931348623157E308
Valid Values:
Importance:medium
Update Mode:cluster-wide

log.cleaner.max.compaction.lag.ms

The maximum time a message will remain ineligible for compaction in the log. Only applicable for logs that are being compacted.

Type:long
Default:9223372036854775807
Valid Values:[1,...]
Importance:medium
Update Mode:cluster-wide

log.cleaner.min.cleanable.ratio

The minimum ratio of dirty log to total log for a log to eligible for cleaning. If the log.cleaner.max.compaction.lag.ms or the log.cleaner.min.compaction.lag.ms configurations are also specified, then the log compactor considers the log eligible for compaction as soon as either: (i) the dirty ratio threshold has been met and the log has had dirty (uncompacted) records for at least the log.cleaner.min.compaction.lag.ms duration, or (ii) if the log has had dirty (uncompacted) records for at most the log.cleaner.max.compaction.lag.ms period.

Type:double
Default:0.5
Valid Values:[0,...,1]
Importance:medium
Update Mode:cluster-wide

log.cleaner.min.compaction.lag.ms

消息在日志中保持未压缩状态的最短时间。仅适用于正在压缩的日志。

Type: long
Default: 0
Valid Values: [0,...]
Importance: medium
Update Mode: cluster-wide

log.cleaner.threads

用于日志清理的后台线程数

Type: int
Default: 1
Valid Values: [0,...]
Importance: medium
Update Mode: cluster-wide

log.cleanup.policy

超出保留窗口的段的默认清理策略。以逗号分隔的有效策略列表。有效的策略是:“删除”和“紧凑”

Type: list
Default: delete
Valid Values: [compact, delete]
Importance: medium
Update Mode: cluster-wide

log.index.interval.bytes

我们向偏移索引添加条目的时间间隔

Type: int
Default: 4096 (4 kibibytes)
Valid Values: [0,...]
Importance: medium
Update Mode: cluster-wide

log.index.size.max.bytes

偏移索引的最大大小(以字节为单位)

Type: int
Default: 10485760 (10 mebibytes)
Valid Values: [4,...]
Importance: medium
Update Mode: cluster-wide

log.message.format.version

指定代理将用于将消息附加到日志的消息格式版本。该值应该是有效的 MetadataVersion。一些示例是:0.8.2、0.9.0.0、0.10.0,请检查 MetadataVersion 了解更多详细信息。通过设置特定的消息格式版本,用户可以证明磁盘上的所有现有消息都小于或等于指定的版本。错误地设置此值将导致使用旧版本的消费者崩溃,因为他们将收到他们不理解的格式的消息。

Type: 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-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 [0100]-IV0、2.2-IV1、2.3-IV0、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, 3.3-IV0, 3.3-IV1, 3.3-IV2, 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2]
Importance: medium
Update Mode: read-only

log.message.timestamp.difference.max.ms

代理收到消息时的时间戳与消息中指定的时间戳之间允许的最大差异。如果 log.message.timestamp.type=CreateTime,则如果时间戳差异超过此阈值,消息将被拒绝。如果log.message.timestamp.type=LogAppendTime,则忽略此配置。允许的最大时间戳差异应不大于log.retention.ms,以避免不必要的频繁日志滚动。

Type: long
Default: 9223372036854775807
Valid Values: [0,...]
Importance: medium
Update Mode: cluster-wide

log.message.timestamp.type

定义消息中的时间戳是消息创建时间还是日志追加时间。该值应该是“CreateTime”或“LogAppendTime”

Type: string
Default: CreateTime
Valid Values: [CreateTime, LogAppendTime]
Importance: medium
Update Mode: cluster-wide

log.preallocate

创建新段时是否应该预先分配文件?如果您在 Windows 上使用 Kafka,则可能需要将其设置为 true。

Type: boolean
Default: false
Valid Values:
Importance: medium
Update Mode: cluster-wide

log.retention.check.interval.ms

日志清理器检查是否有日志符合删除条件的频率(以毫秒为单位)

Type: long
Default: 300000 (5 minutes)
Valid Values: [1,...]
Importance: medium
Update Mode: read-only

max.connection.creation.rate

我们在任何时候允许代理的最大连接创建速率。侦听器级别限制还可以通过在配置名称前添加侦听器前缀来配置,例如,listener.name.internal.max.connection.creation.rate应根据代理容量配置代理范围的连接速率限制,而应根据应用程序要求配置侦听器限制。如果达到侦听器或代理限制(代理间侦听器除外),新连接将受到限制。仅当达到侦听器级别的速率限制时,才会限制代理间侦听器上的连接。

Type: int
Default: 2147483647
Valid Values: [0,...]
Importance: medium
Update Mode: cluster-wide

max.connections

我们在任何时候允许代理的最大连接数。除了使用 max.connections.per.ip 配置的任何每 ip 限制之外,还应用此限制。侦听器级别限制也可以通过在配置名称前添加侦听器前缀来配置,例如listener.name.internal.max.connections. 代理范围的限制应根据代理容量进行配置,而侦听器限制应根据应用程序要求进行配置。如果达到侦听器或代理限制,则新连接将被阻止。即使达到代理范围的限制,也允许代理间侦听器上的连接。在这种情况下,另一个侦听器上最近最少使用的连接将被关闭。

Type: int
Default: 2147483647
Valid Values: [0,...]
Importance: medium
Update Mode: cluster-wide

max.connections.per.ip

我们允许来自每个 IP 地址的最大连接数。如果使用 max.connections.per.ip.overrides 属性配置了覆盖,则可以将其设置为 0。如果达到限制,来自该 IP 地址的新连接将被丢弃。

Type: int
Default: 2147483647
Valid Values: [0,...]
Importance: medium
Update Mode: cluster-wide

max.connections.per.ip.overrides

每个 IP 或主机名的逗号分隔列表将覆盖默认的最大连接数。示例值为“hostName:100,127.0.0.1:200”

Type: string
Default: ""
Valid Values:
Importance: medium
Update Mode: cluster-wide

max.incremental.fetch.session.cache.slots

我们将维护的增量获取会话的最大数量。

Type: int
Default: 1000
Valid Values: [0,...]
Importance: medium
Update Mode: read-only

num.partitions

每个主题的默认日志分区数

Type: int
Default: 1
Valid Values: [1,...]
Importance: medium
Update Mode: read-only

password.encoder.old.secret

用于对动态配置的密码进行编码的旧秘密。仅当更新机密时才需要这样做。如果指定,所有动态编码的密码都将使用此旧密钥进行解码,并在代理启动时使用password.encoder.secret 重新编码。

Type: password
Default: null
Valid Values:
Importance: medium
Update Mode: read-only

password.encoder.secret

用于编码该代理的动态配置密码的秘密。

Type: password
Default: null
Valid Values:
Importance: medium
Update Mode: read-only

principal.builder.class

实现 KafkaPrincipalBuilder 接口的类的完全限定名称,用于构建授权期间使用的 KafkaPrincipal 对象。如果未定义主体构建器,则默认行为取决于所使用的安全协议。ssl.principal.mapping.rules对于 SSL 身份验证,将使用应用于客户端证书中的可分辨名称(如果提供了)定义的规则派生主体;否则,如果不需要客户端身份验证,则主体名称将为 ANONYMOUS。sasl.kerberos.principal.to.local.rules对于 SASL 身份验证,如果使用 GSSAPI,将使用定义的规则派生主体,对于其他机制则使用 SASL 身份验证 ID。对于明文,主体将是匿名的。

Type: class
Default: org.apache.kafka.common.security.authenticator.DefaultKafkaPrincipalBuilder
Valid Values:
Importance: medium
Update Mode: per-broker

producer.purgatory.purge.interval.requests

生产者请求炼狱的清除间隔(以请求数为单位)

Type: int
Default: 1000
Valid Values:
Importance: medium
Update Mode: read-only

queued.max.request.bytes

在不再读取请求之前允许的排队字节数

Type: long
Default: -1
Valid Values:
Importance: medium
Update Mode: read-only

replica.fetch.backoff.ms

发生获取分区错误时休眠的时间量。

Type: int
Default: 1000 (1 second)
Valid Values: [0,...]
Importance: medium
Update Mode: read-only

replica.fetch.max.bytes

尝试为每个分区获取的消息字节数。这不是绝对最大值,如果提取的第一个非空分区中的第一个记录批次大于此值,仍然会返回该记录批次以确保可以取得进展。代理接受的最大记录批量大小是通过message.max.bytes(代理配置)或max.message.bytes(主题配置)定义的。

Type: int
Default: 1048576 (1 mebibyte)
Valid Values:[0,...]
Importance:medium
Update Mode:read-only

replica.fetch.response.max.bytes

Maximum bytes expected for the entire fetch response. Records are fetched in batches, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that progress can be made. As such, this is not an absolute maximum. The maximum record batch size accepted by the broker is defined via message.max.bytes (broker config) or max.message.bytes (topic config).

Type:int
Default:10485760 (10 mebibytes)
Valid Values:[0,...]
Importance:medium
Update Mode:read-only

replica.selector.class

The fully qualified class name that implements ReplicaSelector. This is used by the broker to find the preferred read replica. By default, we use an implementation that returns the leader.

Type:string
Default:null
Valid Values:
Importance:medium
Update Mode:read-only

reserved.broker.max.id

Max number that can be used for a broker.id

Type:int
Default:1000
Valid Values:[0,...]
Importance:medium
Update Mode:read-only

sasl.client.callback.handler.class

The fully qualified name of a SASL client callback handler class that implements the AuthenticateCallbackHandler interface.

Type:class
Default:null
Valid Values:
Importance:medium
Update Mode:read-only

sasl.enabled.mechanisms

The list of SASL mechanisms enabled in the Kafka server. The list may contain any mechanism for which a security provider is available. Only GSSAPI is enabled by default.

Type:list
Default:GSSAPI
Valid Values:
Importance:medium
Update Mode:per-broker

sasl.jaas.config

SASL 连接的 JAAS 登录上下文参数采用 JAAS 配置文件使用的格式。JAAS 配置文件格式描述如下。该值的格式为:loginModuleClass controlFlag (optionName=optionValue)*;。对于代理,配置必须以侦听器前缀和小写的 SASL 机制名称作为前缀。例如,需要listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule;

Type: password
Default: null
Valid Values:
Importance: medium
Update Mode: per-broker

sasl.kerberos.kinit.cmd

Kerberos kinit 命令路径。

Type: string
Default: /usr/bin/kinit
Valid Values:
Importance: medium
Update Mode: per-broker

sasl.kerberos.min.time.before.relogin

刷新尝试之间的登录线程睡眠时间。

Type: long
Default: 60000
Valid Values:
Importance: medium
Update Mode: per-broker

sasl.kerberos.principal.to.local.rules

用于从主体名称映射到短名称(通常是操作系统用户名)的规则列表。规则按顺序进行评估,并且与主体名称匹配的第一条规则用于将其映射到短名称。列表中的任何后续规则都将被忽略。默认情况下,表单的主体名称{username}/{hostname}@{REALM}映射到{username}. 有关格式的更多详细信息,请参阅安全授权和 aclsKafkaPrincipalBuilder请注意,如果配置提供了 的扩展,则该配置将被忽略principal.builder.class

Type: list
Default: DEFAULT
Valid Values:
Importance: medium
Update Mode: per-broker

sasl.kerberos.service.name

Kafka 运行时使用的 Kerberos 主体名称。这可以在 Kafka 的 JAAS 配置或 Kafka 的配置中定义。

Type: string
Default: null
Valid Values:
Importance: medium
Update Mode: per-broker

sasl.kerberos.ticket.renew.jitter

添加到更新时间的随机抖动的百分比。

Type: double
Default: 0.05
Valid Values:
Importance: medium