Kafka 配置属性
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 代理配置属性
advertised.listeners
type: string
Default: null
Importance: high
Dynamic update: per-broker
如果
监听程序
与监听程序配置属性不同,则会向 ZooKeeper 发布给 ZooKeeper 以供客户端使用。在 IaaS 环境中,这可能与代理绑定的接口不同。如果没有设置,则使用监听程序
的值。与监听器
不同,公告 0.0.0.0 meta-address 无效。另外,与监听器
不同,此属性中可能会有重复的端口,以便配置一个监听程序来公告另一个侦听器的地址。在某些情况下,这在一些使用外部负载均衡器时很有用。auto.create.topics.enable
Type: boolean
Default: true
Importance: high
Dynamic update: read-only
在服务器上启用自动创建主题。
auto.leader.rebalance.enable
Type: boolean
Default: true
Importance: high
Dynamic update: read-only
启用自动领导平衡。后台线程定期检查分区领导的发布,由
leader.imbalance.check.interval.seconds
进行配置。如果领导不平衡超过leader.imbalance.per.broker.percentage
,则触发分区的首选领导机。background.threads
type: int
Default: 10
Valid Values: [1,…]
Importance: high
Dynamic update: cluster-wide
用于各种后台处理任务的线程数量。
broker.id
type: int
Default: -\":\"Importance: high
Dynamic update: read-only
此服务器的代理 ID。如果未设置,则会生成一个唯一代理 id。要避免 zookeeper 生成的代理 ID 和用户的 broker id 之间的冲突,生成的代理 ID 从 reserved.broker.max.id + 1 开始。
compression.type
type: string
Default: producer
Valid Values: [uncompressed, zstd, lz4, snappy, gzip, producer]
Importance: high
Dynamic update: cluster-wide
指定给定主题的最终压缩类型。此配置接受标准压缩代码('gzip', 'snappy', 'lz4', 'zstd')。它还接受 'uncompressed',它相当于没有压缩;而 'producer' 意味着保留由制作者设置的原始压缩代码。
control.plane.listener.name
type: string
Default: null
Importance: high
Dynamic update: read-only
用于控制器和代理间的通信的监听程序名称。代理将使用 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 On startup, the broker will start listening on "192.1.1.8:9094" with security protocol "SSL"。在控制器上,通过 zookeeper 发现代理公布的端点时,它将使用 control.plane.listener.name 来查找端点,它将用来建立到代理的连接。例如,如果代理公布的在 zookeeper 上的端的为: "endpoints" : ["INTERNAL://broker1.example.com:9092","EXTERNAL://broker1.example.com:9093","CONTROLLER://broker1.example.com:9094"] and the controller’s config is : listener.security.protocol.map = INTERNAL:PLAINTEXT, EXTERNAL:SSL, CONTROLLER:SSL control.plane.listener.name = CONTROLLER then controller will use "broker1.example.com:9094" with security protocol "SSL" to connect to the broker。如果没有明确配置,则默认值为 null,并且没有控制器连接的专用端点。如果明确配置,则该值不能与
inter.broker.listener.name
的值相同。controller.listener.names
type: string
Default: null
Importance: high
Dynamic update: read-only
控制器使用的监听程序名称的逗号分隔列表。这在 KRaft 模式下运行时需要。与控制器仲裁通信时,代理始终使用此列表中的第一个监听程序。注: 基于 ZK 的控制器不应设置此配置。
controller.quorum.election.backoff.max.ms
type: int
Default: 1000 (1 second)
Importance: high
Dynamic update: read-only
启动新选举前的最大时间(以毫秒为单位)。这在二进制 exponential backoff 机制中使用,有助于防止网格锁定的选举。
controller.quorum.election.timeout.ms
type: int
Default: 1000 (1 second)
Importance: high
Dynamic update: read-only
在触发新选举前,等待最大时间(毫秒)而无需从领导获取。
controller.quorum.fetch.timeout.ms
Type: int
Default: 2000 (2 秒)
Importance: high
Dynamic update: read-only
在成为投票者的候选和触发选举前,没有成功从当前领导机获取的最长时间;在要求出现新 epoch 前,从大多数仲裁接收最大时间,以查看是否有新的 epoch。
controller.quorum.voters
type: list
Default: ""
Valid Values: non-empty list
Importance: high
Dynamic update: read-only
以逗号分隔
{id}@{host}:{port}
:{port}:{port} 条目的逗号分隔列表中 voters 集合的 id/endpoint 信息映射。例如:1@localhost:9092,2@localhost:9093,3@localhost:9094
。delete.topic.enable
Type: boolean
Default: true
Importance: high
Dynamic update: read-only
启用删除主题。如果此配置关闭,通过管理工具删除主题将无效。
early.start.listeners
type: string
Default: null
Importance: high
Dynamic update: read-only
以逗号分隔的监听程序名称列表,可以在授权器完成初始化前启动。当授权器依赖于集群本身进行引导时,这很有用,因为 StandardAuthorizer (在元数据日志中存储 ACL 的情况) 默认情况下,controller.listener.names 中包含的所有监听程序也会早期启动监听程序。如果侦听器接受外部流量,则不应显示在此列表中。
leader.imbalance.check.interval.seconds
Type: long
Default: 300
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
控制器触发分区重新平衡检查的频率。
leader.imbalance.per.broker.percentage
type: int
Default: 10
Importance: high
Dynamic update: read-only
每个代理允许的领导 imbalance 的比率。如果每个代理有超过这个值,控制器会触发领导平衡。该值以百分比形式指定。
监听器
type: string
Default: PLAINTEXT://:9092
Importance: high
Dynamic update: per-broker
侦听器列表 - 将要侦听的 URI 列表和侦听器名称。如果监听器名称不是安全协议,还必须设置
listener.security.protocol.map
。侦听器名称和端口号必须是唯一的。将 hostname 指定为 0.0.0.0 以绑定到所有接口。将 hostname 留空给默认接口。法律侦听器列表示例: PLAINTEXT://myhost:9092,SSL://:9091 CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093.log.dir
type: string
Default: /tmp/kafka-logs
Importance: high
Dynamic update: read-only
保存日志数据的目录(log.dirs 属性的补充)。
log.dirs
type: string
Default: null
Importance: high
Dynamic update: read-only
存储日志数据的目录的逗号分隔列表。如果没有设置,则使用 log.dir 的值。
log.flush.interval.messages
Type: long
Default: 9223372036854775807
Valid Values: [1,…]
Importance: high
Dynamic update: cluster-wide
在消息被刷新到磁盘之前,日志分区中积累的消息数。
log.flush.interval.ms
Type: long
Default: null
Importance: high
Dynamic update: cluster-wide
在刷新到磁盘前,任何主题中消息的最大时间(ms)保存在内存中。如果没有设置,则使用 log.flush.scheduler.interval.ms 中的值。
log.flush.offset.checkpoint.interval.ms
type: int
Default: 60000 (1 minute)
Valid Values: [0,…]
Importance: high
Dynamic update: read-only
我们更新最后一次清空的持久记录的频率,它充当日志恢复点。
log.flush.scheduler.interval.ms
Type: long
Default: 9223372036854775807
Importance: high
Dynamic update: read-only
日志冲刷检查是否有任何日志需要刷新到磁盘的频率。
log.flush.start.offset.checkpoint.interval.ms
type: int
Default: 60000 (1 minute)
Valid Values: [0,…]
Importance: high
Dynamic update: read-only
我们更新日志启动偏移的持久记录的频率。
log.retention.bytes
Type: long
Default: -\":\"Importance: high
Dynamic update: cluster-wide
在删除日志前的最大日志大小。
log.retention.hours
type: int
Default: 168
Importance: high
Dynamic update: read-only
在删除日志文件前(以小时为单位)保留日志文件的小时数,以及 log.retention.ms 属性。
log.retention.minutes
type: int
Default: null
Importance: high
Dynamic update: read-only
在删除日志文件前(以分钟为单位)保留日志文件的分钟数,次要到 log.retention.ms 属性。如果没有设置,则使用 log.retention.hours 的值。
log.retention.ms
Type: long
Default: null
Importance: high
Dynamic update: cluster-wide
在删除日志文件(以毫秒为单位)前保留日志文件的毫秒数(以毫秒为单位),则使用 log.retention.minutes 的值。如果设置为 -1,则不会应用时间限制。
log.roll.hours
type: int
Default: 168
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
新日志片段推出(以小时为单位)前的最大时间,次要到 log.roll.ms 属性。
log.roll.jitter.hours
type: int
Default: 0
Valid Values: [0,…]
Importance: high
Dynamic update: read-only
从 logRollTimeMillis (以小时为单位)中减去的最大 jitter,次要到 log.roll.jitter.ms 属性。
log.roll.jitter.ms
Type: long
Default: null
Importance: high
Dynamic update: cluster-wide
从 logRollTimeMillis 中减去的最大 jitter (以毫秒为单位)。如果没有设置,则使用 log.roll.jitter.hours 的值。
log.roll.ms
Type: long
Default: null
Importance: high
Dynamic update: cluster-wide
推出新日志段前的最大时间(以毫秒为单位)。如果没有设置,则使用 log.roll.hours 的值。
log.segment.bytes
Type: int
Default: 1073741824 (1 gibibyte)
Valid Values: [14,…]
Importance: high
Dynamic update: cluster-wide
单个日志文件的最大大小。
log.segment.delete.delay.ms
Type: long
Default: 60000 (1 minute)
Valid Values: [0,…]
Importance: high
Dynamic update: cluster-wide
从文件系统删除文件前等待的时间。
message.max.bytes
type: int
Default: 1048588
Valid Values: [0,…]
Importance: high
Dynamic update: cluster-wide
Kafka 允许的最大记录批处理大小(如果启用压缩,则在压缩后)。如果增加且有 0.10.2 旧的消费者,则用户的获取大小也必须增加,以便他们可以获取大量记录批处理。在最新的消息格式版本中,记录始终分组到批处理中,以提高效率。在以前的消息格式版本中,未压缩的记录不会分组到批处理中,此限制仅适用于那种记录。这可以为每个主题设置
max.message.bytes
配置。metadata.log.dir
type: string
Default: null
Importance: high
Dynamic update: read-only
此配置决定将集群的元数据日志置于 KRaft 模式的位置。如果没有设置,则元数据日志放置在 log.dirs 的第一个日志目录中。
metadata.log.max.record.bytes.between.snapshots
Type: long
Default: 20971520
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
这是生成新快照前的最新快照和高水位线之间的日志的最大字节数。默认值为 20971520。要根据经过的时间生成快照,请参阅
metadata.log.max.snapshot.interval.ms
配置。当达到最大时间间隔或达到最大字节数时,Kafka 节点会生成一个快照。metadata.log.max.snapshot.interval.ms
Type: long
Default: 3600000 (1 小时)
Valid Values: [0,…]
Importance: high
Dynamic update: read-only
如果日志中没有包含在最新快照中的记录,则等待生成快照的最大毫秒数。值为零可禁用基于时间的快照生成。默认值为 3600000。要根据元数据字节数生成快照,请参阅
metadata.log.max.record.bytes.between.snapshots
配置。当达到最大时间间隔或达到最大字节数时,Kafka 节点会生成一个快照。metadata.log.segment.bytes
type: int
Default: 1073741824 (1 gibibyte)
Valid Values: [12,…]
Importance: high
Dynamic update: read-only
单个元数据日志文件的最大大小。
metadata.log.segment.ms
Type: long
Default: 604800000 (7 days)
Importance: high
Dynamic update: read-only
推出新元数据日志文件前的最长时间(以毫秒为单位)。
metadata.max.retention.bytes
Type: long
Default: 104857600 (100 mebibytes)
Importance: high
Dynamic update: read-only
在删除旧快照和日志文件前,元数据日志和快照的最大大小。由于在删除任何日志前至少必须存在一个快照,因此这是一个软限制。
metadata.max.retention.ms
Type: long
Default: 604800000 (7 days)
Importance: high
Dynamic update: read-only
在删除元数据日志文件或快照前保留元数据日志文件或快照的毫秒数。由于在删除任何日志前至少必须存在一个快照,因此这是一个软限制。
min.insync.replicas
type: int
Default: 1
Valid Values: [1,…]
Importance: high
Dynamic update: cluster-wide
当制作者将 acks 设置为 "all" (或 "-1"),min.insync.replicas 指定必须确认写入的最小副本数才能被视为成功。如果无法满足这个最小值,则制作者会引发异常( NotEnoughReplicas 或 NotEnoughReplicasAfterAppend)。当一起使用时,min.insync.replicas 和 acks 允许您强制执行更大的持久性保证。典型的场景是创建一个复制因子为 3 的主题,将 min.insync.replicas 设置为 2,并使用 acks of "all" 生成。这将确保,当大多数副本没有收到写入时,生产者会引发异常。
node.id
type: int
Default: -\":\"Importance: high
Dynamic update: read-only
与此进程关联的角色的节点 ID 在
process.roles
非空时扮演。这是在 KRaft 模式下运行时需要的配置。num.io.threads
type: int
Default: 8
Valid Values: [1,…]
Importance: high
Dynamic update: cluster-wide
服务器用于处理请求的线程数量,其中可能包括磁盘 I/O。
num.network.threads
type: int
Default: 3
Valid Values: [1,…]
Importance: high
Dynamic update: cluster-wide
服务器用来接收来自网络的请求的线程数量,并向网络发送响应。
num.recovery.threads.per.data.dir
type: int
Default: 1
Valid Values: [1,…]
Importance: high
Dynamic update: cluster-wide
用于在启动时日志恢复的每个数据的线程数量,并在关闭时清除。
num.replica.alter.log.dirs.threads
type: int
Default: null
Importance: high
Dynamic update: read-only
可以在日志目录之间移动副本的线程数量,其中可能包括磁盘 I/O。
num.replica.fetchers
Type: int
Default: 1
Importance: high
Dynamic update: cluster-wide
用于从每个源代理复制记录的获取程序线程数量。每个代理上的获取器总数由
num.replica.fetchers
绑定,乘以集群中的代理数量。这个值可以提高后续程序中的 I/O 并行程度,以更高的 CPU 和内存利用率的成本为领导代理。offset.metadata.max.bytes
type: int
Default: 4096 (4 kibibytes)
Importance: high
Dynamic update: read-only
与偏移提交关联的元数据条目的最大大小。
offsets.commit.required.acks
Type: short
Default: -\":\"Importance: high
Dynamic update: read-only
提交前需要的 acks 可以被接受。通常,默认值(-1)不应被覆盖。
offsets.commit.timeout.ms
type: int
Default: 5000 (5 秒)
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
偏移提交将延迟,直到达到所有偏移主题的所有副本接收提交或此超时。这与制作者请求超时类似。
offsets.load.buffer.size
type: int
Default: 5242880
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
在将偏移加载到缓存中时(soft-limit,如果记录太大,则从偏移读取的批处理大小)。
offsets.retention.check.interval.ms
Type: long
Default: 600000 (10 minutes)
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
检查过时偏移的频率。
offsets.retention.minutes
type: int
Default: 10080
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
对于订阅的用户,特定分区的提交偏移将在消费者组丢失其所有消费者(例如为空)后过期并丢弃此保留周期,因为最后一次为分区提交偏移时间,且组不再订阅相应主题。对于独立消费者(使用手动分配),从上次提交起经过此保留周期后偏移将过期。请注意,当通过 delete-group 请求删除组时,其提交偏移也会在没有额外的保留周期的情况下被删除;还要通过 delete-topic 请求删除主题时,传播元数据更新该主题的任何提交偏移也会在没有额外的保留周期的情况下被删除。
offsets.topic.compression.codec
type: int
Default: 0
Importance: high
Dynamic update: read-only
偏移主题的压缩解码器 - 压缩可用于实现"atomic"提交。
offsets.topic.num.partitions
type: int
Default: 50
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
偏移提交主题的分区数量(部署后不应更改)。
offsets.topic.replication.factor
Description: short
Default: 3
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
偏移主题的复制因素(设置更高的值以确保可用性)。在集群大小满足这个复制因子要求前,内部主题创建将失败。
offsets.topic.segment.bytes
type: int
Default: 104857600 (100 mebibytes)
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
偏移主题片段字节应保持相对小,以便加快日志压缩和缓存负载。
process.roles
type: list
Default: ""
Valid Values: [broker, controller]
Importance: high
Dynamic update: read-only
此过程 play 的角色:'broker'、'controller' 或 'broker,controller'(如果两者都是)。此配置仅适用于 KRaft (Kafka Raft)模式(而不是 ZooKeeper)中的集群。为 Zookeeper 集群保留此配置未定义或为空。
queued.max.requests
type: int
Default: 500
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
阻塞网络线程前允许 data-plane 的排队请求数。
replica.fetch.min.bytes
type: int
Default: 1
Importance: high
Dynamic update: read-only
每个获取响应的预期最小字节。如果没有足够的字节,请等待
replica.fetch.wait.max.ms
(broker config)。replica.fetch.wait.max.ms
type: int
Default: 500
Importance: high
Dynamic update: read-only
后续副本发出的每个获取请求的最大等待时间。这个值应该始终小于 replica.lag.time.max.ms,以防止频繁地缩减 ISR 以实现低吞吐量主题。
replica.high.watermark.checkpoint.interval.ms
Type: long
Default: 5000 (5 秒)
Importance: high
Dynamic update: read-only
将高水位线保存到磁盘的频率。
replica.lag.time.max.ms
Type: long
Default: 30000 (30 秒)
Importance: high
Dynamic update: read-only
如果后续者没有发送任何获取请求,或者尚未被消耗到领导日志结束偏移时间,则领导将从 isr 中删除后续者。
replica.socket.receive.buffer.bytes
type: int
Default: 65536 (64 kibibytes)
Importance: high
Dynamic update: read-only
网络请求的套接字接收缓冲区。
replica.socket.timeout.ms
type: int
Default: 30000 (30 秒)
Importance: high
Dynamic update: read-only
网络请求的套接字超时。其值应至少为 replica.fetch.wait.max.ms。
request.timeout.ms
type: int
Default: 30000 (30 秒)
Importance: high
Dynamic update: read-only
配置控制客户端等待请求响应的最长时间。如果响应在超时前收到,客户端会在必要时重新发送请求,或者在重试已耗尽时失败请求。
sasl.mechanism.controller.protocol
type: string
Default: GSSAPI
Importance: high
Dynamic update: read-only
用于与控制器通信的 SASL 机制。默认为 GSSAPI。
socket.receive.buffer.bytes
type: int
Default: 102400 (100 kibibytes)
Importance: high
Dynamic update: read-only
套接字服务器套接字的 SO_RCVBUF 缓冲。如果值为 -1,则会使用 OS 默认值。
socket.request.max.bytes
type: int
Default: 104857600 (100 mebibytes)
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
套接字请求中的最大字节数。
socket.send.buffer.bytes
type: int
Default: 102400 (100 kibibytes)
Importance: high
Dynamic update: read-only
套接字服务器套接字的 SO_SNDBUF 缓冲。如果值为 -1,则会使用 OS 默认值。
transaction.max.timeout.ms
type: int
Default: 900000 (15 分钟)
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
事务允许的最大超时。如果客户端的请求事务时间超过这个值,代理会返回 InitProducerIdRequest 的错误。这可防止客户端太大超时,这可能会使消费者从事务中包含的主题读取。
transaction.state.log.load.buffer.size
type: int
Default: 5242880
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
在将制作者 ID 和事务加载到缓存中时(soft-limit,则覆盖事务日志片段的批处理大小,如果记录太大,则覆盖)。
transaction.state.log.min.isr
type: int
Default: 2
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
覆盖 min.insync.replicas 配置,用于事务主题。
transaction.state.log.num.partitions
type: int
Default: 50
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
事务主题的分区数量(在部署后不应更改)。
transaction.state.log.replication.factor
Description: short
Default: 3
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
事务主题的复制因素(设置更高以确保可用性)。在集群大小满足这个复制因子要求前,内部主题创建将失败。
transaction.state.log.segment.bytes
type: int
Default: 104857600 (100 mebibytes)
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
事务主题片段字节应保持相对小,以便加快日志压缩和缓存负载。
transactional.id.expiration.ms
type: int
Default: 604800000 (7 days)
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
在其事务 ID 过期前,事务协调器会等待,而不接收当前事务的任何事务状态更新。当事务仍在持续时,事务 ID 不会过期。
unclean.leader.election.enable
Type: boolean
Default: false
Importance: high
Dynamic update: cluster-wide
指明是否使 ISR 集中的副本选择为最后的手段,即使这样做可能会导致数据丢失。
zookeeper.connect
type: string
Default: null
Importance: high
Dynamic update: read-only
以
hostname:port
格式指定 ZooKeeper 连接字符串,其中 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
.zookeeper.connection.timeout.ms
type: int
Default: null
Importance: high
Dynamic update: read-only
客户端等待与 zookeeper 连接的最大时间。如果没有设置,则使用 zookeeper.session.timeout.ms 中的值。
zookeeper.max.in.flight.requests
type: int
Default: 10
Valid Values: [1,…]
Importance: high
Dynamic update: read-only
在阻塞前,客户端将发送到 Zookeeper 的最大未确认请求数量。
zookeeper.metadata.migration.enable
Type: boolean
Default: false
Importance: high
Dynamic update: read-only
启用 ZK 以 KRaft 迁移。
zookeeper.session.timeout.ms
type: int
Default: 18000 (18 秒)
Importance: high
Dynamic update: read-only
ZooKeeper 会话超时。
zookeeper.set.acl
Type: boolean
Default: false
Importance: high
Dynamic update: read-only
将 client 设置为使用安全 ACL。
broker.heartbeat.interval.ms
type: int
Default: 2000 (2 秒)
Importance: medium
Dynamic update: read-only
代理心跳之间的时间长度(毫秒)。在 KRaft 模式下运行时使用。
broker.id.generation.enable
Type: boolean
Default: true
Importance: medium
Dynamic update: read-only
在服务器上启用自动代理 ID 生成。启用为 reserved.broker.max.id 配置的值时,应检查。
broker.rack
type: string
Default: null
Importance: medium
Dynamic update: read-only
代理的机架.这将用于机架感知复制分配,以进行容错。示例:
RACK1、
us-east-1d
。broker.session.timeout.ms
type: int
Default: 9000 (9 秒)
Importance: medium
Dynamic update: read-only
如果没有进行心跳,代理租期最后的时间长度(以毫秒为单位)。在 KRaft 模式下运行时使用。
connections.max.idle.ms
Type: long
Default: 600000 (10 分钟)
Importance: medium
Dynamic update: read-only
空闲连接超时:服务器套接字处理器线程关闭闲置超过此的连接。
connections.max.reauth.ms
Type: long
Default: 0
Importance: medium
Dynamic update: read-only
当明确设置为正数(默认值 0 而不是正数)时,会话生命周期不会超过配置的值,将在客户端进行身份验证时传给 v2.2.0 或更高版本的客户端。代理将断开任何在会话生命周期内未重新验证的连接,然后用于重新身份验证以外的任何目的。配置名称可以选择在小写中带有监听器前缀和 SASL 机制名称作为前缀。例如,listener.name.sasl_ssl.oauthbearer.connections.max.reauth.ms=3600000。
controlled.shutdown.enable
Type: boolean
Default: true
Importance: medium
Dynamic update: read-only
启用服务器的受控关闭。
controlled.shutdown.max.retries
type: int
Default: 3
Importance: medium
Dynamic update: read-only
受控的关闭可能会因为多个原因失败。这决定了发生此类故障时重试次数。
controlled.shutdown.retry.backoff.ms
Type: long
Default: 5000 (5 秒)
Importance: medium
Dynamic update: read-only
在每次重试前,系统需要时间从导致之前故障的状态中恢复(Controller 故障切换、副本滞后等)。此配置决定了重试前要等待的时间。
controller.quorum.append.linger.ms
type: int
Default: 25
Importance: medium
Dynamic update: read-only
在将写入清除到磁盘前,领导机等待写入的时长(毫秒)。
controller.quorum.request.timeout.ms
type: int
Default: 2000 (2 秒)
Importance: medium
Dynamic update: read-only
配置控制客户端等待请求响应的最长时间。如果响应在超时前收到,客户端会在必要时重新发送请求,或者在重试已耗尽时失败请求。
controller.socket.timeout.ms
type: int
Default: 30000 (30 秒)
Importance: medium
Dynamic update: read-only
controller-to-broker 频道的套接字超时。
default.replication.factor
type: int
Default: 1
Importance: medium
Dynamic update: read-only
自动创建主题的默认复制因素。
delegation.token.expiry.time.ms
Type: long
Default: 86400000 (1 day)
Valid Values: [1,…]
Importance: medium
Dynamic update: read-only
需要续订令牌前的 miliseconds 的令牌有效时间。默认值 1 天。
delegation.token.master.key
Type: password
Default: null
Importance: medium
Dynamic update: read-only
DEPRECATED:应使用 delegation.token.secret.key 的别名,而不是此配置。
delegation.token.max.lifetime.ms
Type: long
Default: 604800000 (7 days)
Valid Values: [1,…]
Importance: medium
Dynamic update: read-only
令牌具有最大生命周期,但无法再续订。默认值为 7 天。
delegation.token.secret.key
Type: password
Default: null
Importance: medium
Dynamic update: read-only
用于生成和验证委托令牌的 secret 密钥。必须在所有代理间配置相同的密钥。如果密钥未设置为空字符串,代理将禁用委托令牌支持。
delete.records.purgatory.purge.interval.requests
type: int
Default: 1
Importance: medium
Dynamic update: read-only
删除记录请求的清除间隔(以请求数为单位)。
fetch.max.bytes
type: int
Default: 57671680 (55 mebibytes)
Valid Values: [1024,…]
Importance: medium
Dynamic update: read-only
我们将为获取请求返回的最大字节数。必须至少为 1024。
fetch.purgatory.purge.interval.requests
type: int
Default: 1000
Importance: medium
Dynamic update: read-only
获取请求的清除间隔(以请求数)。
group.initial.rebalance.delay.ms
type: int
Default: 3000 (3 秒)
Importance: medium
Dynamic update: read-only
在执行第一个重新平衡前,组协调器将等待更多消费者加入新组的时间。延迟时间较长意味着可能会减少重新平衡,但会增加处理开始的时间。
group.max.session.timeout.ms
type: int
Default: 1800000 (30 minutes)
Importance: medium
Dynamic update: read-only
注册使用者允许的最大会话超时。超时时间较长,消费者有足够的时间在心跳间处理信息,以更长的时间检测故障。
group.max.size
type: int
Default: 2147483647
Valid Values: [1,…]
Importance: medium
Dynamic update: read-only
单个消费者组可以容纳的最大使用者数量。
group.min.session.timeout.ms
type: int
Default: 6000 (6 秒)
Importance: medium
Dynamic update: read-only
注册使用者允许的最小会话超时。较短的超时会导致在更频繁的消费者心跳时更快地检测失败,这可能会给代理资源造成问题。
initial.broker.registration.timeout.ms
type: int
Default: 60000 (1 minute)
Importance: medium
Dynamic update: read-only
在最初使用控制器仲裁注册时,在声明失败并退出代理进程前要等待的毫秒。
inter.broker.listener.name
type: string
Default: null
Importance: medium
Dynamic update: read-only
用于代理间通信的监听程序名称。如果未设置,则监听器名称由 security.inter.broker.protocol 定义。同时设置这个和 security.inter.broker.protocol 属性是一个错误。
inter.broker.protocol.version
Type: string
Default: 3.4-IV0
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-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]
Importance: medium
Dynamic update: read-only
指定要使用的 inter-broker 协议的版本。这通常会在所有代理升级到新版本后被修复。某些有效值为: 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 Check MetadataVersion for the full list。
log.cleaner.backoff.ms
Type: long
Default: 15000 (15 秒)
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
没有日志清理时休眠的时间。
log.cleaner.dedupe.buffer.size
Type: long
Default: 134217728
Importance: medium
Dynamic update: cluster-wide
在所有清理线程中用于日志 deduplication 的总内存。
log.cleaner.delete.retention.ms
Type: long
Default: 86400000 (1 day)
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
为日志压缩主题保留 delete tombstone 标记的时间长度。此设置还赋予一个时间绑定,消费者在从偏移 0 开始时必须完成读取,以确保它们获得最终阶段的有效快照(否则可以收集到mbstones,然后再完成其扫描)。
log.cleaner.enable
Type: boolean
Default: true
Importance: medium
Dynamic update: read-only
启用日志清理进程在服务器上运行。如果使用带有 cleanup.policy=compact 的任何主题,包括内部偏移主题,则应启用。如果禁用了这些主题,则不会压缩并持续增加这些主题。
log.cleaner.io.buffer.load.factor
Type: double
Default: 0.9
Importance: medium
Dynamic update: cluster-wide
log cleaner dedupe buffer load factor.dedupe 缓冲区已满的百分比可能会变为.较高的值将允许一次清理更多日志,但会导致更多哈希冲突。
log.cleaner.io.buffer.size
type: int
Default: 524288
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
在所有清理线程中用于日志清理 I/O 缓冲区的总内存。
log.cleaner.io.max.bytes.per.second
Type: double
Default: 1.7976931348623157E308
Importance: medium
Dynamic update: cluster-wide
日志清理器将节流,以便其读取和写入 i/o 的总和小于这个值。
log.cleaner.max.compaction.lag.ms
Type: long
Default: 9223372036854775807
Valid Values: [1,…]
Importance: medium
Dynamic update: cluster-wide
在日志中,消息可以保持无法压缩的最长时间。仅适用于被压缩的日志。
log.cleaner.min.cleanable.ratio
Type: double
Default: 0.5
Valid Values: [0,…,1]
Importance: medium
Dynamic update: cluster-wide
日志的最小比率和总日志率,达到符合清理条件的日志。如果还指定了 log.cleaner.max.compaction.lag.ms 或 log.cleaner.min.compaction.lag.ms 配置,则日志紧凑器会在满足 log.cleaner.min.action.low.se.action.low.se.action.low.action.lag.se.action.lag.se.action.lagms 时视为符合压缩的日志,(i)脏比率阈值达到了脏比率阈值,并且日志至少具有 log.cleaner.min.compms 记录。 或(ii)如果日志具有最多 log.cleaner.max.compaction.lag.ms 周期的脏(未编译)记录。
log.cleaner.min.compaction.lag.ms
Type: long
Default: 0
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
日志中消息保持未编译的最小时间。仅适用于被压缩的日志。
log.cleaner.threads
type: int
Default: 1
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
用于日志清理的后台线程数量。
log.cleanup.policy
type: list
Default: delete
Valid Values: [compact, delete]
Importance: medium
Dynamic update: cluster-wide
保留窗口以外的片段的默认清理策略。以逗号分隔的有效策略列表。有效策略有:"delete" 和 "compact"。
log.index.interval.bytes
type: int
Default: 4096 (4 kibibytes)
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
在偏移索引中添加条目的时间间隔。
log.index.size.max.bytes
Type: int
Default: 10485760 (10 mebibytes)
Valid Values: [4,…]
Importance: medium
Dynamic update: cluster-wide
偏移索引的最大大小(以字节为单位)。
log.message.format.version
Type: 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]
Importance: medium
Dynamic update: read-only
指定代理用来将信息附加到日志中的消息格式版本。该值应该是有效的 MetadataVersion。一些示例为 0.8.2, 0.9.0.0, 0.10.0,检查 MetadataVersion 获取更多详细信息。通过设置特定的消息格式版本,用户正在认证磁盘上的所有现有消息都小于指定版本。设置这个值会错误地会导致带有旧版本的用户中断,因为它们将使用不理解的格式接收信息。
log.message.timestamp.difference.max.ms
Type: long
Default: 9223372036854775807
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
代理收到消息和消息中指定的时间戳时允许的最大差别。如果 log.message.timestamp.type=CreateTime,如果时间戳的区别超过这个阈值,则会拒绝消息。如果 log.message.timestamp.type=LogAppendTime。则允许的最大时间戳差异不会大于 log.retention.ms,以避免不必要的日志滚动。
log.message.timestamp.type
type: string
Default: CreateTime
Valid Values: [CreateTime, LogAppendTime]
Importance: medium
Dynamic update: cluster-wide
定义消息中的时间戳是消息创建时间还是日志附加时间。该值应该是
CreateTime
或LogAppendTime
。log.preallocate
Type: boolean
Default: false
Importance: medium
Dynamic update: cluster-wide
在创建新段时,应预分配文件?如果您在 Windows 上使用 Kafka,可能需要将其设置为 true。
log.retention.check.interval.ms
Type: long
Default: 300000 (5 minutes)
Valid Values: [1,…]
Importance: medium
Dynamic update: read-only
日志清理器检查日志清理的频率(毫秒)检查是否有资格删除日志。
max.connection.creation.rate
type: int
Default: 2147483647
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
在代理中允许的最大连接创建率。监听器级别限制也可以通过使用监听程序前缀作为前缀来配置,例如
listener.name.internal.max.connection.creation.rate
.Broker-wide 连接速率限制,则应根据代理容量配置侦听器限制,而应根据应用程序要求配置监听程序限制。如果达到监听器或代理限制,新的连接将会节流,但 inter-broker 侦听器除外。只有在达到监听器级速率限值时,inter-broker 侦听器的连接才会节流。max.connections
type: int
Default: 2147483647
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
在代理中允许的最大连接数。除了使用 max.connections.per.ip 配置的每ip 限制外,还会应用此限制。监听器级别限制也可以通过使用监听器前缀作为配置名称的前缀来配置,例如
listener.name.internal.max.connections
。应根据代理容量配置代理范围限制,而根据应用程序要求应配置监听程序限制。如果达到监听器或代理限制,则阻止新连接。即使达到代理范围的限制,也允许 inter-broker 侦听程序上的连接。在这种情况下,将关闭另一个侦听程序中最早使用的连接。max.connections.per.ip
type: int
Default: 2147483647
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
从每个 ip 地址允许的最大连接数。如果使用 max.connections.per.ip.overrides 属性配置覆盖,则可以将其设置为 0。如果达到限制,则会丢弃来自 ip 地址的新连接。
max.connections.per.ip.overrides
type: string
Default: ""
Importance: medium
Dynamic update: cluster-wide
以逗号分隔的 per-ip 或 hostname 列表覆盖到默认的最大连接数。示例值为 "hostName:100,127.0.0.1:200"。
max.incremental.fetch.session.cache.slots
type: int
Default: 1000
Valid Values: [0,…]
Importance: medium
Dynamic update: read-only
我们要维护的最大增量获取会话数。
num.partitions
type: int
Default: 1
Valid Values: [1,…]
Importance: medium
Dynamic update: read-only
每个主题的默认日志分区数量。
password.encoder.old.secret
Type: password
Default: null
Importance: medium
Dynamic update: read-only
用于动态配置的编码密码的旧 secret。这只在更新 secret 时才需要。如果指定,所有动态编码的密码都会使用这个旧 secret 进行解码,并在代理启动时使用 password.encoder.secret 重新编码。
password.encoder.secret
Type: password
Default: null
Importance: medium
Dynamic update: read-only
用于为这个代理动态配置的编码密码的 secret。
principal.builder.class
type: class
Default: org.apache.kafka.common.security.authenticator.DefaultKafkaPrincipalBuilder
Importance: medium
Dynamic update: per-broker
实施 KafkaPrincipalBuilder 接口的类的完全限定名称,用于构建在授权期间使用的 KafkaPrincipal 对象。如果没有定义主体构建器,则默认行为取决于使用中的安全协议。对于 SSL 身份验证,主体将使用由
ssl.principal.mapping.rules
定义的规则(如果提供)与客户端证书进行区分名称;否则,如果不需要客户端身份验证,则主体名称将为 ANONYMOUS。对于 SASL 身份验证,主体将使用sasl.kerberos.principal.to.local.rules
定义的规则派生,如果 GSSAPI 正在使用,则 SASL 身份验证 ID 则用于其他机制。对于 PLAINTEXT,主体将为 ANONYMOUS。producer.purgatory.purge.interval.requests
type: int
Default: 1000
Importance: medium
Dynamic update: read-only
制作者请求的清除间隔(以请求数) purgatory。
queued.max.request.bytes
Type: long
Default: -\":\"Importance: medium
Dynamic update: read-only
在读取更多请求前允许的排队字节数。
replica.fetch.backoff.ms
type: int
Default: 1000 (1 second)
Valid Values: [0,…]
Importance: medium
Dynamic update: read-only
获取分区错误发生时休眠时间。
replica.fetch.max.bytes
type: int
Default: 1048576 (1 mebibyte)
Valid Values: [0,…]
Importance: medium
Dynamic update: read-only
尝试为每个分区获取的消息字节数。这不是绝对的最大值,如果 fetch 的第一个非空分区中的第一个记录批处理大于这个值,则记录批处理仍会返回,以确保可以进行进度。代理接受的最大记录批处理大小通过
message.max.bytes
(broker config)或max.message.bytes
(topic config)定义。replica.fetch.response.max.bytes
type: int
Default: 10485760 (10 mebibytes)
Valid Values: [0,…]
Importance: medium
Dynamic update: read-only
整个获取响应的预期最大字节数。记录批量获取,如果获取的第一个非空分区中的第一个记录批处理大于这个值,则记录批处理仍会返回,以确保进行进度。因此,这不是绝对的最大值。代理接受的最大记录批处理大小通过
message.max.bytes
(broker config)或max.message.bytes
(topic config)定义。replica.selector.class
type: string
Default: null
Importance: medium
Dynamic update: read-only
实现 ReplicaSelector 的完全限定类名称。代理使用它来查找首选的读取副本。默认情况下,我们使用返回领导的实施。
reserved.broker.max.id
type: int
Default: 1000
Valid Values: [0,…]
Importance: medium
Dynamic update: read-only
可用于 broker.id 的最大数。
sasl.client.callback.handler.class
type: class
Default: null
Importance: medium
Dynamic update: read-only
实现 AuthenticateCallbackHandler 接口的 SASL 客户端回调处理器类的完全限定名称。
sasl.enabled.mechanisms
type: list
Default: GSSAPI
Importance: medium
Dynamic update: per-broker
Kafka 服务器中启用的 SASL 机制列表。列表中可以包含提供安全提供程序的任何机制。默认情况下仅启用 GSSAPI。
sasl.jaas.config
Type: password
Default: null
Importance: medium
Dynamic update: per-broker
用于 SASL 连接的 JAAS 登录上下文参数,其格式由 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。值的格式是:
loginModuleClass controlFlag (optionName=optionValue)*;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule;.sasl.kerberos.kinit.cmd
type: string
Default: /usr/bin/kinit
Importance: medium
Dynamic update: per-broker
Kerberos kinit 命令路径。
sasl.kerberos.min.time.before.relogin
Type: long
Default: 60000
Importance: medium
Dynamic update: per-broker
刷新尝试之间的登录线程睡眠时间。
sasl.kerberos.principal.to.local.rules
type: list
Default: DEFAULT
Importance: medium
Dynamic update: per-broker
从主体名称映射到短名称(通常是操作系统用户名)的规则列表。规则按顺序评估,第一个匹配主体名称的规则用于将其映射到短名称。列表中的任何后续规则都会被忽略。默认情况下,形式为
{username}/{hostname}@{REALM}
的主体名称映射到{username}
。有关格式的更多详细信息,请参阅安全 授权和 acl。请注意,如果principal.builder.class
配置提供了KafkaPrincipalBuilder
的扩展,则此配置会被忽略。sasl.kerberos.service.name
type: string
Default: null
Importance: medium
Dynamic update: per-broker
Kafka 运行的 Kerberos 主体名称。这可以在 Kafka 的 JAAS 配置或 Kafka 配置中定义。
sasl.kerberos.ticket.renew.jitter
type: double
Default: 0.05
Importance: medium
Dynamic update: per-broker
添加到续订时间的随机 jitter 百分比。
sasl.kerberos.ticket.renew.window.factor
type: double
Default: 0.8
Importance: medium
Dynamic update: per-broker
登录线程会处于睡眠状态,直到最后一次刷新到票据到期时间的指定窗口因子被达到,此时它将尝试续订票据。
sasl.login.callback.handler.class
type: class
Default: null
Importance: medium
Dynamic update: read-only
实现 AuthenticateCallbackHandler 接口的 SASL 登录回调处理器类的完全限定名称。对于代理,登录回调处理器配置必须以监听器前缀和 SASL 机制名称作为前缀作为前缀。例如,listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler。
sasl.login.class
type: class
Default: null
Importance: medium
Dynamic update: read-only
实现 Login 接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 SASL 机制名称前缀。For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin.
sasl.login.refresh.buffer.seconds
Type: short
Default: 300
Importance: medium
Dynamic update: per-broker
刷新凭证时,凭证过期前要维护的缓冲区时间(以秒为单位)。如果刷新的过期时间比缓冲区秒数接近,则会移动刷新以尽可能多地维护缓冲区时间。法律值介于 0 到 3600 之间(1 小时);如果没有指定值,则使用默认值 300 (5 分钟)。如果它们总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.min.period.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.min.period.seconds
Type: short
Default: 60
Importance: medium
Dynamic update: per-broker
在刷新凭证前,登录刷新线程需要最少的时间(以秒为单位)。法律值介于 0 到 900 (15 分钟);如果没有指定值,则使用默认值 60 (1 分钟)。如果其总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.buffer.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.factor
type: double
Default: 0.8
Importance: medium
Dynamic update: per-broker
登录刷新线程将休眠,直到达到了与凭证生命周期相关的指定窗口因子,在此期间它将尝试刷新凭证。法律值介于 0.5 (50%)和 1.0 (100%)之间,如果未指定值,则使用默认值 0.8 (80%)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.jitter
type: double
Default: 0.05
Importance: medium
Dynamic update: per-broker
与凭证生命周期相关的随机 jitter 的最大随机处理量,添加到登录刷新线程的睡眠时间中。法律值介于 0 到 0.25(25%)之间,如果没有指定值,则使用默认值 0.05(5%)。目前仅适用于 OAUTHBEARER。
sasl.mechanism.inter.broker.protocol
type: string
Default: GSSAPI
Importance: medium
Dynamic update: per-broker
用于代理间通信的 SASL 机制。默认为 GSSAPI。
sasl.oauthbearer.jwks.endpoint.url
type: string
Default: null
Importance: medium
Dynamic update: read-only
从中检索提供程序 JWKS (JSON Web Key Set) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S)或基于文件的 URL。如果 URL 基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商中检索。所有 then-current 密钥都将缓存到代理上,用于传入的请求。如果为 JWT 收到身份验证请求,其中包含尚未在缓存中"kid"标头声明值,则 JWKS 端点将根据需要重新查询。但是,代理在每个 sasl.oauthbearer.jwks.endpoint.refresh.ms 毫秒中轮询 URL,以便在收到包含它们的 JWT 请求前使用任何即将刷新缓存。如果 URL 基于文件,代理将在启动时从配置的位置加载 JWKS 文件。如果 JWT 包含不在 JWKS 文件中的"kid"标头值,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.token.endpoint.url
type: string
Default: null
Importance: medium
Dynamic update: read-only
OAuth/OIDC 身份提供程序的 URL。如果 URL 基于 HTTP (S),则它是签发者的令牌端点 URL,请求将根据 sasl.jaas.config 中的配置登录。如果 URL 基于文件,它指定一个包含由 OAuth/OIDC 身份提供程序发布的访问令牌(在 JWT 序列化形式)的文件,以用于授权。
sasl.server.callback.handler.class
type: class
Default: null
Importance: medium
Dynamic update: read-only
实现 AuthenticateCallbackHandler 接口的 SASL 服务器回调处理器类的完全限定名称。服务器回调处理程序必须在小写中带有监听器前缀和 SASL 机制名称作为前缀。例如,listener.name.sasl_ssl.plain.sasl.server.callback.handler.class=com.example.CustomPlainCallbackHandler。
sasl.server.max.receive.size
type: int
Default: 524288
Importance: medium
Dynamic update: read-only
在初始 SASL 身份验证前和期间允许的最大接收大小。默认接收大小为 512KB。GSSAPI 将请求限制为 64K,但对于自定义 SASL 机制,我们默认允许 512KB。在实践中,PLAIN、SCRAM 和 OAUTH 机制可以使用非常小的限制。
security.inter.broker.protocol
Description: string
Default: PLAINTEXT
Valid Values: [PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL]
Importance: medium
Dynamic update: read-only
用于在代理之间进行通信的安全协议。有效值为: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.这是一个同时设置这个和 inter.broker.listener.name 属性的错误。
socket.connection.setup.timeout.max.ms
Type: long
Default: 30000 (30 seconds)
Importance: medium
Dynamic update: read-only
客户端将等待套接字连接建立的最长时间。对于每个连续连接失败,连接设置超时将以指数级增长到此最大值。为避免连接失败,0.2 的随机因素将应用于超时,导致在计算值高于计算值的 20% 到 20% 之间的随机范围。
socket.connection.setup.timeout.ms
Type: long
Default: 10000 (10 秒)
Importance: medium
Dynamic update: read-only
客户端将等待套接字连接建立的时间。如果在超时前没有构建连接,客户端将关闭套接字频道。
socket.listen.backlog.size
type: int
Default: 50
Valid Values: [1,…]
Importance: medium
Dynamic update: read-only
套接字上待处理连接的最大数量。在 Linux 中,您可能还需要相应地配置
somaxconn
和tcp_max_syn_backlog
内核参数,以使配置生效。ssl.cipher.suites
type: list
Default: ""
Importance: medium
Dynamic update: per-broker
密码套件列表。这是身份验证、加密、MAC 和密钥交换算法的命名组合,用于使用 TLS 或 SSL 网络协议协商网络连接的安全设置。默认情况下支持所有可用的密码套件。
ssl.client.auth
type: string
Default: none
Valid Values: [required, requested, none]
Importance: medium
Dynamic update: per-broker
配置 kafka 代理以请求客户端身份验证。以下设置很常见:
-
ssl.client.auth=required
if set to required client authentication required. -
ssl.client.auth=requested
意味着客户端身份验证是可选的。如果需要,如果设置此选项,客户端可以选择不提供有关其自身的身份验证信息 -
SSL.client.auth=none
意味着不需要客户端身份验证。
-
ssl.enabled.protocols
type: list
Default: TLSv1.2,TLSv1.3
Importance: medium
Dynamic update: per-broker
为 SSL 连接启用的协议列表。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.2'。使用 Java 11 的默认值,如果客户端和服务器同时支持 TLSv1.3,则客户端和服务器将首选 TLSv1.3,否则将回退到 TLSv1.2(假设两者都至少支持 TLSv1.2)。这个默认值对于大多数情况来说应该可以正常工作。另请参阅
ssl.protocol
的配置文档。ssl.key.password
Type: password
Default: null
Importance: medium
Dynamic update: per-broker
密钥存储文件或 'ssl.keystore.key' 中指定的 PEM 密钥中的私钥密码。
ssl.keymanager.algorithm
type: string
Default: SunX509
Importance: medium
Dynamic update: per-broker
用于 SSL 连接的密钥管理器工厂使用的算法。Default 值是为 Java 虚拟机配置的密钥管理器工厂算法。
ssl.keystore.certificate.chain
Type: password
Default: null
Importance: medium
Dynamic update: per-broker
使用由 'ssl.keystore.type" 指定的格式的证书链。默认 SSL 引擎工厂只支持带有 X.509 证书列表的 PEM 格式。
ssl.keystore.key
Type: password
Default: null
Importance: medium
Dynamic update: per-broker
使用 'ssl.keystore.type" 指定的格式的私钥。默认 SSL 引擎工厂只支持带有 PKCS#8 密钥的 PEM 格式。如果密钥加密,则必须使用 'ssl.key.password' 指定密钥密码。
ssl.keystore.location
type: string
Default: null
Importance: medium
Dynamic update: per-broker
密钥存储文件的位置。这是可选的,可用于客户端双向身份验证。
ssl.keystore.password
Type: password
Default: null
Importance: medium
Dynamic update: per-broker
密钥存储文件的存储密码。这适用于客户端,只有在配置了 'ssl.keystore.location' 时才需要。PEM 格式不支持密钥存储密码。
ssl.keystore.type
type: string
Default: JKS
Importance: medium
Dynamic update: per-broker
密钥存储文件的文件格式。这对客户端是可选的。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。ssl.protocol
type: string
Default: TLSv1.3
Importance: medium
Dynamic update: per-broker
用于生成 SSLContext 的 SSL 协议。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.3'。这个值应该适用于大多数用例。最近的 JVM 中的允许值为 'TLSv1.2' 和 'TLSv1.3'。'TLS', 'TLSv1.1', 'SSL', 'SSLv2' 和 'SSLv3' 可能在较旧的 JVM 中被支持,但由于已知的安全漏洞,不建议使用它们的使用。使用这个配置和 'ssl.enabled.protocols' 的默认值,如果服务器不支持 'TLSv1.3',客户端将降级为 'TLSv1.2'。如果此配置被设置为 'TLSv1.2',则客户端将不会使用 'TLSv1.3',即使它是 ssl.enabled.protocols 中的一个值,且服务器只支持 'TLSv1.3'。
ssl.provider
type: string
Default: null
Importance: medium
Dynamic update: per-broker
用于 SSL 连接的安全提供程序的名称。默认值为 JVM 的默认安全提供程序。
ssl.trustmanager.algorithm
type: string
Default: PKIX
Importance: medium
Dynamic update: per-broker
信任管理器工厂用于 SSL 连接的算法。Default 值是为 Java 虚拟机配置的信任管理器工厂算法。
ssl.truststore.certificates
Type: password
Default: null
Importance: medium
Dynamic update: per-broker
可信证书,格式为 'ssl.truststore.type'。默认 SSL 引擎工厂仅支持使用 X.509 证书使用 PEM 格式。
ssl.truststore.location
type: string
Default: null
Importance: medium
Dynamic update: per-broker
信任存储文件的位置。
ssl.truststore.password
Type: password
Default: null
Importance: medium
Dynamic update: per-broker
信任存储文件的密码。如果没有设置密码,则仍将使用配置的信任存储文件,但会禁用完整性检查。PEM 格式不支持信任存储密码。
ssl.truststore.type
type: string
Default: JKS
Importance: medium
Dynamic update: per-broker
信任存储文件的文件格式。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。zookeeper.clientCnxnSocket
type: string
Default: null
Importance: medium
Dynamic update: read-only
在使用 ZooKeeper 的 TLS 连接时,通常设置为
org.apache.zookeeper.ClientCnxnSocketNetty
。覆盖通过同名zookeeper.clientCnxnSocket
系统属性设置的任何显式值。zookeeper.ssl.client.enable
type: boolean
Default: false
Importance: medium
Dynamic update: read-only
将客户端设置为在连接到 ZooKeeper 时使用 TLS。显式值覆盖通过
zookeeper.client.secure
系统属性设置的任何值(请注意不同的名称)。如果未设置任何值,则默认值为 false;如果为 true,zookeeper.clientCnxnSocket
必须设置为org.apache.zookeeper.ClientCnxnSocketNetty
);其他值可能会包括zookeeper.ssl.cipher.suites
,zookeeper.ssl.crl.enable
,zookeeper.ssl.enabled.protocols
,zookeeper.ssl.endpoint.identification.algorithm
,zookeeper.ssl.keystore.location
,zookeeper.ssl.keystore.password
,zookeeper.ssl.keystore.type
,zookeeper.ssl.ocsp.enable
,zookeeper.ssl.protocol
,zookeeper.ssl.truststore.location
,zookeeper.ssl.truststore.password
,zookeeper.ssl.truststore.type
.zookeeper.ssl.keystore.location
type: string
Default: null
Importance: medium
Dynamic update: read-only
将客户端证书与 ZooKeeper 的 TLS 连接一起使用时的密钥存储位置。覆盖通过
zookeeper.ssl.keyStore.location
系统属性设置的任何显式值(请注意 camelCase)。zookeeper.ssl.keystore.password
Type: password
Default: null
Importance: medium
Dynamic update: read-only
将客户端证书与 ZooKeeper 的 TLS 连接一起使用时,密钥存储密码。覆盖通过
zookeeper.ssl.keyStore.password
系统属性设置的任何显式值(请注意 camelCase)。请注意,zookeeper 不支持与密钥存储密码不同的密钥密码,因此请务必将密钥存储中的密钥密码设置为与密钥存储密码相同;否则,尝试连接 Zookeeper 将失败。zookeeper.ssl.keystore.type
type: string
Default: null
Importance: medium
Dynamic update: read-only
将客户端证书与 ZooKeeper 的 TLS 连接一起使用时,密钥存储类型。覆盖通过
zookeeper.ssl.keyStore.type
系统属性设置的任何显式值(请注意 camelCase)。默认值null
表示类型将根据密钥存储的文件名扩展名来自动探测。zookeeper.ssl.truststore.location
type: string
Default: null
Importance: medium
Dynamic update: read-only
使用 TLS 连接到 ZooKeeper 时的 truststore 位置。覆盖通过
zookeeper.ssl.trustStore.location
系统属性设置的任何显式值(请注意 camelCase)。zookeeper.ssl.truststore.password
Type: password
Default: null
Importance: medium
Dynamic update: read-only
使用 TLS 连接到 ZooKeeper 时的 truststore 密码。覆盖通过
zookeeper.ssl.trustStore.password
系统属性设置的任何显式值(请注意 camelCase)。zookeeper.ssl.truststore.type
type: string
Default: null
Importance: medium
Dynamic update: read-only
使用 TLS 连接 ZooKeeper 时的 truststore 类型。覆盖通过
zookeeper.ssl.trustStore.type
系统属性设置的任何显式值(请注意 camelCase)。默认值null
表示类型将根据信任存储的文件名扩展自动探测。alter.config.policy.class.name
type: class
Default: null
Importance: low
Dynamic update: read-only
用于验证的 changes 配置策略类。该类应实施
org.apache.kafka.server.policy.AlterConfigPolicy
接口。alter.log.dirs.replication.quota.window.num
type: int
Default: 11
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
要在内存中保留的示例数量会改变日志目录复制配额。
alter.log.dirs.replication.quota.window.size.seconds
type: int
Default: 1
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
每个样本的时间范围会改变日志目录复制配额。
authorizer.class.name
type: string
Default: ""
Valid Values: non-null string
Importance: low
Dynamic update: read-only
实现
org.apache.kafka.server.authorizer.Authorizer
接口的类的完全限定名称,代理将用于授权。auto.include.jmx.reporter
Type: boolean
Default: true
Importance: low
Dynamic update: read-only
已弃用。即使没有在
metric.reporters
中列出,也自动包含 JmxReporter。此配置将在 Kafka 4.0 中删除,用户应改为将org.apache.kafka.common.metrics.JmxReporter
包含在metric.reporters
中,以便启用 JmxReporter。client.quota.callback.class
type: class
Default: null
Importance: low
Dynamic update: read-only
实现 ClientQuotaCallback 接口的类的完全限定名称,用于决定应用到客户端请求的配额限制。默认情况下,应用存储在 ZooKeeper 中的 <user> 和 <client-id> 配额。对于任何给定请求,将应用与会话的用户主体和请求客户端 ID 匹配的最具体的配额。
connection.failed.authentication.delay.ms
type: int
Default: 100
Valid Values: [0,…]
Importance: low
Dynamic update: read-only
失败验证的连接关闭延迟:这是关闭连接的时间(以毫秒为单位)将在身份验证失败时延迟。这必须配置为小于 connection.max.idle.ms 以防止连接超时。
controller.quorum.retry.backoff.ms
type: int
Default: 20
Importance: low
Dynamic update: read-only
尝试重试失败的请求到给定主题分区前等待的时间。这可避免在某些故障情况下在严格的循环中重复发送请求。
controller.quota.window.num
type: int
Default: 11
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
为控制器修改配额在内存中保留的示例数量。
controller.quota.window.size.seconds
type: int
Default: 1
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
控制器修改配额的每个示例的时间范围。
create.topic.policy.class.name
type: class
Default: null
Importance: low
Dynamic update: read-only
应该用于验证的 create topic 策略类。该类应实施
org.apache.kafka.server.policy.CreateTopicPolicy
接口。delegation.token.expiry.check.interval.ms
Type: long
Default: 3600000 (1 小时)
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
扫描间隔以删除已过期的委托令牌。
kafka.metrics.polling.interval.secs
type: int
Default: 10
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
指标轮询间隔(以秒为单位)可在 kafka.metrics.reporters 实现中使用。
kafka.metrics.reporters
type: list
Default: ""
Importance: low
Dynamic update: read-only
用作 Yammer 指标定制报告器的类列表。报告者应该实现
kafka.metrics.KafkaMetricsReporter
trait。如果客户端希望对自定义报告器公开 JMX 操作,则自定义报告程序还需要实施 MBean 特征来扩展kafka.metrics.KafkaMetricsReporterMBean
特征,以便注册的 MBean 符合标准 MBean 约定。listener.security.protocol.map
Description: string
Default: PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
Importance: low
Dynamic update: per-broker
侦听器名称和安全协议之间的映射。这必须定义使同一安全协议在多个端口或 IP 中可用。例如,即使两者都需要 SSL,也可以分隔内部和外部流量。与之相反,用户可以将命名为 INTERNAL 和 EXTERNAL 的监听程序定义为:
INTERNAL:SSL,EXTERNAL:SSL
。如所示,键和值用冒号隔开,映射条目则用逗号分隔。每个侦听器名称应该仅在映射中出现一次。可以通过向配置名称中添加规范化前缀(监听程序名称为小写)为各个监听程序配置不同的安全(SSL 和 SASL)设置。例如,要为 INTERNAL 侦听器设置不同的密钥存储,将设置名为listener.name.internal.ssl.keystore.location
的配置。如果没有设置监听器名称的配置,则配置将回退到通用配置(如ssl.keystore.location
)。请注意,在 KRaft 中,如果不提供显式映射且没有使用其他安全协议,则假定从controller.listener.names
定义的监听程序名称到 PLAINTEXT 的默认映射。log.message.downconversion.enable
Type: boolean
Default: true
Importance: low
Dynamic update: cluster-wide
此配置控制是否启用了 down-conversion 消息格式来满足消费请求。当设置为
false
时,代理将不会对希望旧消息格式的消费者执行 down-conversion。对于来自较旧的客户端的消费请求,代理会以UNSUPPORTED_VERSION
错误响应。此配置不适用于复制才能遵循的任何消息格式转换。metadata.max.idle.interval.ms
type: int
Default: 500
Valid Values: [0,…]
Importance: low
Dynamic update: read-only
此配置控制活跃控制器应该将 no-op 记录写入元数据分区的频率。如果值为 0,则不会将 no-op 记录附加到元数据分区中。默认值为 500。
metric.reporters
type: list
Default: ""
Importance: low
Dynamic update: cluster-wide
用作指标报告器的类列表。通过实施
org.apache.kafka.common.metrics.MetricsReporter
接口,可以插入新指标创建通知的类。JmxReporter 始终包含在注册 JMX 统计数据中。metrics.num.samples
type: int
Default: 2
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
维护到计算指标的示例数量。
metrics.recording.level
type: string
Default: INFO
Importance: low
Dynamic update: read-only
指标的最高记录级别。
metrics.sample.window.ms
Type: long
Default: 30000 (30 seconds)
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
计算指标示例的时间窗口。
password.encoder.cipher.algorithm
type: string
Default: AES/CBC/PKCS5Padding
Importance: low
Dynamic update: read-only
用于动态配置的编码密码的 Cipher 算法。
password.encoder.iterations
type: int
Default: 4096
Valid Values: [1024,…]
Importance: low
Dynamic update: read-only
用于动态配置的编码密码的迭代计数。
password.encoder.key.length
type: int
Default: 128
Valid Values: [8,…]
Importance: low
Dynamic update: read-only
用于动态配置的编码密码的密钥长度。
password.encoder.keyfactory.algorithm
type: string
Default: null
Importance: low
Dynamic update: read-only
用于动态配置的编码密码的 SecretKeyFactory 算法。如果提供,则默认为 PBKDF2WithHmacSHA512 (如果可用),否则为 PBKDF2WithHmacSHA1。
producer.id.expiration.ms
type: int
Default: 86400000 (1 day)
Valid Values: [1,…]
Importance: low
Dynamic update: cluster-wide
主题分区领导将在生成者 ID 过期前等待的时间。当与它们关联的事务仍在持续时,生成者 ID 不会过期。请注意,如果因为主题的保留设置删除了来自制作者 ID 的最后一个写入,则制作者 ID 可能会很快过期。将此值设置为比
delivery.timeout.ms
相同的或更高,有助于防止重试和防止消息重复期间过期,但默认值应该适合于大多数用例。quota.window.num
type: int
Default: 11
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
为客户端配额保留在内存中的示例数量。
quota.window.size.seconds
type: int
Default: 1
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
客户端配额的每个示例的时间范围。
replication.quota.window.num
type: int
Default: 11
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
在内存中保留复制配额的示例数量。
replication.quota.window.size.seconds
type: int
Default: 1
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
复制配额的每个示例的时间范围。
sasl.login.connect.timeout.ms
type: int
Default: null
Importance: low
Dynamic update: read-only
(可选)外部身份验证供应商连接超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.read.timeout.ms
type: int
Default: null
Importance: low
Dynamic update: read-only
(可选)外部身份验证提供程序读取超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
Dynamic update: read-only
(可选)值(可选)值,以毫秒为单位,登录尝试外部身份验证提供程序之间的最长等待时间。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
Dynamic update: read-only
(可选)值(可选)值,以毫秒为单位,用于登录尝试外部身份验证提供程序之间的初始等待。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.oauthbearer.clock.skew.seconds
type: int
Default: 30
Importance: low
Dynamic update: read-only
(可选)值(以秒为单位)允许 OAuth/OIDC 身份提供程序和代理的时间之间的区别。
sasl.oauthbearer.expected.audience
type: list
Default: null
Importance: low
Dynamic update: read-only
(可选)代理的以逗号分隔的设置,用于验证为预期受众之一发布的 JWT。JWT 将检查是否有标准的 OAuth "aud" 声明,如果设置了这个值,代理将匹配 JWT 的"aud"声明中的值,以查看是否有完全匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.expected.issuer
type: string
Default: null
Importance: low
Dynamic update: read-only
(可选)代理用于验证 JWT 是由预期签发者创建的。JWT 将检查是否有标准的 OAuth"iss"声明,如果设置了这个值,代理将完全与 JWT 的"iss"声明中的内容匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.jwks.endpoint.refresh.ms
Type: long
Default: 3600000 (1 小时)
Importance: low
Dynamic update: read-only
(可选)值(可选)代理在刷新其 JWKS (JSON Web Key Set)缓存之间等待的时间(以毫秒为单位),其中包含验证 JWT 签名的密钥。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
Dynamic update: read-only
(可选)值(可选)值(以毫秒为单位),尝试从外部身份验证供应商检索 JWKS (JSON Web Key Set)之间的最长等待时间。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
Type: long
Default: 100
Importance: low
Dynamic update: read-only
(可选)值(可选)值,以毫秒为单位,用于来自外部身份验证提供程序的 JWKS (JSON Web Key Set)检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.scope.claim.name
type: string
Default: scope
Importance: low
Dynamic update: read-only
范围的 OAuth 声明通常命名为"scope",但这(可选)设置可以提供与 JWT 有效负载声明中包含的范围使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
Dynamic update: read-only
主题的 OAuth 声明通常名为"sub",但这(可选)设置可以提供与 JWT 有效负载声明中包含的主题使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
security.providers
type: string
Default: null
Importance: low
Dynamic update: read-only
可配置的创建者类列表,每个都返回实施安全算法的供应商。这些类应该实施
org.apache.kafka.common.security.auth.SecurityProviderCreator
接口。ssl.endpoint.identification.algorithm
type: string
Default: https
Importance: low
Dynamic update: per-broker
使用服务器证书验证服务器主机名的端点标识算法。
ssl.engine.factory.class
type: class
Default: null
Importance: low
Dynamic update: per-broker
用于提供 SSLEngine 对象的 org.apache.kafka.common.security.auth.SslEngineFactory 类型的类。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。
ssl.principal.mapping.rules
type: string
Default: DEFAULT
Importance: low
Dynamic update: read-only
用于从客户端证书到短名称的可分辨名称的规则列表。规则按顺序评估,第一个匹配主体名称的规则用于将其映射到短名称。列表中的任何后续规则都会被忽略。默认情况下,区分 X.500 证书的名称将是主体。有关格式的更多详细信息,请参阅安全 授权和 acl。请注意,如果
principal.builder.class
配置提供了 KafkaPrincipalBuilder 扩展,则此配置将被忽略。ssl.secure.random.implementation
type: string
Default: null
Importance: low
Dynamic update: per-broker
用于 SSL 加密操作的 SecureRandom PRNG 实现。
transaction.abort.timed.out.transaction.cleanup.interval.ms
type: int
Default: 10000 (10 秒)
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
回滚超时事务的时间间隔。
transaction.remove.expired.transaction.cleanup.interval.ms
type: int
Default: 3600000 (1 小时)
Valid Values: [1,…]
Importance: low
Dynamic update: read-only
删除因为
transactional.id.expiration.ms
传递而过期的事务的时间间隔。zookeeper.ssl.cipher.suites
type: list
Default: null
Importance: low
Dynamic update: read-only
指定 ZooKeeper TLS 协商(csv)中使用的启用的密码套件。覆盖通过
zookeeper.ssl.ciphersuites
系统属性明确设置的值(注意单个单词 "ciphersuites")。默认值null
表示启用的密码套件列表由使用的 Java 运行时决定。zookeeper.ssl.crl.enable
type: boolean
Default: false
Importance: low
Dynamic update: read-only
指定是否在 ZooKeeper TLS 协议中启用证书撤销列表。覆盖通过
zookeeper.ssl.crl
系统属性设置的任何显式值(请注意较短的名称)。zookeeper.ssl.enabled.protocols
type: list
Default: null
Importance: low
Dynamic update: read-only
指定 ZooKeeper TLS 协商(csv)中启用的协议。覆盖通过
zookeeper.ssl.enabledProtocols
系统属性设置的任何显式值(请注意 camelCase)。默认值null
表示启用的协议将是zookeeper.ssl.protocol
配置属性的值。zookeeper.ssl.endpoint.identification.algorithm
type: string
Default: HTTPS
Importance: low
Dynamic update: read-only
指定是否在 ZooKeeper TLS 协商过程中启用主机名验证,使用(不区分大小写)"https"表示 ZooKeeper 主机名验证已启用,并明确的空白值代表禁用它(禁用测试)。显式值覆盖通过
zookeeper.ssl.hostnameVerification
系统属性设置的任何 "true" 或 "false" 值(请注意不同的名称和值;true 表示 https 和 false 表示空白)。zookeeper.ssl.ocsp.enable
type: boolean
Default: false
Importance: low
Dynamic update: read-only
指定是否在 ZooKeeper TLS 协议中启用在线证书状态协议。覆盖通过
zookeeper.ssl.ocsp
系统属性设置的任何显式值(请注意较短的名称)。zookeeper.ssl.protocol
type: string
Default: TLSv1.2
Importance: low
Dynamic update: read-only
指定 ZooKeeper TLS 协商中使用的协议。显式值覆盖通过同名
zookeeper.ssl.protocol
系统属性设置的任何值。
第 2 章 主题配置属性
cleanup.policy
type: list
Default: delete
Valid Values: [compact, delete]
Server Default Property: log.cleanup.policy
Importance: medium
此配置指定用于日志片段的保留策略。当达到保留时间或大小限制时,"删除"策略(默认值)将丢弃旧的片段。"compact"策略将 启用日志压缩,它会保留每个密钥的最新值。也可以在逗号分隔列表中指定这两个策略(如 "delete,compact")。在这种情况下,旧片段将按保留时间和大小配置丢弃,而保留片段将被压缩。
compression.type
type : 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.ms
Type: 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.ms
Type: long
Default: 60000 (1 minute)
Valid Values: [0,…]
Server Default Property: log.segment.delete.delay.ms
Importance: medium
从文件系统删除文件前等待的时间。
flush.messages
Type: long
Default: 9223372036854775807
Valid Values: [1,…]
Server Default Property: log.flush.interval.messages
Importance: medium
此设置允许指定间隔,我们将强制将写入日志的 fsync 数据。例如,如果它被设置为 1,则每个消息后都会 fsync ;如果它是 5,我们会在每五个消息后 fsync。通常,我们建议您不要设置它,并将复制用于持久性并允许操作系统的后台清除功能,因为它效率更高。此设置可以基于每个主题覆盖(请参阅 每个主题配置部分)。
flush.ms
Type: long
Default: 9223372036854775807
Valid Values: [0,…]
Server Default Property: log.flush.interval.ms
Importance: medium
此设置允许指定时间间隔,我们将强制将写入日志的 fsync 数据。例如,如果它被设置为 1000,则我们会在 1000 毫秒后执行 fsync。通常,我们建议您不要设置它,并将复制用于持久性并允许操作系统的后台清除功能,因为它效率更高。
follower.replication.throttled.replicas
type: list
Default: ""
Valid Values: [partitionId]:[brokerId],[partitionId]:[brokerId],…
Server Default Property: follower.replication.throttled.replicas
Importance: medium
在后续一侧应该节流日志复制的副本列表。该列表应该以 [PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:… 或 wildcard '*' 的形式描述一组副本,可用于节流这个主题的所有副本。
index.interval.bytes
type: int
Default: 4096 (4 kibibytes)
Valid Values: [0,…]
Server Default Property: log.index.interval.bytes
Importance: medium
此设置控制 Kafka 在其偏移索引中添加索引条目的频率。默认设置可确保我们大约每 4096 字节对消息进行索引。通过更多索引,读取可以更接近日志中的确切位置,但可以使索引更大。您可能不需要更改此设置。
leader.replication.throttled.replicas
type: 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.ms
Type: long
Default: 9223372036854775807
Valid Values: [1,…]
Server Default Property: log.cleaner.max.compaction.lag.ms
Importance: medium
在日志中,消息可以保持无法压缩的最长时间。仅适用于被压缩的日志。
max.message.bytes
type: int
Default: 1048588
Valid Values: [0,…]
Server Default Property: message.max.bytes
Importance: medium
Kafka 允许的最大记录批处理大小(如果启用压缩,则在压缩后)。如果增加且有 0.10.2 旧的消费者,则用户的获取大小也必须增加,以便他们可以获取大量记录批处理。在最新的消息格式版本中,记录始终分组到批处理中,以提高效率。在以前的消息格式版本中,未压缩的记录不会分组到批处理中,此限制仅适用于这种情况的单个记录。
message.format.version
Type: 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.ms
Type: 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.type
Description: string
Default: CreateTime
Valid Values: [CreateTime, LogAppendTime]
Server Default Property: log.message.timestamp.type
Importance: medium
定义消息中的时间戳是消息创建时间还是日志附加时间。该值应该是
CreateTime
或LogAppendTime
。min.cleanable.dirty.ratio
Type: 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.ms
Type: long
Default: 0
Valid Values: [0,…]
Server Default Property: log.cleaner.min.compaction.lag.ms
Importance: medium
日志中消息保持未编译的最小时间。仅适用于被压缩的日志。
min.insync.replicas
type: 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,并使用acks
of "all" 生成。这将确保,当大多数副本没有收到写入时,生产者会引发异常。preallocate
Type: boolean
Default: false
Server Default Property: log.preallocate
Importance: medium
在创建新日志片段时,如果我们应该预先分配磁盘上的文件,则为 true。
retention.bytes
Type: long
Default: -\":\"Server Default Property: log.retention.bytes
Importance: medium
此配置控制分区(由日志片段组成)的最大大小,然后再丢弃旧日志片段以释放空间(如果我们使用"删除"保留策略)。默认情况下,没有限制时间限制。由于此限制在分区级别强制实施,因此请将分区数量乘以要计算字节的主题保留数。
retention.ms
Type: long
Default: 604800000 (7 days)
Valid Values: [-1,…]
Server Default Property: log.retention.ms
Importance: medium
此配置控制我们在使用"删除"保留策略前,在丢弃旧日志片段前保留一个日志的最大时间,以便释放空间。这代表了一个 SLA,了解消费者如何读取其数据。如果设置为 -1,则不会应用时间限制。
segment.bytes
Description: int
Default: 1073741824 (1 gibibyte)
Valid Values: [14,…]
Server Default Property: log.segment.bytes
Importance: medium
此配置控制日志的片段文件大小。保留和清理始终一次执行一个文件,因此较大的片段大小意味着较少的文件,但对保留进行更精细的控制。
segment.index.bytes
type: int
Default: 10485760 (10 mebibytes)
Valid Values: [4,…]
Server Default Property: log.index.size.max.bytes
Importance: medium
此配置控制将偏移映射到文件位置的索引大小。我们预先分配这个索引文件,仅在日志推出后缩小该文件。您通常不需要更改此设置。
segment.jitter.ms
Type: long
Default: 0
Valid Values: [0,…]
Server Default Property: log.roll.jitter.ms
Importance: medium
从调度的片段汇总中减去了最大随机 jitter,以避免出现片段滚动的限制。
segment.ms
Type: long
Default: 604800000 (7 days)
Valid Values: [1,…]
Server Default Property: log.roll.ms
Importance: medium
此配置控制在之后 Kafka 将强制日志滚动的时间,即使段文件没有满,以确保保留可以删除或压缩旧数据。
unclean.leader.election.enable
type: boolean
Default: false
Server Default Property: unclean.leader.election.enable
Importance: medium
指明是否使 ISR 集中的副本选择为最后的手段,即使这样做可能会导致数据丢失。
message.downconversion.enable
Description: boolean
Default: true
Server Default Property: log.message.downconversion.enable
Importance: low
此配置控制是否启用了 down-conversion 消息格式来满足消费请求。当设置为
false
时,代理将不会对希望旧消息格式的消费者执行 down-conversion。对于来自较旧的客户端的消费请求,代理会以UNSUPPORTED_VERSION
错误响应。此配置不适用于复制才能遵循的任何消息格式转换。
第 3 章 消费者配置属性
key.deserializer
type: class
Importance: high
实施
org.apache.kafka.common.serialization.Deserializer
接口的密钥的反序列化类。value.deserializer
type: class
Importance: high
deserializer 类用于实施
org.apache.kafka.common.serialization.Deserializer
接口的值。bootstrap.servers
type: list
Default: ""
Valid Values: non-null string
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处指定的服务器的所有服务器进行引导 - 此列表仅影响用于发现整套服务器的初始主机。此列表应该采用
host1:port1,host2:port2,…
的形式。由于这些服务器仅用于初始连接来发现完整的群集成员(这可能会动态更改),此列表不需要包含完整的服务器集合(但在服务器停机的情况下可能需要多个服务器)。fetch.min.bytes
type: int
Default: 1
Valid Values: [0,…]
Importance: high
服务器应该为获取请求返回的最小数据量。如果数据不足,请求将在回答请求之前等待大量数据。默认设置为 1 字节表示,当单个字节数据可用或获取请求超时等待数据到达时,会马上处理获取请求。把它设置为大于 1 的某些内容将导致服务器等待大量数据累积,这会以一些额外的延迟的成本提高服务器吞吐量。
group.id
Type: string
Default: null
Importance: high
标识此消费者所属的消费者组的唯一字符串。如果消费者使用 subscription
(topic)
或基于 Kafka 的偏移管理策略,则需要此属性。heartbeat.interval.ms
Type: int
Default: 3000 (3 秒)
Importance: high
使用 Kafka 的组管理功能时,心跳到消费者协调器之间的预期时间。心跳用于确保消费者的会话保持活跃状态,并在新消费者加入或离开组时进行重新平衡。该值必须小于
session.timeout.ms
,但设置的值通常不应超过这个值的 1/3。它甚至可以降低以控制正常重新平衡的预期时间。max.partition.fetch.bytes
type: int
Default: 1048576 (1 mebibyte)
Valid Values: [0,…]
Importance: high
服务器将返回的每个分区的最大数据量。记录由消费者批量获取。如果获取的第一个非空分区中的第一个记录批处理大于这个限制,则仍然会返回批处理,以确保消费者能够进行进度。代理接受的最大记录批处理大小通过
message.max.bytes
(broker config)或max.message.bytes
(topic config)定义。如需限制消费者请求大小,请参阅 fetch.max.bytes。session.timeout.ms
Type: int
Default: 45000 (45 秒)
Importance: high
使用 Kafka 组管理功能时用于检测客户端故障的超时。客户端发送定期心跳以指明其存活度到代理。如果在此会话超时前代理没有接收心跳,则代理将从组中删除此客户端并启动重新平衡。请注意,该值必须在允许范围内,由
group.min.session.timeout.ms
和group.max.session.timeout.ms
进行配置。ssl.key.password
Type: password
Default: null
Importance: high
密钥存储文件或 'ssl.keystore.key' 中指定的 PEM 密钥中的私钥密码。
ssl.keystore.certificate.chain
Type: password
Default: null
Importance: high
使用由 'ssl.keystore.type" 指定的格式的证书链。默认 SSL 引擎工厂只支持带有 X.509 证书列表的 PEM 格式。
ssl.keystore.key
Type: password
Default: null
Importance: high
使用 'ssl.keystore.type" 指定的格式的私钥。默认 SSL 引擎工厂只支持带有 PKCS#8 密钥的 PEM 格式。如果密钥加密,则必须使用 'ssl.key.password' 指定密钥密码。
ssl.keystore.location
Type: string
Default: null
Importance: high
密钥存储文件的位置。这是可选的,可用于客户端双向身份验证。
ssl.keystore.password
Type: password
Default: null
Importance: high
密钥存储文件的存储密码。这适用于客户端,只有在配置了 'ssl.keystore.location' 时才需要。PEM 格式不支持密钥存储密码。
ssl.truststore.certificates
Type: password
Default: null
Importance: high
可信证书,格式为 'ssl.truststore.type'。默认 SSL 引擎工厂仅支持使用 X.509 证书使用 PEM 格式。
ssl.truststore.location
Type: string
Default: null
Importance: high
信任存储文件的位置。
ssl.truststore.password
Type: password
Default: null
Importance: high
信任存储文件的密码。如果没有设置密码,则仍将使用配置的信任存储文件,但会禁用完整性检查。PEM 格式不支持信任存储密码。
allow.auto.create.topics
Type: boolean
Default: true
Importance: medium
当订阅或分配主题时,允许在代理上自动创建主题。只有在代理允许使用
auto.create.topics.enable
代理配置时,才会自动创建订阅的主题。当使用早于 0.11.0 的代理时,此配置必须设为false
。auto.offset.reset
type: string
Default: latest
Valid Values: [latest, earliest, none]
Importance: medium
Kafka 中没有初始偏移,或者当前偏移没有在服务器上(例如,因为删除了数据)时,应该做什么:
- earliest:自动将偏移重置为最早的偏移量
- latest :自动将偏移重置为最新的偏移量
- none :为消费者的组找不到以前的偏移时,向消费者抛出异常
- 其它内容:向消费者抛出异常。
client.dns.lookup
type: string
Default: use_all_dns_ips
Valid Values: [use_all_dns_ips, resolve_canonical_bootstrap_servers_only]
Importance: medium
控制客户端如何使用 DNS 查找。如果设置为
use_all_dns_ips
,按顺序连接到每个返回的 IP 地址,直到成功建立连接为止。断开连接后,会使用下一个 IP。使用了所有 IP 后,客户端会再次从主机名( JVM 和 OS 缓存 DNS 名称查找)解析 IP 地址。如果设置为resolve_canonical_bootstrap_servers_only
,请将每个 bootstrap 地址解析为规范名称列表。在 bootstrap 阶段后,这与use_all_dns_ips
相同。connections.max.idle.ms
Type: long
Default: 540000 (9 分钟)
Importance: medium
在此配置指定的毫秒数后关闭闲置连接。
default.api.timeout.ms
type: int
Default: 60000 (1 minute)
Valid Values: [0,…]
Importance: medium
指定客户端 API 的超时时间(以毫秒为单位)。此配置用作没有指定
timeout
参数的所有客户端操作的默认超时时间。enable.auto.commit
Type: boolean
Default: true
Importance: medium
如果为 true,使用者偏移将定期在后台提交。
exclude.internal.topics
Type: boolean
Default: true
Importance: medium
订阅中排除了与订阅模式匹配的内部主题。始终可以显式订阅一个内部主题。
fetch.max.bytes
type: int
Default: 52428800 (50 mebibytes)
Valid Values: [0,…]
Importance: medium
服务器为获取请求返回的最大数据量。记录由消费者批量获取,如果获取的第一个非空分区中的第一个记录批处理大于这个值,则记录批处理仍会返回,以确保消费者能够进行进度。因此,这不是绝对的最大值。代理接受的最大记录批处理大小通过
message.max.bytes
(broker config)或max.message.bytes
(topic config)定义。请注意,消费者并行执行多个获取。group.instance.id
type: string
Default: null
Valid Values: non-empty string
Importance: medium
最终用户提供的使用者实例的唯一标识符。仅允许非空字符串。如果设置,使用者将被视为静态成员,这意味着任何消费者组中只允许具有此 ID 的一个实例。这可以与更大的会话超时结合使用,以避免由临时不可用(如进程重启)导致的组重新平衡。如果没有设置,使用者将作为动态成员加入组,这是传统的行为。
isolation.level
type: string
Default: read_uncommitted
Valid Values: [read_committed, read_uncommitted]
Importance: medium
控制如何读取事务编写的消息。如果设置为
read_committed
,则 consumer.poll ()将仅返回已提交的事务消息。如果设置为read_uncommitted
(默认值),consumer.poll ()将返回所有消息,即使已中止的事务消息。非事务处理信息将在任一模式中无条件返回。消息始终以偏移顺序返回。因此,在
read_committed
模式中,consumer.poll () 将只返回到最后一个稳定偏移(LSO),即小于第一个打开事务偏移偏移的偏移值。特别是任何属于持续事务的消息后,直到相关的事务完成为止。因此,当进行 Iflight 事务时,read_committed
用户将无法读取到高水位线。Further, when in `read_committed` the seekToEnd method will return the LSO .
max.poll.interval.ms
type: int
Default: 300000 (5 minutes)
Valid Values: [1,…]
Importance: medium
使用消费者组管理时轮询()调用之间的最大延迟。这会在获取更多记录前,在消费者闲置的时间上绑定上。如果在此超时过期之前没有调用 poll (),那么消费者将被视为失败,并且组将重新平衡,以便将分区重新分配给另一个成员。对于使用达到此超时的非null
group.instance.id
的用户,不会立即重新分配分区。相反,消费者会在session.timeout.ms
过期后再重新分配发送心跳和分区。这会镜像已关闭的静态使用者的行为。max.poll.records
type: int
Default: 500
Valid Values: [1,…]
Importance: medium
在要 poll ()的单个调用中返回的最大记录数。请注意,
max.poll.records
不会影响底层获取行为。消费者将缓存来自每个获取请求的记录,并以递增方式从每个轮询返回它们。partition.assignment.strategy
type: list
Default: class org.apache.kafka.clients.consumer.RangeAssignor,class org.apache.kafka.clients.consumer.CorphanStickyAssignor
Valid Values: non-null string
Importance: medium
使用组管理时,按首选顺序排列的类名称或类类型列表,客户端将使用它们在消费者实例之间分发分区所有权。可用的选项有:
-
org.apache.kafka.clients.consumer.RangeAssignor
: 按主题分配分区。 -
org.apache.kafka.clients.consumer.RoundRobinAssignor
:以轮循方式将分区分配给消费者。 -
org.apache.kafka.clients.consumer.StickyAssignor
: Guarantees 分配一个最大均衡的分配,同时保留尽可能多的现有分区分配。 org.apache.kafka.clients.consumer.CooperativeStickyAssignor
: Follows same StickyAssignor 逻辑,但允许合作重新平衡。默认分配器为 [RangeAssignor,CooperativeStickyAssignor],它将默认使用 RangeAssignor,但允许升级到 CooperativeStickyAssignor,只有一个滚动禁止从列表中删除 RangeAssignor。
通过实施
org.apache.kafka.clients.consumer.ConsumerPartitionAssignor
接口,您可以插入自定义分配策略。
-
receive.buffer.bytes
type: int
Default: 65536 (64 kibibytes)
Valid Values: [-1,…]
Importance: medium
读取数据时使用的 TCP 接收缓冲区的大小(SO_RCVBUF)。如果值为 -1,则会使用 OS 默认值。
request.timeout.ms
type: int
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: medium
配置控制客户端等待请求响应的最长时间。如果响应在超时前收到,客户端会在必要时重新发送请求,或者在重试已耗尽时失败请求。
sasl.client.callback.handler.class
Type: class
Default: null
Importance: medium
实现 AuthenticateCallbackHandler 接口的 SASL 客户端回调处理器类的完全限定名称。
sasl.jaas.config
Type: password
Default: null
Importance: medium
用于 SASL 连接的 JAAS 登录上下文参数,其格式由 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。值的格式是:
loginModuleClass controlFlag (optionName=optionValue)*;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule;.sasl.kerberos.service.name
Type: string
Default: null
Importance: medium
Kafka 运行的 Kerberos 主体名称。这可以在 Kafka 的 JAAS 配置或 Kafka 配置中定义。
sasl.login.callback.handler.class
Type: class
Default: null
Importance: medium
实现 AuthenticateCallbackHandler 接口的 SASL 登录回调处理器类的完全限定名称。对于代理,登录回调处理器配置必须以监听器前缀和 SASL 机制名称作为前缀作为前缀。例如,listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler。
sasl.login.class
Type: class
Default: null
Importance: medium
实现 Login 接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 SASL 机制名称前缀。For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin.
sasl.mechanism
type: string
Default: GSSAPI
Importance: medium
用于客户端连接的 SASL 机制。这可能是提供安全提供程序的任何机制。GSSAPI 是默认机制。
sasl.oauthbearer.jwks.endpoint.url
Type: string
Default: null
Importance: medium
从中检索提供程序 JWKS (JSON Web Key Set) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S)或基于文件的 URL。如果 URL 基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商中检索。所有 then-current 密钥都将缓存到代理上,用于传入的请求。如果为 JWT 收到身份验证请求,其中包含尚未在缓存中"kid"标头声明值,则 JWKS 端点将根据需要重新查询。但是,代理在每个 sasl.oauthbearer.jwks.endpoint.refresh.ms 毫秒中轮询 URL,以便在收到包含它们的 JWT 请求前使用任何即将刷新缓存。如果 URL 基于文件,代理将在启动时从配置的位置加载 JWKS 文件。如果 JWT 包含不在 JWKS 文件中的"kid"标头值,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.token.endpoint.url
Type: string
Default: null
Importance: medium
OAuth/OIDC 身份提供程序的 URL。如果 URL 基于 HTTP (S),则它是签发者的令牌端点 URL,请求将根据 sasl.jaas.config 中的配置登录。如果 URL 基于文件,它指定一个包含由 OAuth/OIDC 身份提供程序发布的访问令牌(在 JWT 序列化形式)的文件,以用于授权。
security.protocol
Type: string
Default: PLAINTEXT
Valid Values: [PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL]
Importance: medium
用于与代理通信的协议。有效值为: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.
send.buffer.bytes
type: int
Default: 131072 (128 kibibytes)
Valid Values: [-1,…]
Importance: medium
在发送数据时使用的 TCP 发送缓冲区的大小(SO_SNDBUF)。如果值为 -1,则会使用 OS 默认值。
socket.connection.setup.timeout.max.ms
Type: long
Default: 30000 (30 秒)
Importance: medium
客户端将等待套接字连接建立的最长时间。对于每个连续连接失败,连接设置超时将以指数级增长到此最大值。为避免连接失败,0.2 的随机因素将应用于超时,导致在计算值高于计算值的 20% 到 20% 之间的随机范围。
socket.connection.setup.timeout.ms
Type: long
Default: 10000 (10 秒)
Importance: medium
客户端将等待套接字连接建立的时间。如果在超时前没有构建连接,客户端将关闭套接字频道。
ssl.enabled.protocols
type: list
Default: TLSv1.2,TLSv1.3
Importance: medium
为 SSL 连接启用的协议列表。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.2'。使用 Java 11 的默认值,如果客户端和服务器同时支持 TLSv1.3,则客户端和服务器将首选 TLSv1.3,否则将回退到 TLSv1.2(假设两者都至少支持 TLSv1.2)。这个默认值对于大多数情况来说应该可以正常工作。另请参阅
ssl.protocol
的配置文档。ssl.keystore.type
type: string
Default: JKS
Importance: medium
密钥存储文件的文件格式。这对客户端是可选的。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。ssl.protocol
type: string
Default: TLSv1.3
Importance: medium
用于生成 SSLContext 的 SSL 协议。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.3'。这个值应该适用于大多数用例。最近的 JVM 中的允许值为 'TLSv1.2' 和 'TLSv1.3'。'TLS', 'TLSv1.1', 'SSL', 'SSLv2' 和 'SSLv3' 可能在较旧的 JVM 中被支持,但由于已知的安全漏洞,不建议使用它们的使用。使用这个配置和 'ssl.enabled.protocols' 的默认值,如果服务器不支持 'TLSv1.3',客户端将降级为 'TLSv1.2'。如果此配置被设置为 'TLSv1.2',则客户端将不会使用 'TLSv1.3',即使它是 ssl.enabled.protocols 中的一个值,且服务器只支持 'TLSv1.3'。
ssl.provider
Type: string
Default: null
Importance: medium
用于 SSL 连接的安全提供程序的名称。默认值为 JVM 的默认安全提供程序。
ssl.truststore.type
type: string
Default: JKS
Importance: medium
信任存储文件的文件格式。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。auto.commit.interval.ms
type: int
Default: 5000 (5 秒)
Valid Values: [0,…]
Importance: low
如果
enable.auto.commit
设为true
,则使用者偏移的频率(毫秒)自动提交为 Kafka。auto.include.jmx.reporter
Type: boolean
Default: true
Importance: low
已弃用。即使没有在
metric.reporters
中列出,也自动包含 JmxReporter。此配置将在 Kafka 4.0 中删除,用户应改为将org.apache.kafka.common.metrics.JmxReporter
包含在metric.reporters
中,以便启用 JmxReporter。check.crcs
Type: boolean
Default: true
Importance: low
自动检查已使用的记录的 CRC32。这样可确保发生消息的在线或磁盘损坏。此检查添加了一些开销,因此在寻求极端性能的情况下可能会禁用它。
client.id
type: string
Default: ""
Importance: low
在发出请求时传递给服务器的 id 字符串。这样做的目的是通过允许将逻辑应用程序名称包含在服务器端请求日志中来跟踪超过 ip/port 的请求源。
client.rack
type: string
Default: ""
Importance: low
此客户端的机架标识符。这可以是任何字符串值,指示此客户端物理位置。它与代理配置 'broker.rack' 对应。
fetch.max.wait.ms
type: int
Default: 500
Valid Values: [0,…]
Importance: low
如果没有足够的数据来立即满足 fetch.min.bytes 给出的要求,服务器在回答获取请求前将阻止的最大时间。
interceptor.classes
type: list
Default: ""
Valid Values: non-null string
Importance: low
用作拦截器的类列表。通过实施
org.apache.kafka.clients.consumer.ConsumerInterceptor
接口,您可以拦截(可能)消费者收到的记录。默认情况下,没有拦截器。metadata.max.age.ms
Type: long
Default: 300000 (5 minutes)
Valid Values: [0,…]
Importance: low
以毫秒为单位的时间,我们强制刷新元数据,即使我们未看到任何分区领导更改来主动发现任何新的代理或分区。
metric.reporters
type: list
Default: ""
Valid Values: non-null string
Importance: low
用作指标报告器的类列表。通过实施
org.apache.kafka.common.metrics.MetricsReporter
接口,可以插入新指标创建通知的类。JmxReporter 始终包含在注册 JMX 统计数据中。metrics.num.samples
type: int
Default: 2
Valid Values: [1,…]
Importance: low
维护到计算指标的示例数量。
metrics.recording.level
type: string
Default: INFO
Valid Values: [INFO, DEBUG, TRACE]
Importance: low
指标的最高记录级别。
metrics.sample.window.ms
Type: long
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: low
计算指标示例的时间窗口。
reconnect.backoff.max.ms
Type: long
Default: 1000 (1 second)
Valid Values: [0,…]
Importance: low
当重新连接到重复连接失败的代理时,需要等待的最大时间(毫秒)。如果提供,每个主机的 backoff 将为每个连续的连接失败指数增加,直到最高值。在计算 backoff 增长后,会添加 20% 随机的 jitter 以避免连接 storms。
reconnect.backoff.ms
Type: long
Default: 50
Valid Values: [0,…]
Importance: low
尝试重新连接到给定主机前需要等待的基本时间。这可避免在紧张循环中重复连接到主机。这个 backoff 适用于客户端到代理的所有连接尝试。
retry.backoff.ms
Type: long
Default: 100
Valid Values: [0,…]
Importance: low
尝试重试失败的请求到给定主题分区前等待的时间。这可避免在某些故障情况下在严格的循环中重复发送请求。
sasl.kerberos.kinit.cmd
type: string
Default: /usr/bin/kinit
Importance: low
Kerberos kinit 命令路径。
sasl.kerberos.min.time.before.relogin
Type: long
Default: 60000
Importance: low
刷新尝试之间的登录线程睡眠时间。
sasl.kerberos.ticket.renew.jitter
Type: double
Default: 0.05
Importance: low
添加到续订时间的随机 jitter 百分比。
sasl.kerberos.ticket.renew.window.factor
Type: double
Default: 0.8
Importance: low
登录线程会处于睡眠状态,直到最后一次刷新到票据到期时间的指定窗口因子被达到,此时它将尝试续订票据。
sasl.login.connect.timeout.ms
Type: int
Default: null
Importance: low
(可选)外部身份验证供应商连接超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.read.timeout.ms
Type: int
Default: null
Importance: low
(可选)外部身份验证提供程序读取超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.buffer.seconds
Type: short
Default: 300
Valid Values: [0,…,3600]
Importance: low
刷新凭证时,凭证过期前要维护的缓冲区时间(以秒为单位)。如果刷新的过期时间比缓冲区秒数接近,则会移动刷新以尽可能多地维护缓冲区时间。法律值介于 0 到 3600 之间(1 小时);如果没有指定值,则使用默认值 300 (5 分钟)。如果它们总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.min.period.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.min.period.seconds
Type: short
Default: 60
Valid Values: [0,…,900]
Importance: low
在刷新凭证前,登录刷新线程需要最少的时间(以秒为单位)。法律值介于 0 到 900 (15 分钟);如果没有指定值,则使用默认值 60 (1 分钟)。如果其总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.buffer.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.factor
Type: double
Default: 0.8
Valid Values: [0.5,…,1.0]
Importance: low
登录刷新线程将休眠,直到达到了与凭证生命周期相关的指定窗口因子,在此期间它将尝试刷新凭证。法律值介于 0.5 (50%)和 1.0 (100%)之间,如果未指定值,则使用默认值 0.8 (80%)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.jitter
Type: double
Default: 0.05
Valid Values: [0.0,…,0.25]
Importance: low
与凭证生命周期相关的随机 jitter 的最大随机处理量,添加到登录刷新线程的睡眠时间中。法律值介于 0 到 0.25(25%)之间,如果没有指定值,则使用默认值 0.05(5%)。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(可选)值,以毫秒为单位,登录尝试外部身份验证提供程序之间的最长等待时间。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(可选)值,以毫秒为单位,用于登录尝试外部身份验证提供程序之间的初始等待。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.oauthbearer.clock.skew.seconds
Type: int
Default: 30
Importance: low
(可选)值(以秒为单位)允许 OAuth/OIDC 身份提供程序和代理的时间之间的区别。
sasl.oauthbearer.expected.audience
type: list
Default: null
Importance: low
(可选)代理的以逗号分隔的设置,用于验证为预期受众之一发布的 JWT。JWT 将检查是否有标准的 OAuth "aud" 声明,如果设置了这个值,代理将匹配 JWT 的"aud"声明中的值,以查看是否有完全匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.expected.issuer
Type: string
Default: null
Importance: low
(可选)代理用于验证 JWT 是由预期签发者创建的。JWT 将检查是否有标准的 OAuth"iss"声明,如果设置了这个值,代理将完全与 JWT 的"iss"声明中的内容匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.jwks.endpoint.refresh.ms
Type: long
Default: 3600000 (1 小时)
Importance: low
(可选)值(可选)代理在刷新其 JWKS (JSON Web Key Set)缓存之间等待的时间(以毫秒为单位),其中包含验证 JWT 签名的密钥。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(可选)值(以毫秒为单位),尝试从外部身份验证供应商检索 JWKS (JSON Web Key Set)之间的最长等待时间。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(可选)值,以毫秒为单位,用于来自外部身份验证提供程序的 JWKS (JSON Web Key Set)检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.scope.claim.name
type: string
Default: scope
Importance: low
范围的 OAuth 声明通常命名为"scope",但这(可选)设置可以提供与 JWT 有效负载声明中包含的范围使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
主题的 OAuth 声明通常名为"sub",但这(可选)设置可以提供与 JWT 有效负载声明中包含的主题使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
security.providers
Type: string
Default: null
Importance: low
可配置的创建者类列表,每个都返回实施安全算法的供应商。这些类应该实施
org.apache.kafka.common.security.auth.SecurityProviderCreator
接口。ssl.cipher.suites
type: list
Default: null
Importance: low
密码套件列表。这是身份验证、加密、MAC 和密钥交换算法的命名组合,用于使用 TLS 或 SSL 网络协议协商网络连接的安全设置。默认情况下支持所有可用的密码套件。
ssl.endpoint.identification.algorithm
type: string
Default: https
Importance: low
使用服务器证书验证服务器主机名的端点标识算法。
ssl.engine.factory.class
Type: class
Default: null
Importance: low
用于提供 SSLEngine 对象的 org.apache.kafka.common.security.auth.SslEngineFactory 类型的类。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。
ssl.keymanager.algorithm
type: string
Default: SunX509
Importance: low
用于 SSL 连接的密钥管理器工厂使用的算法。Default 值是为 Java 虚拟机配置的密钥管理器工厂算法。
ssl.secure.random.implementation
Type: string
Default: null
Importance: low
用于 SSL 加密操作的 SecureRandom PRNG 实现。
ssl.trustmanager.algorithm
type: string
Default: PKIX
Importance: low
信任管理器工厂用于 SSL 连接的算法。Default 值是为 Java 虚拟机配置的信任管理器工厂算法。
第 4 章 制作者配置属性
key.serializer
type: class
Importance: high
实施
org.apache.kafka.common.serialization.Serializer
接口的密钥的 serializer 类。value.serializer
type: class
Importance: high
serializer 类用于实施
org.apache.kafka.common.serialization.Serializer
接口的值。bootstrap.servers
type: list
Default: ""
Valid Values: non-null string
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处指定的服务器的所有服务器进行引导 - 此列表仅影响用于发现整套服务器的初始主机。此列表应该采用
host1:port1,host2:port2,…
的形式。由于这些服务器仅用于初始连接来发现完整的群集成员(这可能会动态更改),此列表不需要包含完整的服务器集合(但在服务器停机的情况下可能需要多个服务器)。buffer.memory
Type: long
Default: 33554432
Valid Values: [0,…]
Importance: high
制作者可用于缓冲记录的总字节,用于等待发送到服务器。如果记录发送速度快于服务器,则生产者将阻止
max.block.ms
用于抛出异常。此设置应当与制作者要使用的内存大致对应,但不是制作者使用的所有内存进行缓冲的硬绑定。一些额外的内存将用于压缩(如果启用了压缩),以及维护 in-flight 请求。
compression.type
type: string
Default: none
Valid Values: [none, gzip, snappy, lz4, zstd]
Importance: high
生成者生成的所有数据的压缩类型。默认为 none (例如,没有压缩)。有效值为
none
,gzip
,snappy
,lz4
, 或zstd
。压缩是全批数据,因此批处理的效率也会影响压缩率(更多批处理意味着更好的压缩)。retries
type: int
Default: 2147483647
Valid Values: [0,…,2147483647]
Importance: high
设置大于零的值将导致客户端重新发送发送失败的任何记录,并具有潜在的瞬时错误。请注意,如果客户端在收到错误时重新显示记录,则这个重试不会不同。如果在通过
delivery.timeout.ms
配置超时前,在重试次数之前,生成请求将失败,然后再成功确认前过期。用户通常应该保留这个配置未设置,而是使用delivery.timeout.ms
来控制重试行为。启用 idempotence 要求此配置值大于 0。如果设置了冲突的配置,并且没有显式启用 idempotence,则禁用 idempotence。
当将
enable.idempotence
设置为false
时,把max.in.flight.requests.per.connection
设置为 1 时可能会更改记录顺序,因为如果两个批处理被发送到一个分区,则第一个失败,但重试,但第二个批处理中的记录可能会首先出现。ssl.key.password
Type: password
Default: null
Importance: high
密钥存储文件或 'ssl.keystore.key' 中指定的 PEM 密钥中的私钥密码。
ssl.keystore.certificate.chain
Type: password
Default: null
Importance: high
使用由 'ssl.keystore.type" 指定的格式的证书链。默认 SSL 引擎工厂只支持带有 X.509 证书列表的 PEM 格式。
ssl.keystore.key
Type: password
Default: null
Importance: high
使用 'ssl.keystore.type" 指定的格式的私钥。默认 SSL 引擎工厂只支持带有 PKCS#8 密钥的 PEM 格式。如果密钥加密,则必须使用 'ssl.key.password' 指定密钥密码。
ssl.keystore.location
Type: string
Default: null
Importance: high
密钥存储文件的位置。这是可选的,可用于客户端双向身份验证。
ssl.keystore.password
Type: password
Default: null
Importance: high
密钥存储文件的存储密码。这适用于客户端,只有在配置了 'ssl.keystore.location' 时才需要。PEM 格式不支持密钥存储密码。
ssl.truststore.certificates
Type: password
Default: null
Importance: high
可信证书,格式为 'ssl.truststore.type'。默认 SSL 引擎工厂仅支持使用 X.509 证书使用 PEM 格式。
ssl.truststore.location
Type: string
Default: null
Importance: high
信任存储文件的位置。
ssl.truststore.password
Type: password
Default: null
Importance: high
信任存储文件的密码。如果没有设置密码,则仍将使用配置的信任存储文件,但会禁用完整性检查。PEM 格式不支持信任存储密码。
batch.size
type: int
Default: 16384
Valid Values: [0,…]
Importance: medium
每当将多个记录发送到同一分区时,生产者都将尝试将记录一起批处理为更少的请求。这有助于客户端和服务器上的性能。此配置控制默认的批处理大小,以字节为单位。
不会对大于这个大小的批处理记录进行尝试。
发送到代理的请求将包含多个批处理,每个分区都有可发送数据。
小批处理大小将使批处理不常见,并可能会降低吞吐量(批处理大小为零将完全禁用批处理)。非常大的批处理大小可能会更加浪费地使用内存,因为我们将始终在分析额外记录时分配指定批处理大小的缓冲区。
注意:此设置提供要发送的批处理大小的上限。如果我们为这个分区积累的数量少于此指定的字节,那么我们会"闲置"
linger.ms
时间来等待更多记录。此linger.ms
设置默认为 0,这意味着我们会立即发送记录,即使被积累的批处理大小位于此batch.size
设置下。client.dns.lookup
type: string
Default: use_all_dns_ips
Valid Values: [use_all_dns_ips, resolve_canonical_bootstrap_servers_only]
Importance: medium
控制客户端如何使用 DNS 查找。如果设置为
use_all_dns_ips
,按顺序连接到每个返回的 IP 地址,直到成功建立连接为止。断开连接后,会使用下一个 IP。使用了所有 IP 后,客户端会再次从主机名( JVM 和 OS 缓存 DNS 名称查找)解析 IP 地址。如果设置为resolve_canonical_bootstrap_servers_only
,请将每个 bootstrap 地址解析为规范名称列表。在 bootstrap 阶段后,这与use_all_dns_ips
相同。client.id
type: string
Default: ""
Importance: medium
在发出请求时传递给服务器的 id 字符串。这样做的目的是通过允许将逻辑应用程序名称包含在服务器端请求日志中来跟踪超过 ip/port 的请求源。
connections.max.idle.ms
Type: long
Default: 540000 (9 分钟)
Importance: medium
在此配置指定的毫秒数后关闭闲置连接。
delivery.timeout.ms
type: int
Default: 120000 (2 分钟)
Valid Values: [0,…]
Importance: medium
在调用
send ()
后报告成功或失败的时间上限。这限制了在发送前延迟记录的总时间,从代理等待确认时间(如预期),以及可重新发送失败的时间。如果遇到不可恢复的错误,则生产者可能会报告失败,以发送记录失败,或者记录已耗尽,或者记录添加到达到较早交付到期期限的批处理中。此配置的值应大于或等于request.timeout.ms
和linger.ms
的总和。linger.ms
Type: long
Default: 0
Valid Values: [0,…]
Importance: medium
生产者组将请求传输到单个批处理请求之间的任何记录组合在一起。通常,只有在记录到达的速度超过发送时,才会在负载下进行。然而,在某些情况下,客户端可能需要减少请求数量,即使是中等负载。此设置通过添加少量延时(即,而不是立即发送记录)来实现此目的,而是立即发送记录,将等待到给定的延迟,以允许发送其他记录,以便将发送一起批处理。这可以被认为与 TCP 中的 Nagle 的算法类似。此设置给出了批处理延迟的上限:当我们获得
批处理
时,无论此设置如何立即发送分区,则设置将立即发送,但如果我们为这个分区有多个字节,我们将在等待更多记录进行"闲置"时显示。此设置默认为 0 (例如,没有延迟)。例如,设置linger.ms=5
具有减少发送的请求数量的影响,但会在没有负载时向发送的记录增加 5ms 延迟。max.block.ms
Type: long
Default: 60000 (1 minute)
Valid Values: [0,…]
Importance: medium
这个配置控制
KafkaProducer’s `send()
,partitionsFor()
,initTransactions()
,sendOffsetsToTransaction()
,commitTransaction()
andabortTransaction()
方法将被阻塞多长时间。对于send ()
,这个超时会绑定等待元数据获取和缓冲区分配的总时间(在用户提供的串行器或分区器中不会针对这个超时计算)。对于partitionsFor ()
,这个超时会绑定等待元数据的时间(如果它不可用)。与事务相关的方法总是阻止,但如果无法发现事务协调器或者没有在超时内响应,则可能会出现超时问题。max.request.size
type: int
Default: 1048576
Valid Values: [0,…]
Importance: medium
请求的最大大小(以字节为单位)。此设置将限制制作者在单个请求中发送的记录批处理数,以避免发送大型请求。这也是最大未压缩记录批处理大小的上限。请注意,服务器在记录批处理大小上具有自己的上限(如果启用压缩,则时间为压缩),这可能因此不同。
partitioner.class
Type: class
Default: null
Importance: medium
一个类,用来决定在生成记录时要发送哪些分区。可用的选项有:
- 如果没有设置,则使用默认分区逻辑。此策略将尝试盘到分区,直到生成至少 batch.size 字节为止。它与策略一起使用:
- 如果没有指定分区,但没有指定密钥,请根据密钥的哈希值选择一个分区
- 如果没有分区或密钥,请选择在至少向分区生成 batch.size 字节时更改的粘性分区。
org.apache.kafka.clients.producer.RoundRobinPartitioner
:此分区策略是每个记录连续的记录都将发送到不同的分区(无论是提供"密钥"),直到我们用完分区为止。注意:存在一个已知问题,在创建新批处理时将导致不均匀分布。请检查 KAFKA-9965 以了解更多详细信息。通过实施
org.apache.kafka.clients.producer.Partitioner
接口,您可以插入自定义分区程序。
partitioner.ignore.keys
Type: boolean
Default: false
Importance: medium
当设置为 'true' 时,生产者不使用记录密钥来选择分区。如果 'false',当出现密钥时,生产者将根据密钥哈希选择一个分区。注意:如果使用自定义分区器,则此设置无效。
receive.buffer.bytes
type: int
Default: 32768 (32 kibibytes)
Valid Values: [-1,…]
Importance: medium
读取数据时使用的 TCP 接收缓冲区的大小(SO_RCVBUF)。如果值为 -1,则会使用 OS 默认值。
request.timeout.ms
type: int
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: medium
配置控制客户端等待请求响应的最长时间。如果响应在超时前收到,客户端会在必要时重新发送请求,或者在重试已耗尽时失败请求。这应该大于
replica.lag.time.max.ms
(代理配置),以减少因为生成者重试而出现消息重复的可能性。sasl.client.callback.handler.class
Type: class
Default: null
Importance: medium
实现 AuthenticateCallbackHandler 接口的 SASL 客户端回调处理器类的完全限定名称。
sasl.jaas.config
Type: password
Default: null
Importance: medium
用于 SASL 连接的 JAAS 登录上下文参数,其格式由 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。值的格式是:
loginModuleClass controlFlag (optionName=optionValue)*;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule;.sasl.kerberos.service.name
Type: string
Default: null
Importance: medium
Kafka 运行的 Kerberos 主体名称。这可以在 Kafka 的 JAAS 配置或 Kafka 配置中定义。
sasl.login.callback.handler.class
Type: class
Default: null
Importance: medium
实现 AuthenticateCallbackHandler 接口的 SASL 登录回调处理器类的完全限定名称。对于代理,登录回调处理器配置必须以监听器前缀和 SASL 机制名称作为前缀作为前缀。例如,listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler。
sasl.login.class
Type: class
Default: null
Importance: medium
实现 Login 接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 SASL 机制名称前缀。For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin.
sasl.mechanism
type: string
Default: GSSAPI
Importance: medium
用于客户端连接的 SASL 机制。这可能是提供安全提供程序的任何机制。GSSAPI 是默认机制。
sasl.oauthbearer.jwks.endpoint.url
Type: string
Default: null
Importance: medium
从中检索提供程序 JWKS (JSON Web Key Set) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S)或基于文件的 URL。如果 URL 基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商中检索。所有 then-current 密钥都将缓存到代理上,用于传入的请求。如果为 JWT 收到身份验证请求,其中包含尚未在缓存中"kid"标头声明值,则 JWKS 端点将根据需要重新查询。但是,代理在每个 sasl.oauthbearer.jwks.endpoint.refresh.ms 毫秒中轮询 URL,以便在收到包含它们的 JWT 请求前使用任何即将刷新缓存。如果 URL 基于文件,代理将在启动时从配置的位置加载 JWKS 文件。如果 JWT 包含不在 JWKS 文件中的"kid"标头值,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.token.endpoint.url
Type: string
Default: null
Importance: medium
OAuth/OIDC 身份提供程序的 URL。如果 URL 基于 HTTP (S),则它是签发者的令牌端点 URL,请求将根据 sasl.jaas.config 中的配置登录。如果 URL 基于文件,它指定一个包含由 OAuth/OIDC 身份提供程序发布的访问令牌(在 JWT 序列化形式)的文件,以用于授权。
security.protocol
Type: string
Default: PLAINTEXT
Valid Values: [PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL]
Importance: medium
用于与代理通信的协议。有效值为: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.
send.buffer.bytes
type: int
Default: 131072 (128 kibibytes)
Valid Values: [-1,…]
Importance: medium
在发送数据时使用的 TCP 发送缓冲区的大小(SO_SNDBUF)。如果值为 -1,则会使用 OS 默认值。
socket.connection.setup.timeout.max.ms
Type: long
Default: 30000 (30 秒)
Importance: medium
客户端将等待套接字连接建立的最长时间。对于每个连续连接失败,连接设置超时将以指数级增长到此最大值。为避免连接失败,0.2 的随机因素将应用于超时,导致在计算值高于计算值的 20% 到 20% 之间的随机范围。
socket.connection.setup.timeout.ms
Type: long
Default: 10000 (10 秒)
Importance: medium
客户端将等待套接字连接建立的时间。如果在超时前没有构建连接,客户端将关闭套接字频道。
ssl.enabled.protocols
type: list
Default: TLSv1.2,TLSv1.3
Importance: medium
为 SSL 连接启用的协议列表。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.2'。使用 Java 11 的默认值,如果客户端和服务器同时支持 TLSv1.3,则客户端和服务器将首选 TLSv1.3,否则将回退到 TLSv1.2(假设两者都至少支持 TLSv1.2)。这个默认值对于大多数情况来说应该可以正常工作。另请参阅
ssl.protocol
的配置文档。ssl.keystore.type
type: string
Default: JKS
Importance: medium
密钥存储文件的文件格式。这对客户端是可选的。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。ssl.protocol
type: string
Default: TLSv1.3
Importance: medium
用于生成 SSLContext 的 SSL 协议。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.3'。这个值应该适用于大多数用例。最近的 JVM 中的允许值为 'TLSv1.2' 和 'TLSv1.3'。'TLS', 'TLSv1.1', 'SSL', 'SSLv2' 和 'SSLv3' 可能在较旧的 JVM 中被支持,但由于已知的安全漏洞,不建议使用它们的使用。使用这个配置和 'ssl.enabled.protocols' 的默认值,如果服务器不支持 'TLSv1.3',客户端将降级为 'TLSv1.2'。如果此配置被设置为 'TLSv1.2',则客户端将不会使用 'TLSv1.3',即使它是 ssl.enabled.protocols 中的一个值,且服务器只支持 'TLSv1.3'。
ssl.provider
Type: string
Default: null
Importance: medium
用于 SSL 连接的安全提供程序的名称。默认值为 JVM 的默认安全提供程序。
ssl.truststore.type
type: string
Default: JKS
Importance: medium
信任存储文件的文件格式。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。acks
type: string
Default: all
Valid Values: [all, -1, 0, 1]
Importance: low
在考虑请求完成前,生产者需要收到该制作者的确认数量。这控制发送的记录的持久性。允许以下设置:
-
acks=0
如果设为零,则制作者不会等待服务器中的任何确认。记录将立即添加到套接字缓冲区中,并被视为已发送。不保证服务器在这种情况下收到了记录,重试
配置将无效(因为客户端通常不知道任何故障)。为每个记录提供的偏移始终设置为-1
。 -
acks=1
这意味着领导记录将记录写入其本地日志,但不会等待所有后续者完全确认。在这种情况下,领导会在确认记录后立即失败,但在后续者复制之前,记录将会丢失。 acks=all
意味着领导会等待一整套同步副本确认记录。这样可保证,只要至少有一个同步副本保持活跃,记录就不会被丢失。这是最强的可用保证。这等同于 acks=-1 设置。请注意,启用 idempotence 需要此配置值为 'all'。如果设置了冲突的配置,并且没有显式启用 idempotence,则禁用 idempotence。
-
auto.include.jmx.reporter
Type: boolean
Default: true
Importance: low
已弃用。即使没有在
metric.reporters
中列出,也自动包含 JmxReporter。此配置将在 Kafka 4.0 中删除,用户应改为将org.apache.kafka.common.metrics.JmxReporter
包含在metric.reporters
中,以便启用 JmxReporter。enable.idempotence
Type: boolean
Default: true
Importance: low
当设置为 'true' 时,生产者将确保在流中写入每个消息的确切副本。如果为 'false',则因代理失败而重试制作者,可能会在流中写入重试消息重复。请注意,启用 idempotence 需要
max.in.flight.requests.per.connection
小于或等于 5 (具有任何允许值保留的消息排序),重试
大于 0,而acks
必须是 'all'。如果没有设置任何冲突配置,则默认启用 Idempence。如果设置了冲突的配置,并且没有显式启用 idempotence,则禁用 idempotence。如果明确启用了 idempotence,并且设置了冲突的配置,则会引发
ConfigException
。interceptor.classes
type: list
Default: ""
Valid Values: non-null string
Importance: low
用作拦截器的类列表。通过实施
org.apache.kafka.clients.producer.ProducerInterceptor
接口,您可以在生成者在向 Kafka 集群发布前截获(并可能变异)收到的记录。默认情况下,没有拦截器。max.in.flight.requests.per.connection
type: int
Default: 5
Valid Values: [1,…]
Importance: low
在阻塞前,客户端将在单个连接上发送的最大未确认请求数量。请注意,如果将此配置设定为大于 1,并且
enable.idempotence
被设置为 false,则会在因为重试而失败发送后重新排序消息的风险(例如,如果启用了重试);如果禁用重试,或者将enable.idempotence
设置为 true,则排序将被保留。此外,启用 idempotence 还需要此配置的值小于或等于 5。如果设置了冲突的配置,并且没有显式启用 idempotence,则禁用 idempotence。metadata.max.age.ms
Type: long
Default: 300000 (5 minutes)
Valid Values: [0,…]
Importance: low
以毫秒为单位的时间,我们强制刷新元数据,即使我们未看到任何分区领导更改来主动发现任何新的代理或分区。
metadata.max.idle.ms
Type: long
Default: 300000 (5 minutes)
Valid Values: [5000,…]
Importance: low
控制制作者为空闲的主题缓存元数据的时长。如果最后一次生成了一个主题的过期时间超过元数据闲置持续时间,则主题的元数据会被忘记,下一次对它的访问会强制元数据获取请求。
metric.reporters
type: list
Default: ""
Valid Values: non-null string
Importance: low
用作指标报告器的类列表。通过实施
org.apache.kafka.common.metrics.MetricsReporter
接口,可以插入新指标创建通知的类。JmxReporter 始终包含在注册 JMX 统计数据中。metrics.num.samples
type: int
Default: 2
Valid Values: [1,…]
Importance: low
维护到计算指标的示例数量。
metrics.recording.level
type: string
Default: INFO
Valid Values: [INFO, DEBUG, TRACE]
Importance: low
指标的最高记录级别。
metrics.sample.window.ms
Type: long
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: low
计算指标示例的时间窗口。
partitioner.adaptive.partitioning.enable
Type: boolean
Default: true
Importance: low
当设置为 'true' 时,生产者将尝试适应代理性能,并为在更快代理上托管的分区生成更多消息。如果 'false',生产者将尝试统一地分发消息。注意:如果使用自定义分区器,则此设置无效。
partitioner.availability.timeout.ms
Type: long
Default: 0
Valid Values: [0,…]
Importance: low
如果代理无法从分区生成来自
partitioner.availability.timeout.ms
时间的请求,则分区器会将该分区视为不可用。如果值为 0,则禁用此逻辑。注:如果使用自定义分区器或partitioner.adaptive.partitioning.enable
设置为 'false',则此设置无效。reconnect.backoff.max.ms
Type: long
Default: 1000 (1 second)
Valid Values: [0,…]
Importance: low
当重新连接到重复连接失败的代理时,需要等待的最大时间(毫秒)。如果提供,每个主机的 backoff 将为每个连续的连接失败指数增加,直到最高值。在计算 backoff 增长后,会添加 20% 随机的 jitter 以避免连接 storms。
reconnect.backoff.ms
Type: long
Default: 50
Valid Values: [0,…]
Importance: low
尝试重新连接到给定主机前需要等待的基本时间。这可避免在紧张循环中重复连接到主机。这个 backoff 适用于客户端到代理的所有连接尝试。
retry.backoff.ms
Type: long
Default: 100
Valid Values: [0,…]
Importance: low
尝试重试失败的请求到给定主题分区前等待的时间。这可避免在某些故障情况下在严格的循环中重复发送请求。
sasl.kerberos.kinit.cmd
type: string
Default: /usr/bin/kinit
Importance: low
Kerberos kinit 命令路径。
sasl.kerberos.min.time.before.relogin
Type: long
Default: 60000
Importance: low
刷新尝试之间的登录线程睡眠时间。
sasl.kerberos.ticket.renew.jitter
Type: double
Default: 0.05
Importance: low
添加到续订时间的随机 jitter 百分比。
sasl.kerberos.ticket.renew.window.factor
Type: double
Default: 0.8
Importance: low
登录线程会处于睡眠状态,直到最后一次刷新到票据到期时间的指定窗口因子被达到,此时它将尝试续订票据。
sasl.login.connect.timeout.ms
Type: int
Default: null
Importance: low
(可选)外部身份验证供应商连接超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.read.timeout.ms
Type: int
Default: null
Importance: low
(可选)外部身份验证提供程序读取超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.buffer.seconds
Type: short
Default: 300
Valid Values: [0,…,3600]
Importance: low
刷新凭证时,凭证过期前要维护的缓冲区时间(以秒为单位)。如果刷新的过期时间比缓冲区秒数接近,则会移动刷新以尽可能多地维护缓冲区时间。法律值介于 0 到 3600 之间(1 小时);如果没有指定值,则使用默认值 300 (5 分钟)。如果它们总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.min.period.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.min.period.seconds
Type: short
Default: 60
Valid Values: [0,…,900]
Importance: low
在刷新凭证前,登录刷新线程需要最少的时间(以秒为单位)。法律值介于 0 到 900 (15 分钟);如果没有指定值,则使用默认值 60 (1 分钟)。如果其总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.buffer.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.factor
Type: double
Default: 0.8
Valid Values: [0.5,…,1.0]
Importance: low
登录刷新线程将休眠,直到达到了与凭证生命周期相关的指定窗口因子,在此期间它将尝试刷新凭证。法律值介于 0.5 (50%)和 1.0 (100%)之间,如果未指定值,则使用默认值 0.8 (80%)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.jitter
Type: double
Default: 0.05
Valid Values: [0.0,…,0.25]
Importance: low
与凭证生命周期相关的随机 jitter 的最大随机处理量,添加到登录刷新线程的睡眠时间中。法律值介于 0 到 0.25(25%)之间,如果没有指定值,则使用默认值 0.05(5%)。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(可选)值,以毫秒为单位,登录尝试外部身份验证提供程序之间的最长等待时间。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(可选)值,以毫秒为单位,用于登录尝试外部身份验证提供程序之间的初始等待。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.oauthbearer.clock.skew.seconds
Type: int
Default: 30
Importance: low
(可选)值(以秒为单位)允许 OAuth/OIDC 身份提供程序和代理的时间之间的区别。
sasl.oauthbearer.expected.audience
type: list
Default: null
Importance: low
(可选)代理的以逗号分隔的设置,用于验证为预期受众之一发布的 JWT。JWT 将检查是否有标准的 OAuth "aud" 声明,如果设置了这个值,代理将匹配 JWT 的"aud"声明中的值,以查看是否有完全匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.expected.issuer
Type: string
Default: null
Importance: low
(可选)代理用于验证 JWT 是由预期签发者创建的。JWT 将检查是否有标准的 OAuth"iss"声明,如果设置了这个值,代理将完全与 JWT 的"iss"声明中的内容匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.jwks.endpoint.refresh.ms
Type: long
Default: 3600000 (1 小时)
Importance: low
(可选)值(可选)代理在刷新其 JWKS (JSON Web Key Set)缓存之间等待的时间(以毫秒为单位),其中包含验证 JWT 签名的密钥。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(可选)值(以毫秒为单位),尝试从外部身份验证供应商检索 JWKS (JSON Web Key Set)之间的最长等待时间。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(可选)值,以毫秒为单位,用于来自外部身份验证提供程序的 JWKS (JSON Web Key Set)检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.scope.claim.name
type: string
Default: scope
Importance: low
范围的 OAuth 声明通常命名为"scope",但这(可选)设置可以提供与 JWT 有效负载声明中包含的范围使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
主题的 OAuth 声明通常名为"sub",但这(可选)设置可以提供与 JWT 有效负载声明中包含的主题使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
security.providers
Type: string
Default: null
Importance: low
可配置的创建者类列表,每个都返回实施安全算法的供应商。这些类应该实施
org.apache.kafka.common.security.auth.SecurityProviderCreator
接口。ssl.cipher.suites
type: list
Default: null
Importance: low
密码套件列表。这是身份验证、加密、MAC 和密钥交换算法的命名组合,用于使用 TLS 或 SSL 网络协议协商网络连接的安全设置。默认情况下支持所有可用的密码套件。
ssl.endpoint.identification.algorithm
type: string
Default: https
Importance: low
使用服务器证书验证服务器主机名的端点标识算法。
ssl.engine.factory.class
Type: class
Default: null
Importance: low
用于提供 SSLEngine 对象的 org.apache.kafka.common.security.auth.SslEngineFactory 类型的类。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。
ssl.keymanager.algorithm
type: string
Default: SunX509
Importance: low
用于 SSL 连接的密钥管理器工厂使用的算法。Default 值是为 Java 虚拟机配置的密钥管理器工厂算法。
ssl.secure.random.implementation
Type: string
Default: null
Importance: low
用于 SSL 加密操作的 SecureRandom PRNG 实现。
ssl.trustmanager.algorithm
type: string
Default: PKIX
Importance: low
信任管理器工厂用于 SSL 连接的算法。Default 值是为 Java 虚拟机配置的信任管理器工厂算法。
transaction.timeout.ms
Type: int
Default: 60000 (1 分钟)
Importance: low
事务协调器将在主动中止持续事务处理状态更新前等待来自制作者的事务状态更新的最长时间。如果这个值大于 broker 中的 transaction.max.timeout.ms 设置,则请求将失败,并显示
InvalidTxnTimeoutException
错误。transactional.id
type: string
Default: null
Valid Values: non-empty string
Importance: low
用于事务交付的 TransactionalId。这可实现跨多个制作者会话的可靠性语义,因为它允许客户端保证在启动任何新事务前使用相同的 TransactionalId 的事务。如果没有提供 TransactionalId,则制作者将限制为幂等发送。如果配置了 TransactionalId,则忽略
enable.idempotence
。默认情况下,TransactionId 没有配置,这意味着无法使用事务。请注意,默认情况下,事务需要至少三个代理集群,该代理是生产的建议设置;为了开发,您可以通过调整代理设置transaction.state.log.replication.factor
来进行更改。
第 5 章 管理客户端配置属性
bootstrap.servers
type: list
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处指定的服务器的所有服务器进行引导 - 此列表仅影响用于发现整套服务器的初始主机。此列表应该采用
host1:port1,host2:port2,…
的形式。由于这些服务器仅用于初始连接来发现完整的群集成员(这可能会动态更改),此列表不需要包含完整的服务器集合(但在服务器停机的情况下可能需要多个服务器)。ssl.key.password
Type: password
Default: null
Importance: high
密钥存储文件或 'ssl.keystore.key' 中指定的 PEM 密钥中的私钥密码。
ssl.keystore.certificate.chain
Type: password
Default: null
Importance: high
使用由 'ssl.keystore.type" 指定的格式的证书链。默认 SSL 引擎工厂只支持带有 X.509 证书列表的 PEM 格式。
ssl.keystore.key
Type: password
Default: null
Importance: high
使用 'ssl.keystore.type" 指定的格式的私钥。默认 SSL 引擎工厂只支持带有 PKCS#8 密钥的 PEM 格式。如果密钥加密,则必须使用 'ssl.key.password' 指定密钥密码。
ssl.keystore.location
Type: string
Default: null
Importance: high
密钥存储文件的位置。这是可选的,可用于客户端双向身份验证。
ssl.keystore.password
Type: password
Default: null
Importance: high
密钥存储文件的存储密码。这适用于客户端,只有在配置了 'ssl.keystore.location' 时才需要。PEM 格式不支持密钥存储密码。
ssl.truststore.certificates
Type: password
Default: null
Importance: high
可信证书,格式为 'ssl.truststore.type'。默认 SSL 引擎工厂仅支持使用 X.509 证书使用 PEM 格式。
ssl.truststore.location
Type: string
Default: null
Importance: high
信任存储文件的位置。
ssl.truststore.password
Type: password
Default: null
Importance: high
信任存储文件的密码。如果没有设置密码,则仍将使用配置的信任存储文件,但会禁用完整性检查。PEM 格式不支持信任存储密码。
client.dns.lookup
type: string
Default: use_all_dns_ips
Valid Values: [use_all_dns_ips, resolve_canonical_bootstrap_servers_only]
Importance: medium
控制客户端如何使用 DNS 查找。如果设置为
use_all_dns_ips
,按顺序连接到每个返回的 IP 地址,直到成功建立连接为止。断开连接后,会使用下一个 IP。使用了所有 IP 后,客户端会再次从主机名( JVM 和 OS 缓存 DNS 名称查找)解析 IP 地址。如果设置为resolve_canonical_bootstrap_servers_only
,请将每个 bootstrap 地址解析为规范名称列表。在 bootstrap 阶段后,这与use_all_dns_ips
相同。client.id
type: string
Default: ""
Importance: medium
在发出请求时传递给服务器的 id 字符串。这样做的目的是通过允许将逻辑应用程序名称包含在服务器端请求日志中来跟踪超过 ip/port 的请求源。
connections.max.idle.ms
Type: long
Default: 300000 (5 minutes)
Importance: medium
在此配置指定的毫秒数后关闭闲置连接。
default.api.timeout.ms
type: int
Default: 60000 (1 minute)
Valid Values: [0,…]
Importance: medium
指定客户端 API 的超时时间(以毫秒为单位)。此配置用作没有指定
timeout
参数的所有客户端操作的默认超时时间。receive.buffer.bytes
type: int
Default: 65536 (64 kibibytes)
Valid Values: [-1,…]
Importance: medium
读取数据时使用的 TCP 接收缓冲区的大小(SO_RCVBUF)。如果值为 -1,则会使用 OS 默认值。
request.timeout.ms
type: int
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: medium
配置控制客户端等待请求响应的最长时间。如果响应在超时前收到,客户端会在必要时重新发送请求,或者在重试已耗尽时失败请求。
sasl.client.callback.handler.class
Type: class
Default: null
Importance: medium
实现 AuthenticateCallbackHandler 接口的 SASL 客户端回调处理器类的完全限定名称。
sasl.jaas.config
Type: password
Default: null
Importance: medium
用于 SASL 连接的 JAAS 登录上下文参数,其格式由 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。值的格式是:
loginModuleClass controlFlag (optionName=optionValue)*;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule;.sasl.kerberos.service.name
Type: string
Default: null
Importance: medium
Kafka 运行的 Kerberos 主体名称。这可以在 Kafka 的 JAAS 配置或 Kafka 配置中定义。
sasl.login.callback.handler.class
Type: class
Default: null
Importance: medium
实现 AuthenticateCallbackHandler 接口的 SASL 登录回调处理器类的完全限定名称。对于代理,登录回调处理器配置必须以监听器前缀和 SASL 机制名称作为前缀作为前缀。例如,listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler。
sasl.login.class
Type: class
Default: null
Importance: medium
实现 Login 接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 SASL 机制名称前缀。For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin.
sasl.mechanism
type: string
Default: GSSAPI
Importance: medium
用于客户端连接的 SASL 机制。这可能是提供安全提供程序的任何机制。GSSAPI 是默认机制。
sasl.oauthbearer.jwks.endpoint.url
Type: string
Default: null
Importance: medium
从中检索提供程序 JWKS (JSON Web Key Set) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S)或基于文件的 URL。如果 URL 基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商中检索。所有 then-current 密钥都将缓存到代理上,用于传入的请求。如果为 JWT 收到身份验证请求,其中包含尚未在缓存中"kid"标头声明值,则 JWKS 端点将根据需要重新查询。但是,代理在每个 sasl.oauthbearer.jwks.endpoint.refresh.ms 毫秒中轮询 URL,以便在收到包含它们的 JWT 请求前使用任何即将刷新缓存。如果 URL 基于文件,代理将在启动时从配置的位置加载 JWKS 文件。如果 JWT 包含不在 JWKS 文件中的"kid"标头值,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.token.endpoint.url
Type: string
Default: null
Importance: medium
OAuth/OIDC 身份提供程序的 URL。如果 URL 基于 HTTP (S),则它是签发者的令牌端点 URL,请求将根据 sasl.jaas.config 中的配置登录。如果 URL 基于文件,它指定一个包含由 OAuth/OIDC 身份提供程序发布的访问令牌(在 JWT 序列化形式)的文件,以用于授权。
security.protocol
Type: string
Default: PLAINTEXT
Valid Values: [PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL]
Importance: medium
用于与代理通信的协议。有效值为: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.
send.buffer.bytes
type: int
Default: 131072 (128 kibibytes)
Valid Values: [-1,…]
Importance: medium
在发送数据时使用的 TCP 发送缓冲区的大小(SO_SNDBUF)。如果值为 -1,则会使用 OS 默认值。
socket.connection.setup.timeout.max.ms
Type: long
Default: 30000 (30 秒)
Importance: medium
客户端将等待套接字连接建立的最长时间。对于每个连续连接失败,连接设置超时将以指数级增长到此最大值。为避免连接失败,0.2 的随机因素将应用于超时,导致在计算值高于计算值的 20% 到 20% 之间的随机范围。
socket.connection.setup.timeout.ms
Type: long
Default: 10000 (10 秒)
Importance: medium
客户端将等待套接字连接建立的时间。如果在超时前没有构建连接,客户端将关闭套接字频道。
ssl.enabled.protocols
type: list
Default: TLSv1.2,TLSv1.3
Importance: medium
为 SSL 连接启用的协议列表。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.2'。使用 Java 11 的默认值,如果客户端和服务器同时支持 TLSv1.3,则客户端和服务器将首选 TLSv1.3,否则将回退到 TLSv1.2(假设两者都至少支持 TLSv1.2)。这个默认值对于大多数情况来说应该可以正常工作。另请参阅
ssl.protocol
的配置文档。ssl.keystore.type
type: string
Default: JKS
Importance: medium
密钥存储文件的文件格式。这对客户端是可选的。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。ssl.protocol
type: string
Default: TLSv1.3
Importance: medium
用于生成 SSLContext 的 SSL 协议。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.3'。这个值应该适用于大多数用例。最近的 JVM 中的允许值为 'TLSv1.2' 和 'TLSv1.3'。'TLS', 'TLSv1.1', 'SSL', 'SSLv2' 和 'SSLv3' 可能在较旧的 JVM 中被支持,但由于已知的安全漏洞,不建议使用它们的使用。使用这个配置和 'ssl.enabled.protocols' 的默认值,如果服务器不支持 'TLSv1.3',客户端将降级为 'TLSv1.2'。如果此配置被设置为 'TLSv1.2',则客户端将不会使用 'TLSv1.3',即使它是 ssl.enabled.protocols 中的一个值,且服务器只支持 'TLSv1.3'。
ssl.provider
Type: string
Default: null
Importance: medium
用于 SSL 连接的安全提供程序的名称。默认值为 JVM 的默认安全提供程序。
ssl.truststore.type
type: string
Default: JKS
Importance: medium
信任存储文件的文件格式。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。auto.include.jmx.reporter
Type: boolean
Default: true
Importance: low
已弃用。即使没有在
metric.reporters
中列出,也自动包含 JmxReporter。此配置将在 Kafka 4.0 中删除,用户应改为将org.apache.kafka.common.metrics.JmxReporter
包含在metric.reporters
中,以便启用 JmxReporter。metadata.max.age.ms
Type: long
Default: 300000 (5 minutes)
Valid Values: [0,…]
Importance: low
以毫秒为单位的时间,我们强制刷新元数据,即使我们未看到任何分区领导更改来主动发现任何新的代理或分区。
metric.reporters
type: list
Default: ""
Importance: low
用作指标报告器的类列表。通过实施
org.apache.kafka.common.metrics.MetricsReporter
接口,可以插入新指标创建通知的类。JmxReporter 始终包含在注册 JMX 统计数据中。metrics.num.samples
type: int
Default: 2
Valid Values: [1,…]
Importance: low
维护到计算指标的示例数量。
metrics.recording.level
type: string
Default: INFO
Valid Values: [INFO, DEBUG, TRACE]
Importance: low
指标的最高记录级别。
metrics.sample.window.ms
Type: long
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: low
计算指标示例的时间窗口。
reconnect.backoff.max.ms
Type: long
Default: 1000 (1 second)
Valid Values: [0,…]
Importance: low
当重新连接到重复连接失败的代理时,需要等待的最大时间(毫秒)。如果提供,每个主机的 backoff 将为每个连续的连接失败指数增加,直到最高值。在计算 backoff 增长后,会添加 20% 随机的 jitter 以避免连接 storms。
reconnect.backoff.ms
Type: long
Default: 50
Valid Values: [0,…]
Importance: low
尝试重新连接到给定主机前需要等待的基本时间。这可避免在紧张循环中重复连接到主机。这个 backoff 适用于客户端到代理的所有连接尝试。
retries
type: int
Default: 2147483647
Valid Values: [0,…,2147483647]
Importance: low
设置大于零的值将导致客户端重新发送任何失败的请求,并出现潜在的临时错误。建议将值设为零或
MAX_VALUE
,并使用对应的超时参数来控制客户端应重试请求的时长。retry.backoff.ms
Type: long
Default: 100
Valid Values: [0,…]
Importance: low
尝试重试失败的请求前等待的时间。这可避免在某些故障情况下在严格的循环中重复发送请求。
sasl.kerberos.kinit.cmd
type: string
Default: /usr/bin/kinit
Importance: low
Kerberos kinit 命令路径。
sasl.kerberos.min.time.before.relogin
Type: long
Default: 60000
Importance: low
刷新尝试之间的登录线程睡眠时间。
sasl.kerberos.ticket.renew.jitter
Type: double
Default: 0.05
Importance: low
添加到续订时间的随机 jitter 百分比。
sasl.kerberos.ticket.renew.window.factor
Type: double
Default: 0.8
Importance: low
登录线程会处于睡眠状态,直到最后一次刷新到票据到期时间的指定窗口因子被达到,此时它将尝试续订票据。
sasl.login.connect.timeout.ms
Type: int
Default: null
Importance: low
(可选)外部身份验证供应商连接超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.read.timeout.ms
Type: int
Default: null
Importance: low
(可选)外部身份验证提供程序读取超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.buffer.seconds
Type: short
Default: 300
Valid Values: [0,…,3600]
Importance: low
刷新凭证时,凭证过期前要维护的缓冲区时间(以秒为单位)。如果刷新的过期时间比缓冲区秒数接近,则会移动刷新以尽可能多地维护缓冲区时间。法律值介于 0 到 3600 之间(1 小时);如果没有指定值,则使用默认值 300 (5 分钟)。如果它们总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.min.period.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.min.period.seconds
Type: short
Default: 60
Valid Values: [0,…,900]
Importance: low
在刷新凭证前,登录刷新线程需要最少的时间(以秒为单位)。法律值介于 0 到 900 (15 分钟);如果没有指定值,则使用默认值 60 (1 分钟)。如果其总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.buffer.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.factor
Type: double
Default: 0.8
Valid Values: [0.5,…,1.0]
Importance: low
登录刷新线程将休眠,直到达到了与凭证生命周期相关的指定窗口因子,在此期间它将尝试刷新凭证。法律值介于 0.5 (50%)和 1.0 (100%)之间,如果未指定值,则使用默认值 0.8 (80%)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.jitter
Type: double
Default: 0.05
Valid Values: [0.0,…,0.25]
Importance: low
与凭证生命周期相关的随机 jitter 的最大随机处理量,添加到登录刷新线程的睡眠时间中。法律值介于 0 到 0.25(25%)之间,如果没有指定值,则使用默认值 0.05(5%)。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(可选)值,以毫秒为单位,登录尝试外部身份验证提供程序之间的最长等待时间。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(可选)值,以毫秒为单位,用于登录尝试外部身份验证提供程序之间的初始等待。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.oauthbearer.clock.skew.seconds
Type: int
Default: 30
Importance: low
(可选)值(以秒为单位)允许 OAuth/OIDC 身份提供程序和代理的时间之间的区别。
sasl.oauthbearer.expected.audience
type: list
Default: null
Importance: low
(可选)代理的以逗号分隔的设置,用于验证为预期受众之一发布的 JWT。JWT 将检查是否有标准的 OAuth "aud" 声明,如果设置了这个值,代理将匹配 JWT 的"aud"声明中的值,以查看是否有完全匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.expected.issuer
Type: string
Default: null
Importance: low
(可选)代理用于验证 JWT 是由预期签发者创建的。JWT 将检查是否有标准的 OAuth"iss"声明,如果设置了这个值,代理将完全与 JWT 的"iss"声明中的内容匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.jwks.endpoint.refresh.ms
Type: long
Default: 3600000 (1 小时)
Importance: low
(可选)值(可选)代理在刷新其 JWKS (JSON Web Key Set)缓存之间等待的时间(以毫秒为单位),其中包含验证 JWT 签名的密钥。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(可选)值(以毫秒为单位),尝试从外部身份验证供应商检索 JWKS (JSON Web Key Set)之间的最长等待时间。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(可选)值,以毫秒为单位,用于来自外部身份验证提供程序的 JWKS (JSON Web Key Set)检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.scope.claim.name
type: string
Default: scope
Importance: low
范围的 OAuth 声明通常命名为"scope",但这(可选)设置可以提供与 JWT 有效负载声明中包含的范围使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
主题的 OAuth 声明通常名为"sub",但这(可选)设置可以提供与 JWT 有效负载声明中包含的主题使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
security.providers
Type: string
Default: null
Importance: low
可配置的创建者类列表,每个都返回实施安全算法的供应商。这些类应该实施
org.apache.kafka.common.security.auth.SecurityProviderCreator
接口。ssl.cipher.suites
type: list
Default: null
Importance: low
密码套件列表。这是身份验证、加密、MAC 和密钥交换算法的命名组合,用于使用 TLS 或 SSL 网络协议协商网络连接的安全设置。默认情况下支持所有可用的密码套件。
ssl.endpoint.identification.algorithm
type: string
Default: https
Importance: low
使用服务器证书验证服务器主机名的端点标识算法。
ssl.engine.factory.class
Type: class
Default: null
Importance: low
用于提供 SSLEngine 对象的 org.apache.kafka.common.security.auth.SslEngineFactory 类型的类。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。
ssl.keymanager.algorithm
type: string
Default: SunX509
Importance: low
用于 SSL 连接的密钥管理器工厂使用的算法。Default 值是为 Java 虚拟机配置的密钥管理器工厂算法。
ssl.secure.random.implementation
Type: string
Default: null
Importance: low
用于 SSL 加密操作的 SecureRandom PRNG 实现。
ssl.trustmanager.algorithm
type: string
Default: PKIX
Importance: low
信任管理器工厂用于 SSL 连接的算法。Default 值是为 Java 虚拟机配置的信任管理器工厂算法。
第 6 章 Kafka Connect 配置属性
config.storage.topic
type: string
Importance: high
存储连接器配置的 Kafka 主题的名称。
group.id
type: string
Importance: high
标识此 worker 所属的 Connect 集群组的唯一字符串。
key.converter
type: class
Importance: high
用于转换 Kafka Connect 格式和写入 Kafka 的序列化形式的转换器类。这控制了从 Kafka 写入或读取的信息中的密钥格式,因为这独立于连接器,允许任何连接器使用任何序列化格式。常见格式示例包括 JSON 和 Avro。
offset.storage.topic
type: string
Importance: high
存储源连接器偏移的 Kafka 主题的名称。
status.storage.topic
type: string
Importance: high
存储连接器和任务状态的 Kafka 主题的名称。
value.converter
type: class
Importance: high
用于转换 Kafka Connect 格式和写入 Kafka 的序列化形式的转换器类。这控制从 Kafka 写入或读取的信息中值的格式,因为这独立于连接器,允许任何连接器使用任何序列化格式。常见格式示例包括 JSON 和 Avro。
bootstrap.servers
type: list
Default: localhost:9092
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处指定的服务器的所有服务器进行引导 - 此列表仅影响用于发现整套服务器的初始主机。此列表应该采用
host1:port1,host2:port2,…
的形式。由于这些服务器仅用于初始连接来发现完整的群集成员(这可能会动态更改),此列表不需要包含完整的服务器集合(但在服务器停机的情况下可能需要多个服务器)。exactly.once.source.support
type: string
Default: disabled
Valid Values: (case insensitive)[DISABLED, ENABLED, PREPARING]
Importance: high
使用事务写入源记录及其源偏移,以及主动隔离旧任务生成前是否启用对集群中源连接器的完全支持。要在新集群中完全启用实时源支持,请将此属性设置为 'enabled'。要在现有集群上启用支持,首先在集群的每个 worker 上设置为"准备",然后设置为"启用"。滚动升级可用于这两个更改。有关此功能的更多信息,请参阅 完全之后的源支持文档。
heartbeat.interval.ms
Type: int
Default: 3000 (3 秒)
Importance: high
使用 Kafka 的组管理功能时,心跳到组协调器之间的预期时间。heartbeat 用于确保 worker 的会话保持活跃状态,并在新成员加入或离开组时进行重新平衡。该值必须小于
session.timeout.ms
,但设置的值通常不应超过这个值的 1/3。它甚至可以降低以控制正常重新平衡的预期时间。rebalance.timeout.ms
Type: int
Default: 60000 (1 minute)
Importance: high
重新平衡后,每个 worker 允许的最大时间加入组。这基本上是所有任务清除任何待处理数据和提交偏移所需的时间的限制。如果超过超时,则 worker 将从组中删除,这会导致偏移提交失败。
session.timeout.ms
Type: int
Default: 10000 (10 秒)
Importance: high
用于检测 worker 故障的超时。worker 发送定期心跳信号,以指示其到代理的存活度。如果在此会话超时过期前代理没有接收心跳,则代理将从组中删除 worker 并启动重新平衡。请注意,该值必须在允许范围内,由
group.min.session.timeout.ms
和group.max.session.timeout.ms
进行配置。ssl.key.password
Type: password
Default: null
Importance: high
密钥存储文件或 'ssl.keystore.key' 中指定的 PEM 密钥中的私钥密码。
ssl.keystore.certificate.chain
Type: password
Default: null
Importance: high
使用由 'ssl.keystore.type" 指定的格式的证书链。默认 SSL 引擎工厂只支持带有 X.509 证书列表的 PEM 格式。
ssl.keystore.key
Type: password
Default: null
Importance: high
使用 'ssl.keystore.type" 指定的格式的私钥。默认 SSL 引擎工厂只支持带有 PKCS#8 密钥的 PEM 格式。如果密钥加密,则必须使用 'ssl.key.password' 指定密钥密码。
ssl.keystore.location
Type: string
Default: null
Importance: high
密钥存储文件的位置。这是可选的,可用于客户端双向身份验证。
ssl.keystore.password
Type: password
Default: null
Importance: high
密钥存储文件的存储密码。这适用于客户端,只有在配置了 'ssl.keystore.location' 时才需要。PEM 格式不支持密钥存储密码。
ssl.truststore.certificates
Type: password
Default: null
Importance: high
可信证书,格式为 'ssl.truststore.type'。默认 SSL 引擎工厂仅支持使用 X.509 证书使用 PEM 格式。
ssl.truststore.location
Type: string
Default: null
Importance: high
信任存储文件的位置。
ssl.truststore.password
Type: password
Default: null
Importance: high
信任存储文件的密码。如果没有设置密码,则仍将使用配置的信任存储文件,但会禁用完整性检查。PEM 格式不支持信任存储密码。
client.dns.lookup
type: string
Default: use_all_dns_ips
Valid Values: [use_all_dns_ips, resolve_canonical_bootstrap_servers_only]
Importance: medium
控制客户端如何使用 DNS 查找。如果设置为
use_all_dns_ips
,按顺序连接到每个返回的 IP 地址,直到成功建立连接为止。断开连接后,会使用下一个 IP。使用了所有 IP 后,客户端会再次从主机名( JVM 和 OS 缓存 DNS 名称查找)解析 IP 地址。如果设置为resolve_canonical_bootstrap_servers_only
,请将每个 bootstrap 地址解析为规范名称列表。在 bootstrap 阶段后,这与use_all_dns_ips
相同。connections.max.idle.ms
Type: long
Default: 540000 (9 分钟)
Importance: medium
在此配置指定的毫秒数后关闭闲置连接。
connector.client.config.override.policy
type: string
Default: All
Importance: medium
ConnectorClientConfigOverridePolicy
的类名称或别名。定义连接器可覆盖哪些客户端配置。默认实现是All
,即连接器配置可以覆盖所有客户端属性。框架中的其他可能策略包括None
来禁止连接者覆盖客户端属性,和Principal
来允许连接者只能覆盖客户端的主体。receive.buffer.bytes
type: int
Default: 32768 (32 kibibytes)
Valid Values: [0,…]
Importance: medium
读取数据时使用的 TCP 接收缓冲区的大小(SO_RCVBUF)。如果值为 -1,则会使用 OS 默认值。
request.timeout.ms
type: int
Default: 40000 (40 seconds)
Valid Values: [0,…]
Importance: medium
配置控制客户端等待请求响应的最长时间。如果响应在超时前收到,客户端会在必要时重新发送请求,或者在重试已耗尽时失败请求。
sasl.client.callback.handler.class
Type: class
Default: null
Importance: medium
实现 AuthenticateCallbackHandler 接口的 SASL 客户端回调处理器类的完全限定名称。
sasl.jaas.config
Type: password
Default: null
Importance: medium
用于 SASL 连接的 JAAS 登录上下文参数,其格式由 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。值的格式是:
loginModuleClass controlFlag (optionName=optionValue)*;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule;.sasl.kerberos.service.name
Type: string
Default: null
Importance: medium
Kafka 运行的 Kerberos 主体名称。这可以在 Kafka 的 JAAS 配置或 Kafka 配置中定义。
sasl.login.callback.handler.class
Type: class
Default: null
Importance: medium
实现 AuthenticateCallbackHandler 接口的 SASL 登录回调处理器类的完全限定名称。对于代理,登录回调处理器配置必须以监听器前缀和 SASL 机制名称作为前缀作为前缀。例如,listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler。
sasl.login.class
Type: class
Default: null
Importance: medium
实现 Login 接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 SASL 机制名称前缀。For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin.
sasl.mechanism
type: string
Default: GSSAPI
Importance: medium
用于客户端连接的 SASL 机制。这可能是提供安全提供程序的任何机制。GSSAPI 是默认机制。
sasl.oauthbearer.jwks.endpoint.url
Type: string
Default: null
Importance: medium
从中检索提供程序 JWKS (JSON Web Key Set) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S)或基于文件的 URL。如果 URL 基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商中检索。所有 then-current 密钥都将缓存到代理上,用于传入的请求。如果为 JWT 收到身份验证请求,其中包含尚未在缓存中"kid"标头声明值,则 JWKS 端点将根据需要重新查询。但是,代理在每个 sasl.oauthbearer.jwks.endpoint.refresh.ms 毫秒中轮询 URL,以便在收到包含它们的 JWT 请求前使用任何即将刷新缓存。如果 URL 基于文件,代理将在启动时从配置的位置加载 JWKS 文件。如果 JWT 包含不在 JWKS 文件中的"kid"标头值,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.token.endpoint.url
Type: string
Default: null
Importance: medium
OAuth/OIDC 身份提供程序的 URL。如果 URL 基于 HTTP (S),则它是签发者的令牌端点 URL,请求将根据 sasl.jaas.config 中的配置登录。如果 URL 基于文件,它指定一个包含由 OAuth/OIDC 身份提供程序发布的访问令牌(在 JWT 序列化形式)的文件,以用于授权。
security.protocol
Type: string
Default: PLAINTEXT
Valid Values: [PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL]
Importance: medium
用于与代理通信的协议。有效值为: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.
send.buffer.bytes
type: int
Default: 131072 (128 kibibytes)
Valid Values: [0,…]
Importance: medium
在发送数据时使用的 TCP 发送缓冲区的大小(SO_SNDBUF)。如果值为 -1,则会使用 OS 默认值。
ssl.enabled.protocols
type: list
Default: TLSv1.2,TLSv1.3
Importance: medium
为 SSL 连接启用的协议列表。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.2'。使用 Java 11 的默认值,如果客户端和服务器同时支持 TLSv1.3,则客户端和服务器将首选 TLSv1.3,否则将回退到 TLSv1.2(假设两者都至少支持 TLSv1.2)。这个默认值对于大多数情况来说应该可以正常工作。另请参阅
ssl.protocol
的配置文档。ssl.keystore.type
type: string
Default: JKS
Importance: medium
密钥存储文件的文件格式。这对客户端是可选的。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。ssl.protocol
type: string
Default: TLSv1.3
Importance: medium
用于生成 SSLContext 的 SSL 协议。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.3'。这个值应该适用于大多数用例。最近的 JVM 中的允许值为 'TLSv1.2' 和 'TLSv1.3'。'TLS', 'TLSv1.1', 'SSL', 'SSLv2' 和 'SSLv3' 可能在较旧的 JVM 中被支持,但由于已知的安全漏洞,不建议使用它们的使用。使用这个配置和 'ssl.enabled.protocols' 的默认值,如果服务器不支持 'TLSv1.3',客户端将降级为 'TLSv1.2'。如果此配置被设置为 'TLSv1.2',则客户端将不会使用 'TLSv1.3',即使它是 ssl.enabled.protocols 中的一个值,且服务器只支持 'TLSv1.3'。
ssl.provider
Type: string
Default: null
Importance: medium
用于 SSL 连接的安全提供程序的名称。默认值为 JVM 的默认安全提供程序。
ssl.truststore.type
type: string
Default: JKS
Importance: medium
信任存储文件的文件格式。默认
ssl.engine.factory.class
目前支持的值是 [JKS, PKCS12, PEM]。worker.sync.timeout.ms
type: int
Default: 3000 (3 秒)
Importance: medium
当 worker 没有与其他 worker 同步且需要重新同步配置时,请在放弃前等待这个时间,保留组,并在重新加入前等待 backoff 周期。
worker.unsync.backoff.ms
Type: int
Default: 300000 (5 minutes)
Importance: medium
当 worker 没有与其他 worker 同步且无法在 worker.sync.timeout.ms 中捕获时,请保留 Connect 集群,然后再重新加入。
access.control.allow.methods
type: string
Default: ""
Importance: low
通过设置 Access-Control-Allow-Methods 标头来设置跨源请求支持的方法。Access-Control-Allow-Methods 标头的默认值允许 GET、POST 和 HEAD 的跨源请求。
access.control.allow.origin
type: string
Default: ""
Importance: low
为 REST API 请求将 Access-Control-Allow-Origin 标头设置为。要启用跨源访问,请将其设置为允许访问 API 的应用程序的域,或 '*' 允许从任何域进行访问。默认值仅允许从 REST API 域进行访问。
admin.listeners
type: list
Default: null
Valid Values: 以逗号分隔的 URL 列表,ex: http://localhost:8080,https://localhost:8443.
Importance: low
Admin REST API 将要侦听的、以逗号分隔的 URI 列表。支持的协议有 HTTP 和 HTTPS。空白字符串将禁用此功能。默认行为是使用常规监听程序(由 'listeners' 属性指定)。
auto.include.jmx.reporter
Type: boolean
Default: true
Importance: low
已弃用。即使没有在
metric.reporters
中列出,也自动包含 JmxReporter。此配置将在 Kafka 4.0 中删除,用户应改为将org.apache.kafka.common.metrics.JmxReporter
包含在metric.reporters
中,以便启用 JmxReporter。client.id
type: string
Default: ""
Importance: low
在发出请求时传递给服务器的 id 字符串。这样做的目的是通过允许将逻辑应用程序名称包含在服务器端请求日志中来跟踪超过 ip/port 的请求源。
config.providers
type: list
Default: ""
Importance: low
以逗号分隔的
ConfigProvider
类名称,按指定的顺序加载和使用。通过实施 interfaceConfigProvider
,您可以替换连接器配置中的变量引用,如外部化 secret。config.storage.replication.factor
Description: short
Default: 3
Valid Values: Positive number not than Kafka 集群中的代理数量,或者 -1 使用代理的默认
导入: low
创建配置存储主题时使用的复制因素。
connect.protocol
type: string
Default: sessioned
Valid Values: [eager, compatible, sessioned]
Importance: low
Kafka 连接协议的兼容性模式。
header.converter
type: class
Default: org.apache.kafka.connect.storage.SimpleHeaderConverter
Importance: low
HeaderConverter 类,用于转换 Kafka Connect 格式和写入 Kafka 的序列化表单。这控制了从 Kafka 写入或读取的信息中的标头值格式,因为这独立于连接器,允许任何连接器使用任何序列化格式。常见格式示例包括 JSON 和 Avro。默认情况下,SimpleHeaderConverter 用于将标头值序列化为字符串,并通过推断 schema 来反序列化它们。
inter.worker.key.generation.algorithm
type: string
Default: HmacSHA256
Valid Values: worker JVM
Importance: low 支持的任何 KeyGenerator 算法
用于生成内部请求密钥的算法。算法 'HmacSHA256' 将用作支持它的 JVM 的默认算法;在使用其他 JVM 中,不使用默认值,并在 worker 配置中手动指定此属性的值。
inter.worker.key.size
Type: int
Default: null
Importance: low
用于签名内部请求的密钥大小(以位为单位)。如果为 null,则使用密钥生成算法的默认密钥大小。
inter.worker.key.ttl.ms
type: int
Default: 3600000 (1 小时)
Valid Values: [0,…,2147483647]
Importance: low
用于内部请求验证(以毫秒为单位)生成的会话密钥的 TTL。
inter.worker.signature.algorithm
type: string
Default: HmacSHA256
Valid Values: worker JVM
Importance: low 支持的任何 MAC 算法
用于为内部请求算法 'inter.worker.signature.algorithm' 的算法将被用作支持它的 JVM 的默认算法;在其他 JVM 上,不使用默认值,且必须在 worker 配置中手动指定此属性的值。
inter.worker.verification.algorithms
type: list
Default: HmacSHA256
Valid Values: 一个或多个 MAC 算法的列表,每个算法都由 worker JVM
导入: low
验证内部请求的允许算法列表,它必须包含用于 inter.worker.signature.algorithm 属性的算法。该算法 '[HmacSHA256]' 将用作提供它们的 JVM 的默认算法;在其他 JVM 上,不使用默认值,并在 worker 配置中手动指定此属性的值。
监听器
type: list
Default: http://:8083
Valid Values: 列表用逗号分开的 URL, ex: http://localhost:8080,https://localhost:8443.
Importance: low
REST API 将要侦听的、以逗号分隔的 URI 列表。支持的协议有 HTTP 和 HTTPS。将 hostname 指定为 0.0.0.0 以绑定到所有接口。将 hostname 留空给默认接口。法律侦听器列表示例: HTTP://myhost:8083,HTTPS://myhost:8084。
metadata.max.age.ms
Type: long
Default: 300000 (5 minutes)
Valid Values: [0,…]
Importance: low
以毫秒为单位的时间,我们强制刷新元数据,即使我们未看到任何分区领导更改来主动发现任何新的代理或分区。
metric.reporters
type: list
Default: ""
Importance: low
用作指标报告器的类列表。通过实施
org.apache.kafka.common.metrics.MetricsReporter
接口,可以插入新指标创建通知的类。JmxReporter 始终包含在注册 JMX 统计数据中。metrics.num.samples
type: int
Default: 2
Valid Values: [1,…]
Importance: low
维护到计算指标的示例数量。
metrics.recording.level
type: string
Default: INFO
Valid Values: [INFO, DEBUG]
Importance: low
指标的最高记录级别。
metrics.sample.window.ms
Type: long
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: low
计算指标示例的时间窗口。
offset.flush.interval.ms
Type: long
Default: 60000 (1 minute)
Importance: low
尝试为任务提交偏移的时间间隔。
offset.flush.timeout.ms
Type: long
Default: 5000 (5 秒)
Importance: low
在取消进程并恢复将来尝试中的偏移数据前,等待记录刷新和分区偏移数据的最大毫秒数。此属性对使用完全支持运行的源连接器没有影响。
offset.storage.partitions
type: int
Default: 25
Valid Values: Positive number, 或 -1 来使用代理的默认
导入: low
创建偏移存储主题时使用的分区数量。
offset.storage.replication.factor
Description: short
Default: 3
Valid Values: Positive number not than Kafka 集群中的代理数量,或者 -1 使用代理的默认
导入: low
创建偏移存储主题时使用的复制因素。
plugin.path
type: list
Default: null
Importance: low
使用逗号分开的路径列表(,),其中包含插件(连接器、转换器、转换)。该列表应包含顶层目录,其中包含任何组合:a)目录,其中紧包含有插件及其依赖项 B 的 jar 目录。uber-jars (带有插件及其依赖项)目录会立即包含插件类及其依赖项结构的软件包目录结构,请注意:符号链接将遵循相应的依赖项或插件。示例: plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors Do not use config provider variables,因为原始路径供 worker 的扫描程序用于替换变量。
reconnect.backoff.max.ms
Type: long
Default: 1000 (1 second)
Valid Values: [0,…]
Importance: low
当重新连接到重复连接失败的代理时,需要等待的最大时间(毫秒)。如果提供,每个主机的 backoff 将为每个连续的连接失败指数增加,直到最高值。在计算 backoff 增长后,会添加 20% 随机的 jitter 以避免连接 storms。
reconnect.backoff.ms
Type: long
Default: 50
Valid Values: [0,…]
Importance: low
尝试重新连接到给定主机前需要等待的基本时间。这可避免在紧张循环中重复连接到主机。这个 backoff 适用于客户端到代理的所有连接尝试。
response.http.headers.config
type: string
Default: ""
Valid Values: Comma- separated header rules,其中每个标头规则都是 '[action] [header name]:[header value]',并在标头规则中的任何部分包含逗号
Importance: low,并选择性地被双引号包括: low
REST API HTTP 响应标头规则。
rest.advertised.host.name
Type: string
Default: null
Importance: low
如果设置了此设置,这是提供给其他 worker 连接的主机名。
rest.advertised.listener
Type: string
Default: null
Importance: low
设置提供给其他 worker 的公告监听程序(HTTP 或 HTTPS)。
rest.advertised.port
Type: int
Default: null
Importance: low
如果设置了此设置,这是提供给其他 worker 以进行连接的端口。
rest.extension.classes
type: list
Default: ""
Importance: low
以逗号分隔的
ConnectRestExtension
类名称,按照指定的顺序载入并调用。通过实施接口ConnectRestExtension
,您可以注入到 Connect 的 REST API 用户定义的资源,如过滤器。通常用于添加自定义功能,如日志记录、安全等。retry.backoff.ms
Type: long
Default: 100
Valid Values: [0,…]
Importance: low
尝试重试失败的请求到给定主题分区前等待的时间。这可避免在某些故障情况下在严格的循环中重复发送请求。
sasl.kerberos.kinit.cmd
type: string
Default: /usr/bin/kinit
Importance: low
Kerberos kinit 命令路径。
sasl.kerberos.min.time.before.relogin
Type: long
Default: 60000
Importance: low
刷新尝试之间的登录线程睡眠时间。
sasl.kerberos.ticket.renew.jitter
Type: double
Default: 0.05
Importance: low
添加到续订时间的随机 jitter 百分比。
sasl.kerberos.ticket.renew.window.factor
Type: double
Default: 0.8
Importance: low
登录线程会处于睡眠状态,直到最后一次刷新到票据到期时间的指定窗口因子被达到,此时它将尝试续订票据。
sasl.login.connect.timeout.ms
Type: int
Default: null
Importance: low
(可选)外部身份验证供应商连接超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.read.timeout.ms
Type: int
Default: null
Importance: low
(可选)外部身份验证提供程序读取超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.buffer.seconds
Type: short
Default: 300
Valid Values: [0,…,3600]
Importance: low
刷新凭证时,凭证过期前要维护的缓冲区时间(以秒为单位)。如果刷新的过期时间比缓冲区秒数接近,则会移动刷新以尽可能多地维护缓冲区时间。法律值介于 0 到 3600 之间(1 小时);如果没有指定值,则使用默认值 300 (5 分钟)。如果它们总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.min.period.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.min.period.seconds
Type: short
Default: 60
Valid Values: [0,…,900]
Importance: low
在刷新凭证前,登录刷新线程需要最少的时间(以秒为单位)。法律值介于 0 到 900 (15 分钟);如果没有指定值,则使用默认值 60 (1 分钟)。如果其总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.buffer.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.factor
Type: double
Default: 0.8
Valid Values: [0.5,…,1.0]
Importance: low
登录刷新线程将休眠,直到达到了与凭证生命周期相关的指定窗口因子,在此期间它将尝试刷新凭证。法律值介于 0.5 (50%)和 1.0 (100%)之间,如果未指定值,则使用默认值 0.8 (80%)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.jitter
Type: double
Default: 0.05
Valid Values: [0.0,…,0.25]
Importance: low
与凭证生命周期相关的随机 jitter 的最大随机处理量,添加到登录刷新线程的睡眠时间中。法律值介于 0 到 0.25(25%)之间,如果没有指定值,则使用默认值 0.05(5%)。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(可选)值,以毫秒为单位,登录尝试外部身份验证提供程序之间的最长等待时间。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(可选)值,以毫秒为单位,用于登录尝试外部身份验证提供程序之间的初始等待。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。
sasl.oauthbearer.clock.skew.seconds
Type: int
Default: 30
Importance: low
(可选)值(以秒为单位)允许 OAuth/OIDC 身份提供程序和代理的时间之间的区别。
sasl.oauthbearer.expected.audience
type: list
Default: null
Importance: low
(可选)代理的以逗号分隔的设置,用于验证为预期受众之一发布的 JWT。JWT 将检查是否有标准的 OAuth "aud" 声明,如果设置了这个值,代理将匹配 JWT 的"aud"声明中的值,以查看是否有完全匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.expected.issuer
Type: string
Default: null
Importance: low
(可选)代理用于验证 JWT 是由预期签发者创建的。JWT 将检查是否有标准的 OAuth"iss"声明,如果设置了这个值,代理将完全与 JWT 的"iss"声明中的内容匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。
sasl.oauthbearer.jwks.endpoint.refresh.ms
Type: long
Default: 3600000 (1 小时)
Importance: low
(可选)值(可选)代理在刷新其 JWKS (JSON Web Key Set)缓存之间等待的时间(以毫秒为单位),其中包含验证 JWT 签名的密钥。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(可选)值(以毫秒为单位),尝试从外部身份验证供应商检索 JWKS (JSON Web Key Set)之间的最长等待时间。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(可选)值,以毫秒为单位,用于来自外部身份验证提供程序的 JWKS (JSON Web Key Set)检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。
sasl.oauthbearer.scope.claim.name
type: string
Default: scope
Importance: low
范围的 OAuth 声明通常命名为"scope",但这(可选)设置可以提供与 JWT 有效负载声明中包含的范围使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
主题的 OAuth 声明通常名为"sub",但这(可选)设置可以提供与 JWT 有效负载声明中包含的主题使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。
scheduled.rebalance.max.delay.ms
type: int
Default: 300000 (5 minutes)
Valid Values: [0,…,2147483647]
Importance: low
调度的最大延迟时间,以等待一个或多个取消部分 worker 返回,然后再重新平衡并将其连接器和任务重新分配给组。在此期间,已分离的 worker 的连接器和任务仍保持未分配。
socket.connection.setup.timeout.max.ms
Type: long
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: low
客户端将等待套接字连接建立的最长时间。对于每个连续连接失败,连接设置超时将以指数级增长到此最大值。为避免连接失败,0.2 的随机因素将应用于超时,导致在计算值高于计算值的 20% 到 20% 之间的随机范围。
socket.connection.setup.timeout.ms
Type: long
Default: 10000 (10 秒)
Valid Values: [0,…]
Importance: low
客户端将等待套接字连接建立的时间。如果在超时前没有构建连接,客户端将关闭套接字频道。
ssl.cipher.suites
type: list
Default: null
Importance: low
密码套件列表。这是身份验证、加密、MAC 和密钥交换算法的命名组合,用于使用 TLS 或 SSL 网络协议协商网络连接的安全设置。默认情况下支持所有可用的密码套件。
ssl.client.auth
type: string
Default: none
Valid Values: [required, requested, none]
Importance: low
配置 kafka 代理以请求客户端身份验证。以下设置很常见:
-
ssl.client.auth=required
if set to required client authentication required. -
ssl.client.auth=requested
意味着客户端身份验证是可选的。如果需要,如果设置此选项,客户端可以选择不提供有关其自身的身份验证信息 -
SSL.client.auth=none
意味着不需要客户端身份验证。
-
ssl.endpoint.identification.algorithm
type: string
Default: https
Importance: low
使用服务器证书验证服务器主机名的端点标识算法。
ssl.engine.factory.class
Type: class
Default: null
Importance: low
用于提供 SSLEngine 对象的 org.apache.kafka.common.security.auth.SslEngineFactory 类型的类。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。
ssl.keymanager.algorithm
type: string
Default: SunX509
Importance: low
用于 SSL 连接的密钥管理器工厂使用的算法。Default 值是为 Java 虚拟机配置的密钥管理器工厂算法。
ssl.secure.random.implementation
Type: string
Default: null
Importance: low
用于 SSL 加密操作的 SecureRandom PRNG 实现。
ssl.trustmanager.algorithm
type: string
Default: PKIX
Importance: low
信任管理器工厂用于 SSL 连接的算法。Default 值是为 Java 虚拟机配置的信任管理器工厂算法。
status.storage.partitions
type: int
Default: 5
Valid Values: Positive number, 或 -1 来使用代理的默认
导入: low
创建状态存储主题时使用的分区数量。
status.storage.replication.factor
Description: short
Default: 3
Valid Values: Positive number not than Kafka 集群中的代理数量,或者 -1 使用代理的默认
导入: low
创建状态存储主题时使用的复制因素。
task.shutdown.graceful.timeout.ms
Type: long
Default: 5000 (5 秒)
Importance: low
等待任务正常关闭的时间。这是总时间,而不是每个任务。所有任务都触发了关闭,然后按顺序等待它们。
topic.creation.enable
Type: boolean
Default: true
Importance: low
当源连接器配置了
topic.creation.
属性时,是否允许自动创建源连接器。每个任务都将使用 admin 客户端创建其主题,且不会依赖于 Kafka 代理自动创建主题。topic.tracking.allow.reset
Type: boolean
Default: true
Importance: low
如果设置为 true,则允许用户请求每个连接器重置活跃主题集合。
topic.tracking.enable
Type: boolean
Default: true
Importance: low
启用在运行时跟踪每个连接器的活动主题集合。
第 7 章 Kafka Streams 配置属性
application.id
type: string
Importance: high
流处理应用程序的标识符。在 Kafka 集群中必须是唯一的。它被用作 1)默认的 client-id 前缀 2,用于成员资格管理的 group-id,3)changelog 主题前缀。
bootstrap.servers
type: list
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处指定的服务器的所有服务器进行引导 - 此列表仅影响用于发现整套服务器的初始主机。此列表应该采用
host1:port1,host2:port2,…
的形式。由于这些服务器仅用于初始连接来发现完整的群集成员(这可能会动态更改),此列表不需要包含完整的服务器集合(但在服务器停机的情况下可能需要多个服务器)。num.standby.replicas
Type: int
Default: 0
Importance: high
每个任务的待机副本数。
state.dir
type: string
Default: /tmp/kafka-streams
Importance: high
状态存储的目录位置。共享同一底层文件系统的每个流实例都需要此路径。
acceptable.recovery.lag
Type: long
Default: 10000
Valid Values: [0,…]
Importance: medium
可接受的最大 lag (用于捕获的偏移数)使客户端被视为立即捕获,以接收活跃的任务分配。在分配后,它仍然会在处理前恢复更改日志的其余部分。为了避免在重新平衡期间暂停处理,此配置应与给定工作负载的一分钟内良好恢复时间对应。必须至少为 0。
cache.max.bytes.buffering
Type: long
Default: 10485760
Valid Values: [0,…]
Importance: medium
用于在所有线程间缓冲的最大内存字节数。
client.id
type: string
Default: ""
Importance: medium
用于内部消费者、生成者和恢复消费者的客户端 ID 的 ID 前缀字符串,其模式为 <
client.id>-StreamThread-<threadSequenceNumber$gt;-<consumer|producer|restore-consumer
>。default.deserialization.exception.handler
type: class
Default: org.apache.kafka.streams.errors.LogAndFailExceptionHandler
Importance: medium
实现
org.apache.kafka.streams.errors.DeserializationExceptionHandler
接口的异常处理类。default.key.serde
Type: class
Default: null
Importance: medium
默认 serializer / deserializer 类用于实施
org.apache.kafka.common.serialization.Serde
接口的密钥。请注意,当使用 windowed serde 类时,需要通过 'default.windowed.key.serde.inner' 或 'default.windowed.serde 接口设置实现org.apache.kafka.common.serialization.Serde
.key.serde.inner' 或 'default.windowed.value.serde.default.list.key.serde.inner
Type: class
Default: null
Importance: medium
默认内部类是实施
org.apache.kafka.common.serialization.Serde
接口的关键。只有在default.key.serde
配置被设置为org.apache.kafka.common.serialization.Serdes.ListSerde
时,此配置才会被读取。default.list.key.serde.type
Type: class
Default: null
Importance: medium
用于实施
java.util.List
接口的密钥的默认类。只有在将default.key.serde
配置设置为org.apache.kafka.common.serialization.Serdes.ListSerde
note when list serde class when when list serde class 时,需要设置通过 'default.list.keyserdener serde.inner' 实施org.apache.kafka.common.serialization.Serde
接口时的 inner serde 类。default.list.value.serde.inner
Type: class
Default: null
Importance: medium
默认内部类是实施
org.apache.kafka.common.serialization.Serde
接口的值。只有在default.value.serde
配置被设置为org.apache.kafka.common.serialization.Serdes.ListSerde
时,此配置才会被读取。default.list.value.serde.type
Type: class
Default: null
Importance: medium
用于实现
java.util.List
接口的值的默认类。只有在default.value.serde
配置且只有这个设置被设置为org.apache.kafka.common.serialization.Serdes.ListSerde
是才会从这个配置中读取。请注意,当使用 list serde 类时,一个需要设置 inner serde 类,它实现了org.apache.kafka.common.serialization.Serde
接口(通过 'default.list.value.serde.inner')。default.production.exception.handler
type: class
Default: org.apache.kafka.streams.errors.DefaultProductionExceptionHandler
Importance: medium
实现
org.apache.kafka.streams.errors.ProductionExceptionHandler
接口的异常处理类。default.timestamp.extractor
type: class
Default: org.apache.kafka.streams.processor.FailOnInvalidTimestamp
Importance: medium
实现
org.apache.kafka.streams.processor.TimestampExtractor
接口的默认时间戳提取器类。default.value.serde
Type: class
Default: null
Importance: medium
默认 serializer / deserializer 类用于实现
org.apache.kafka.common.serialization.Serde
接口的值。请注意,当使用 windowed serde 类时,需要通过 'default.windowed.key.serde.inner' 或 'default.windowed.serde 接口设置实现org.apache.kafka.common.serialization.Serde
.key.serde.inner' 或 'default.windowed.value.serde.max.task.idle.ms
Type: long
Default: 0
Importance: medium
此配置控制加入和合并是否可能会产生不排序的结果。config 值是当流任务完全在一些(但不是所有)输入分区上完全捕获时,流任务将保持闲置的最大时间(以毫秒为单位),以等待制作者发送额外的记录,并避免在多个输入流中潜在的边界记录处理。默认(零)不会等待制作者发送更多记录,但会等待代理上已存在的数据。这个默认意味着,对于代理上已存在的记录,流会按照时间戳顺序处理它们。设置为 -1,以禁用完全闲置,并处理任何本地可用的数据,即使这样做可能会生成超出顺序处理。
max.warmup.replicas
type: int
Default: 2
Valid Values: [1,…]
Importance: medium
可以同时分配最多的 warmup 副本数(除配置的 num.standby 之外的额外待机),以便在一个实例上保持任务可用,但它被重新分配到另一个实例。用于限制可用于高可用性的额外代理流量和集群状态。必须至少为 1.
num.stream.threads
Type: int
Default: 1
Importance: medium
执行流处理的线程数量。
processing.guarantee
type: string
Default: at_least_once
Valid Values: [at_least_once, exactly_once, exactly_once_beta, exactly_once_v2]
Importance: medium
处理保证应使用。可能的值有
at_least_once
(默认)和exactly_once_v2
(需要代理版本 2.5 或更高版本)。弃用的选项exactly_once
(需要代理版本 0.11.0 或更高版本)和exactly_once_beta
(需要代理版本 2.5 或更高版本)。请注意,完全处理需要至少三个代理的集群,这是生产的建议设置;通过调整代理设置transaction.state.log.replication.factor
和transaction.state.log.min.isr
。rack.aware.assignment.tags
type: list
Default: ""
Valid Values: List contains maximum of 5 element
Importance: medium
用于在 Kafka Streams 实例之间分布备用副本的客户端标签密钥列表。配置后,Kafka Streams 将让一个 best-effort 在每个客户端标签维度上分发备用任务。
replication.factor
type: int
Default: -\":\"Importance: medium
更改日志主题和由流处理应用程序创建的重新分区主题的复制因素。默认
-1
(主题:使用代理默认复制因子)需要代理版本 2.4 或更新版本。security.protocol
Type: string
Default: PLAINTEXT
Valid Values: [PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL]
Importance: medium
用于与代理通信的协议。有效值为: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.
statestore.cache.max.bytes
Type: long
Default: 10485760 (10 mebibytes)
Valid Values: [0,…]
Importance: medium
在所有线程中用于 statestore 缓存的最大内存字节数。
task.timeout.ms
Type: long
Default: 300000 (5 minutes)
Valid Values: [0,…]
Importance: medium
任务可能会因为内部错误而停止的最长时间(毫秒)并重试直到引发错误为止。对于 0ms 超时,任务会引发第一个内部错误的错误。对于大于 0ms 的任何超时,任务会在引发错误前至少重试一次。
topology.optimization
type: string
Default: none
Valid Values: org.apache.kafka.streams.StreamsConfig$$Lambda$27/0x0000000840079840@ed17bee
Importance: medium
配置会告知 Kafka Streams (如果应该优化拓扑)以及要应用的优化。可接受的值有:"NO_OPTIMIZATION"、"OPTIMIZE"或以逗号分隔的特定优化列表:("REUSE_KTABLE_SOURCE_TOPICS", "MERGE_REPARTITION_TOPICS" + "SINGLE_STORE_SELF_JOIN+")."NO_OPTIMIZATION"。
application.server
type: string
Default: ""
Importance: low
host:port 对指向用户定义的端点,可用于在此 KafkaStreams 实例中状态存储发现和交互式查询。
auto.include.jmx.reporter
Type: boolean
Default: true
Importance: low
已弃用。即使没有在
metric.reporters
中列出,也自动包含 JmxReporter。此配置将在 Kafka 4.0 中删除,用户应改为将org.apache.kafka.common.metrics.JmxReporter
包含在metric.reporters
中,以便启用 JmxReporter。buffered.records.per.partition
Type: int
Default: 1000
Importance: low
每个分区要缓冲的最大记录数。
built.in.metrics.version
type: string
Default: latest
Valid Values: [latest]
Importance: low
要使用的内置指标的版本。
commit.interval.ms
Type: long
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: low
提交处理进度的频率(毫秒)。对于 in-least-once 处理,提交意味着保存处理器的位置(例如,偏移)。对于完全处理,这意味着要提交包括保存位置的事务,并使提交的数据在输出主题中对具有隔离级别 read_committed 的用户可见。(请注意,如果
processing.guarantee
设置为exactly_once_v2
,exactly_once
,则默认值为100
,否则默认值为30000
。connections.max.idle.ms
Type: long
Default: 540000 (9 分钟)
Importance: low
在此配置指定的毫秒数后关闭闲置连接。
default.dsl.store
type: string
Default: rocksDB
Valid Values: [rocksDB, in_memory]
Importance: low
DSL 操作器使用的默认状态存储类型。
metadata.max.age.ms
Type: long
Default: 300000 (5 minutes)
Valid Values: [0,…]
Importance: low
以毫秒为单位的时间,我们强制刷新元数据,即使我们未看到任何分区领导更改来主动发现任何新的代理或分区。
metric.reporters
type: list
Default: ""
Importance: low
用作指标报告器的类列表。通过实施
org.apache.kafka.common.metrics.MetricsReporter
接口,可以插入新指标创建通知的类。JmxReporter 始终包含在注册 JMX 统计数据中。metrics.num.samples
type: int
Default: 2
Valid Values: [1,…]
Importance: low
维护到计算指标的示例数量。
metrics.recording.level
type: string
Default: INFO
Valid Values: [INFO, DEBUG, TRACE]
Importance: low
指标的最高记录级别。
metrics.sample.window.ms
Type: long
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: low
计算指标示例的时间窗口。
poll.ms
Type: long
Default: 100
Importance: low
块等待输入的时间(以毫秒为单位)。
probing.rebalance.interval.ms
Type: long
Default: 600000 (10 minutes)
Valid Values: [60000,…]
Importance: low
在触发重新平衡来探测完成并准备好激活的 warmup 副本前需要等待的最长时间(毫秒)。探测重新平衡将继续触发,直到分配均衡为止。必须至少为 1 分钟。
receive.buffer.bytes
type: int
Default: 32768 (32 kibibytes)
Valid Values: [-1,…]
Importance: low
读取数据时使用的 TCP 接收缓冲区的大小(SO_RCVBUF)。如果值为 -1,则会使用 OS 默认值。
reconnect.backoff.max.ms
Type: long
Default: 1000 (1 second)
Valid Values: [0,…]
Importance: low
当重新连接到重复连接失败的代理时,需要等待的最大时间(毫秒)。如果提供,每个主机的 backoff 将为每个连续的连接失败指数增加,直到最高值。在计算 backoff 增长后,会添加 20% 随机的 jitter 以避免连接 storms。
reconnect.backoff.ms
Type: long
Default: 50
Valid Values: [0,…]
Importance: low
尝试重新连接到给定主机前需要等待的基本时间。这可避免在紧张循环中重复连接到主机。这个 backoff 适用于客户端到代理的所有连接尝试。
repartition.purge.interval.ms
Type: long
Default: 30000 (30 seconds)
Valid Values: [0,…]
Importance: low
从重新分区主题中删除完全消耗的记录的频率(毫秒)。在最后一次清除后,清除将至少发生这个值,但可能会延迟到以后。(请注意,与
commit.interval.ms
不同,这个值的默认值在processing.guarantee
设置为exactly_once_v2
时保持不变。request.timeout.ms
type: int
Default: 40000 (40 seconds)
Valid Values: [0,…]
Importance: low
配置控制客户端等待请求响应的最长时间。如果响应在超时前收到,客户端会在必要时重新发送请求,或者在重试已耗尽时失败请求。
retries
type: int
Default: 0
Valid Values: [0,…,2147483647]
Importance: low
设置大于零的值将导致客户端重新发送任何失败的请求,并出现潜在的临时错误。建议将值设为零或
MAX_VALUE
,并使用对应的超时参数来控制客户端应重试请求的时长。retry.backoff.ms
Type: long
Default: 100
Valid Values: [0,…]
Importance: low
尝试重试失败的请求到给定主题分区前等待的时间。这可避免在某些故障情况下在严格的循环中重复发送请求。
rocksdb.config.setter
Type: class
Default: null
Importance: low
一个 Rocks DB config setter 类或类名称,用于实现
org.apache.kafka.streams.state.RocksDBConfigSetter
接口。send.buffer.bytes
type: int
Default: 131072 (128 kibibytes)
Valid Values: [-1,…]
Importance: low
在发送数据时使用的 TCP 发送缓冲区的大小(SO_SNDBUF)。如果值为 -1,则会使用 OS 默认值。
state.cleanup.delay.ms
Type: long
Default: 600000 (10 分钟)
Importance: low
分区迁移时,在删除状态前等待的时间(毫秒)。仅删除未修改的
state.cleanup.delay.ms
的状态目录。upgrade.from
Description: string
Default: null
Valid Values: [null, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 1.0, 1.1, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 3.0, 3.1, 3.2, 3.3]
Importance: low
允许以向后兼容的方式进行升级。从 [0.10.0.0, 1.1] 升级到 2.0+,或者从 [2.0, 2.3] 升级到 2.4+ 时需要。当从 3.3 升级到更新的版本时,不需要指定此配置。默认为
null
。接受的值为 "0.10.0", "0.10.1", "0.10.2", "0.11.0", "1.0", "1.1", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "3.0", "3.1", "3.2", "3.3" (用于从对应的旧版本升级)。window.size.ms
Type: long
Default: null
Importance: low
为反序列化izer 设置窗口大小,以计算窗口的结束时间。
windowed.inner.class.serde
Type: string
Default: null
Importance: low
窗口记录的内部类的默认序列化器/反序列化器。必须实施
org.apache.kafka.common.serialization.Serde
接口。请注意,在 KafkaStreams 应用程序中设置此配置会导致错误,因为它只用于来自 Plain consumer 客户端。windowstore.changelog.additional.retention.ms
Type: long
Default: 86400000 (1 day)
Importance: low
添加到窗口维护M 中,以确保之前不会从日志中删除数据。允许时钟偏移。默认为 1 天。
附录 A. 使用您的订阅
AMQ Streams 通过软件订阅提供。要管理您的订阅,请访问红帽客户门户中的帐户。
访问您的帐户
- 转至 access.redhat.com。
- 如果您还没有帐户,请创建一个帐户。
- 登录到您的帐户。
激活订阅
- 转至 access.redhat.com。
- 导航到 My Subscriptions。
- 导航到 激活订阅 并输入您的 16 位激活号。
下载 Zip 和 Tar 文件
要访问 zip 或 tar 文件,请使用客户门户网站查找下载的相关文件。如果您使用 RPM 软件包,则不需要这一步。
- 打开浏览器并登录红帽客户门户网站 产品下载页面,网址为 access.redhat.com/downloads。
- 在 INTEGRATION AND AUTOMATION 目录中找到 AMQ Streams for Apache Kafka 项。
- 选择所需的 AMQ Streams 产品。此时会打开 Software Downloads 页面。
- 单击组件的 Download 链接。
使用 DNF 安装软件包
要安装软件包以及所有软件包的依赖软件包,请使用:
dnf install <package_name>
要从本地目录中安装之前下载的软件包,请使用:
dnf install <path_to_download_package>
更新于 2023-05-19