Kafka 配置属性
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 代理配置属性 复制链接链接已复制到粘贴板!
advertised.listeners
type: string
Default: null
Importance: high
Dynamic update: per-broker
与监听程序配置属性不同,用来发布 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
进行配置。如果领导 imbalance 超过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 和用户配置的代理 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')。它还接受"未压缩",相当于没有压缩;而 "producer' 则保留由制作者设置的原始压缩 codec。
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
开始新选举前的最长时间(毫秒)。这用于二进制指数避退机制,以帮助防止网格锁定选举机制。
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 前的最大时间,而无需从大多数仲裁获得获取。
controller.quorum.voters
type: list
Default: ""
Valid Values: non-empty list
Importance: high
Dynamic update: read-only
在以逗号分隔的
{id}@{host}:{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
启用删除主题。如果这个配置已关闭,则通过 admin 工具删除主题将无效。
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 以绑定到所有接口。将主机名留空以绑定到默认接口。法律监听程序列表示例: 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
日志清除程序检查是否需要刷新到磁盘的频率,以 ms 为单位。
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
当
process.roles
非空时,与此过程的角色关联的节点 ID。这是以 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
绑定,乘以集群中代理的数量。把这个值增加后续 CPU 和内存使用率成本的 I/O 并行性。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
在将偏移加载到缓存中时从偏移片段读取的批处理大小(如果记录太大,则覆盖软限制)。
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
偏移主题的压缩 codec - 压缩可用于实现"原子"提交。
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 和事务加载到缓存中时,从事务日志片段读取批处理大小(如果记录太大,则覆盖软限制)。
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
将客户端设置为使用安全 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.5-IV2
Valid Values: [0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.10.0-IV0, 0.10.0-IV1, 0.10.1-IV0, 0.10.1-IV1, 0.10.1-IV2, 0.10.2-IV0, 0.11.0-IV0, 0.11.0-IV1, 0.11.0-IV2, 1.0-IV0, 1.1-IV0, 1.1-IV0, 1.1-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-iv0, 2.3-iv1, 2.4-iv0, 2.4-iv1, 2.5-iv0, 2.6-iv0, 2.7-iv0, 2.7-iv1, 2.7-iv2, 2.8-iv0, 2.8-iv1, 3.0-iv0, 3.0-iv1, 3.0-iv0, 3.0-iv1, 3.1-IV0, 3.2-IV0, 3.3-IV0, 3.3-IV1, 3.3-IV2, 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2]
Importance: medium
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
用于在所有干净线程中日志重复数据删除的总内存。
log.cleaner.delete.retention.ms
Type: long
Default: 86400000 (1 day)
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
为日志压缩主题保留 delete tombstone 标记的时间长度。此设置还绑定消费者在偏移 0 开始时消费者必须完成读取,以确保它们获得最终阶段的有效快照(在完成扫描前可能会收集其他地删除 tombstones)。
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.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 配置,则日志紧凑器会认为满足脏比率阈值,并且日志至少具有日志.cleaner.min.compaction.compaction.compaction.compaction.lag.ms 持续时间的日志。 或者(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
保留窗口之外的片段的默认清理策略。以逗号分隔的有效策略列表。有效策略为:"删除"和"紧凑"。
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-IV1
Valid Values: [0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.10.0-IV0, 0.10.0-IV1, 0.10.1-IV0, 0.10.1-IV1, 0.10.1-IV2, 0.10.2-IV0, 0.11.0-IV0, 0.11.0-IV1, 0.11.0-IV2, 1.0-IV0, 1.1-IV0, 1.1-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-iv0, 2.3-iv1, 2.4-iv0, 2.4-iv1, 2.5-iv0, 2.6-iv0, 2.7-iv0, 2.7-iv1, 2.7-iv2, 2.8-iv0, 2.8-iv1, 3.0-iv0, 3.0-iv1, 3.0-iv0, 3.0-iv1, 3.1-IV0, 3.2-IV0, 3.3-IV0, 3.3-IV1, 3.3-IV2, 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2]
Importance: medium
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 侦听程序的连接。max.connections
type: int
Default: 2147483647
Valid Values: [0,…]
Importance: medium
Dynamic update: cluster-wide
在代理中允许的最大连接数。除了使用 max.connections.per.ip 配置的 per-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
以逗号分隔的每个ip 或主机名列表会覆盖默认连接数。示例值为 "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
生成者请求的清除间隔(以请求数为单位)。
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
尝试为每个分区获取的消息字节数。如果获取的第一个非空分区中的第一个非空分区中的第一个记录批处理大于这个值,则记录批处理仍会返回,以确保进行进度。代理接受的最大记录批处理大小通过
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
JAAS 连接的 JAAS 登录上下文参数,格式为 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。该值的格式是:
loginModuleClass controlFlag (optionName=optionValue) 114;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required;。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
实施登录接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 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 密钥集) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S),也可以是基于文件的。如果 URL 是基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商检索。所有 then-current 密钥都将缓存在代理上,以获取传入请求。如果为包含尚未在缓存中的"kid"标头声明值的 JWT 收到身份验证请求,则 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。在实践中,SCRAM、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
。 -
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.3',否则为 '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 连接的密钥管理器工厂使用的算法。默认值为为 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 引擎工厂只支持使用 PKCS1148 密钥的 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.3',否则为 'TLSv1.2'。对于大多数用例,这个值应该是正常的。最近的 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 连接的算法。默认值为为 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
在将 TLS 连接到 ZooKeeper 时,通常设置为
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
系统属性设置的任何值(注意不同的名称)。如果没有设置且未设置zookeeper.clientCnxnSocket
时(通常为org.apache.zookeeper.ClientCnxnSocket.ClientCnxnSocketNetty );要设置的其他值可能包括
zookeeper.ssl.crl.enablezookeeper
.ssl.cipher.suiteszookeeper.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)设置的任何显式值。请注意,Zookeep 不支持与密钥存储密码不同的密钥密码,因此请确保将密钥存储中的密钥密码设置为与密钥存储密码相同;否则,尝试 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
应该用于验证的更改配置策略类。类应实施
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> 配额。对于任何给定请求,最具体的配额与会话的用户主体匹配,并且应用请求的 client-id。
connection.failed.authentication.delay.ms
type: int
Default: 100
Valid Values: [0,…]
Importance: low
Dynamic update: read-only
在身份验证失败时连接关闭延迟:这是在身份验证失败时关闭连接的时间(以毫秒为单位)。这必须配置为小于 connections.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 主题策略类。类应实施
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 操作,自定义报告器还需要实施扩展kafka.metrics.KafkaMetricsReporterMBean
特征的 MBean 特征,以便注册的 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
(可选)值(以毫秒为单位),在登录尝试到外部身份验证提供程序之间的最大等待。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 backoff 算法,并在尝试最多等待一个由 sasl.login.retry.backoff.max.ms 设置中指定的最长等待长度之间加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
Dynamic update: read-only
(可选)在登录尝试外部身份验证提供程序之间初始等待的值(毫秒)。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 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 密钥集)缓存之间等待的值,该缓存包含密钥以验证 JWT 的签名。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
Dynamic update: read-only
(可选)值(以毫秒为单位),在尝试从外部身份验证提供程序检索 JWKS (JSON Web 密钥集)之间等待的最大值。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 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 密钥集)从外部身份验证提供程序检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 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",但如果 OAuth/OIDC 供应商使用了其他声明的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的范围。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
Dynamic update: read-only
主题的 OAuth 声明通常命名为 "sub",但如果 OAuth/OIDC 供应商使用该声明使用不同的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的主题。
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
类型 org.apache.kafka.common.security.auth.SslEngineFactory 的类,以提供 SSLEngine 对象。默认值为 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.hostname 验证
系统属性设置的任何 "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 章 主题配置属性 复制链接链接已复制到粘贴板!
第 3 章 消费者配置属性 复制链接链接已复制到粘贴板!
key.deserializer
type: class
Importance: high
实现
org.apache.kafka.common.serialization.Deserializer
接口的密钥的反序列化类。value.deserializer
type: class
Importance: high
用于实现
org.apache.kafka.common.serialization.Deserializer
接口的值的反序列化类。bootstrap.servers
type: list
Default: ""
Valid Values: non-null string
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处为 bootstrap 指定哪些服务器的所有服务器 - 此列表仅影响用于发现完整服务器的初始主机。此列表的格式应为
host1:port1,host2:port2,…
。由于这些服务器仅用于发现完整的集群成员资格(可能会动态更改),因此此列表不需要包含完整的服务器集合(但是,在服务器停机时可能需要多个服务器)。fetch.min.bytes
type: int
Default: 1
Valid Values: [0,…]
Importance: high
服务器为获取请求返回的最小数据量。如果数据不足,请求将在回答请求前等待该数量的数据累积。1 字节的默认设置表示,当数据有很多字节或获取请求超时等待数据到达时,就会对获取请求进行回答。把它设置为较大的值将导致服务器等待大量数据积累,这可以提高服务器吞吐量(以一些额外的延迟为代价)。
group.id
Type: string
Default: null
Importance: high
标识此消费者所属的消费者组的唯一字符串。如果消费者使用
subscribe (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 引擎工厂只支持使用 PKCS1148 密钥的 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 和操作系统缓存 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)的消息,这是第一个打开事务的偏移数小。特别是在属于持续事务的消息后出现的任何消息都会被忘记,直到相关事务完成为止。因此,当有 flight 事务时,read_committed
使用者将无法读取高水位线。Further, when in `read_committed` the seekToEnd method will return the LSO .
Further, when in `read_committed` the seekToEnd method will return the LSO .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow max.poll.interval.ms
type: int
Default: 300000 (5 minutes)
Valid Values: [1,…]
Importance: medium
使用消费者组管理时调用 poll ()的最大延迟。这会在获取更多记录前,在消费者闲置的时间上放置上限。如果在超时过期前没有调用 poll (),则消费者被视为失败,组将重新平衡,以便将分区重新分配给另一个成员。对于使用达到这个超时的非空
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
: Guarantee 分配一个最大平衡的分配,同时尽可能保留尽可能多的分区分配。 org.apache.kafka.clients.consumer.CcoordinationStickyAssignor
: 遵循相同的 StickyAssignor 逻辑,但允许合作重新平衡。默认分配者为 [RangeAssignor, CcoordinationStickyAssignor],它将默认使用 RangeAssignor,但允许使用 RangeAssignor,但只允许使用一个带有单一滚动 bounce 的 CcolStickyAssignor,它将从列表中删除 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
JAAS 连接的 JAAS 登录上下文参数,格式为 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。该值的格式是:
loginModuleClass controlFlag (optionName=optionValue) 114;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required;。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
实施登录接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 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 密钥集) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S),也可以是基于文件的。如果 URL 是基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商检索。所有 then-current 密钥都将缓存在代理上,以获取传入请求。如果为包含尚未在缓存中的"kid"标头声明值的 JWT 收到身份验证请求,则 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.3',否则为 '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.3',否则为 'TLSv1.2'。对于大多数用例,这个值应该是正常的。最近的 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 以避免连接停滞。
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
(可选)值(以毫秒为单位),在登录尝试到外部身份验证提供程序之间的最大等待。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 backoff 算法,并在尝试最多等待一个由 sasl.login.retry.backoff.max.ms 设置中指定的最长等待长度之间加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)在登录尝试外部身份验证提供程序之间初始等待的值(毫秒)。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 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 密钥集)缓存之间等待的值,该缓存包含密钥以验证 JWT 的签名。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(以毫秒为单位),在尝试从外部身份验证提供程序检索 JWKS (JSON Web 密钥集)之间等待的最大值。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置之间的等待长度之间加倍。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(以毫秒为单位),用于 JWKS (JSON Web 密钥集)从外部身份验证提供程序检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置之间的等待长度之间加倍。
sasl.oauthbearer.scope.claim.name
type: string
Default: scope
Importance: low
范围的 OAuth 声明通常命名为"scope",但如果 OAuth/OIDC 供应商使用了其他声明的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的范围。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
主题的 OAuth 声明通常命名为 "sub",但如果 OAuth/OIDC 供应商使用该声明使用不同的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的主题。
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
类型 org.apache.kafka.common.security.auth.SslEngineFactory 的类,以提供 SSLEngine 对象。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。
ssl.keymanager.algorithm
type: string
Default: SunX509
Importance: low
SSL 连接的密钥管理器工厂使用的算法。默认值为为 Java 虚拟机配置的密钥管理器工厂算法。
ssl.secure.random.implementation
Type: string
Default: null
Importance: low
用于 SSL 加密操作的 SecureRandom PRNG 实现。
ssl.trustmanager.algorithm
type: string
Default: PKIX
Importance: low
信任管理器工厂用于 SSL 连接的算法。默认值为为 Java 虚拟机配置的信任管理器工厂算法。
第 4 章 生成者配置属性 复制链接链接已复制到粘贴板!
key.serializer
type: class
Importance: high
实现
org.apache.kafka.common.serialization.Serializer
接口的密钥的序列化类。value.serializer
type: class
Importance: high
用于实现
org.apache.kafka.common.serialization.Serializer
接口的值的序列化类。bootstrap.servers
type: list
Default: ""
Valid Values: non-null string
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处为 bootstrap 指定哪些服务器的所有服务器 - 此列表仅影响用于发现完整服务器的初始主机。此列表的格式应为
host1:port1,host2:port2,…
。由于这些服务器仅用于发现完整的集群成员资格(可能会动态更改),因此此列表不需要包含完整的服务器集合(但是,在服务器停机时可能需要多个服务器)。buffer.memory
Type: long
Default: 33554432
Valid Values: [0,…]
Importance: high
生成者可用于缓冲区等待发送到服务器的内存总量字节。如果发送记录比服务器发送的速度快,则制作者将阻止
max.block.ms
,之后将抛出异常。此设置应当与制作者将使用的总内存对应,但不是硬绑定,因为不是生成者使用的所有内存进行缓冲。一些额外的内存将用于压缩(如果启用了压缩),以及维护动态请求。
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 引擎工厂只支持使用 PKCS1148 密钥的 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 和操作系统缓存 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 算法类似。此设置在批处理延迟上提供了上限:一旦为分区获取
batch.size
,无论此设置如何,都会立即发送它。但是,如果我们对这个分区的总字节少于这个分区,我们将"闲置"等待更多记录显示。此设置默认为 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
JAAS 连接的 JAAS 登录上下文参数,格式为 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。该值的格式是:
loginModuleClass controlFlag (optionName=optionValue) 114;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required;。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
实施登录接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 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 密钥集) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S),也可以是基于文件的。如果 URL 是基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商检索。所有 then-current 密钥都将缓存在代理上,以获取传入请求。如果为包含尚未在缓存中的"kid"标头声明值的 JWT 收到身份验证请求,则 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.3',否则为 '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.3',否则为 'TLSv1.2'。对于大多数用例,这个值应该是正常的。最近的 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
,则排序会被保留。另外,启用 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 以避免连接停滞。
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
(可选)值(以毫秒为单位),在登录尝试到外部身份验证提供程序之间的最大等待。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 backoff 算法,并在尝试最多等待一个由 sasl.login.retry.backoff.max.ms 设置中指定的最长等待长度之间加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)在登录尝试外部身份验证提供程序之间初始等待的值(毫秒)。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 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 密钥集)缓存之间等待的值,该缓存包含密钥以验证 JWT 的签名。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(以毫秒为单位),在尝试从外部身份验证提供程序检索 JWKS (JSON Web 密钥集)之间等待的最大值。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置之间的等待长度之间加倍。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(以毫秒为单位),用于 JWKS (JSON Web 密钥集)从外部身份验证提供程序检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置之间的等待长度之间加倍。
sasl.oauthbearer.scope.claim.name
type: string
Default: scope
Importance: low
范围的 OAuth 声明通常命名为"scope",但如果 OAuth/OIDC 供应商使用了其他声明的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的范围。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
主题的 OAuth 声明通常命名为 "sub",但如果 OAuth/OIDC 供应商使用该声明使用不同的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的主题。
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
类型 org.apache.kafka.common.security.auth.SslEngineFactory 的类,以提供 SSLEngine 对象。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。
ssl.keymanager.algorithm
type: string
Default: SunX509
Importance: low
SSL 连接的密钥管理器工厂使用的算法。默认值为为 Java 虚拟机配置的密钥管理器工厂算法。
ssl.secure.random.implementation
Type: string
Default: null
Importance: low
用于 SSL 加密操作的 SecureRandom PRNG 实现。
ssl.trustmanager.algorithm
type: string
Default: PKIX
Importance: low
信任管理器工厂用于 SSL 连接的算法。默认值为为 Java 虚拟机配置的信任管理器工厂算法。
transaction.timeout.ms
Type: int
Default: 60000 (1 分钟)
Importance: low
事务在协调者主动中止前保持打开的最大时间(以毫秒为单位)。事务的开头会在向其中添加第一个分区时设置。如果这个值大于代理中的
transaction.max.timeout.ms
设置,则请求将失败,并显示InvalidTxnTimeoutException
错误。transactional.id
type: string
Default: null
Valid Values: non-empty string
Importance: low
用于事务交付的 TransactionalId。这可让跨越多个制作者会话的可靠性语义,因为它允许客户端保证在启动任何新事务前,使用相同的 TransactionalId 的事务已经完成。如果没有提供 TransactionalId,则生成者仅限于幂等交付。如果配置了 TransactionalId,
则启用.idempotence
。默认情况下,TransactionId 没有被配置,这意味着无法使用事务。请注意,默认情况下,事务需要至少三个代理的集群,这是生产环境的建议设置;对于开发,您可以通过调整代理设置transaction.state.log.replication.factor
来更改此设置。
第 5 章 管理客户端配置属性 复制链接链接已复制到粘贴板!
bootstrap.servers
type: list
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处为 bootstrap 指定哪些服务器的所有服务器 - 此列表仅影响用于发现完整服务器的初始主机。此列表的格式应为
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 引擎工厂只支持使用 PKCS1148 密钥的 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 和操作系统缓存 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
JAAS 连接的 JAAS 登录上下文参数,格式为 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。该值的格式是:
loginModuleClass controlFlag (optionName=optionValue) 114;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required;。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
实施登录接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 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 密钥集) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S),也可以是基于文件的。如果 URL 是基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商检索。所有 then-current 密钥都将缓存在代理上,以获取传入请求。如果为包含尚未在缓存中的"kid"标头声明值的 JWT 收到身份验证请求,则 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.3',否则为 '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.3',否则为 'TLSv1.2'。对于大多数用例,这个值应该是正常的。最近的 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 以避免连接停滞。
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
(可选)值(以毫秒为单位),在登录尝试到外部身份验证提供程序之间的最大等待。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 backoff 算法,并在尝试最多等待一个由 sasl.login.retry.backoff.max.ms 设置中指定的最长等待长度之间加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)在登录尝试外部身份验证提供程序之间初始等待的值(毫秒)。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 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 密钥集)缓存之间等待的值,该缓存包含密钥以验证 JWT 的签名。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(以毫秒为单位),在尝试从外部身份验证提供程序检索 JWKS (JSON Web 密钥集)之间等待的最大值。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置之间的等待长度之间加倍。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(以毫秒为单位),用于 JWKS (JSON Web 密钥集)从外部身份验证提供程序检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置之间的等待长度之间加倍。
sasl.oauthbearer.scope.claim.name
type: string
Default: scope
Importance: low
范围的 OAuth 声明通常命名为"scope",但如果 OAuth/OIDC 供应商使用了其他声明的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的范围。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
主题的 OAuth 声明通常命名为 "sub",但如果 OAuth/OIDC 供应商使用该声明使用不同的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的主题。
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
类型 org.apache.kafka.common.security.auth.SslEngineFactory 的类,以提供 SSLEngine 对象。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。
ssl.keymanager.algorithm
type: string
Default: SunX509
Importance: low
SSL 连接的密钥管理器工厂使用的算法。默认值为为 Java 虚拟机配置的密钥管理器工厂算法。
ssl.secure.random.implementation
Type: string
Default: null
Importance: low
用于 SSL 加密操作的 SecureRandom PRNG 实现。
ssl.trustmanager.algorithm
type: string
Default: PKIX
Importance: low
信任管理器工厂用于 SSL 连接的算法。默认值为为 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 集群的初始连接的主机/端口对列表。客户端将使用此处为 bootstrap 指定哪些服务器的所有服务器 - 此列表仅影响用于发现完整服务器的初始主机。此列表的格式应为
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 的组管理功能时,心跳到组协调器的预期时间。心跳用于确保 worker 的会话保持活跃状态,并在新成员加入或离开组时便于重新平衡。该值必须小于
session.timeout.ms
,但设置的值通常不应超过这个值的 1/3。可以调整它,以控制正常重新平衡的预期时间。rebalance.timeout.ms
Type: int
Default: 60000 (1 minute)
Importance: high
在重新平衡 begun 后,每个 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 引擎工厂只支持使用 PKCS1148 密钥的 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 和操作系统缓存 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: [-1,…]
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
JAAS 连接的 JAAS 登录上下文参数,格式为 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。该值的格式是:
loginModuleClass controlFlag (optionName=optionValue) 114;
。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required;。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
实施登录接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 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 密钥集) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S),也可以是基于文件的。如果 URL 是基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商检索。所有 then-current 密钥都将缓存在代理上,以获取传入请求。如果为包含尚未在缓存中的"kid"标头声明值的 JWT 收到身份验证请求,则 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 默认。
ssl.enabled.protocols
type: list
Default: TLSv1.2,TLSv1.3
Importance: medium
为 SSL 连接启用的协议列表。当使用 Java 11 或更新版本运行时,默认为 'TLSv1.2,TLSv1.3',否则为 '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.3',否则为 'TLSv1.2'。对于大多数用例,这个值应该是正常的。最近的 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 同步且需要重新同步配置时,请在放弃、离开组以及重新加入前等待这个时间。
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
将 Access-Control-Allow-Origin 标头设置为 REST API 请求的值设为。要启用跨源访问,将其设置为允许访问 API 的应用域,或 'DSL' 允许从任何域访问。默认值仅允许从 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
类名称,按照指定顺序加载和使用。通过实施接口ConfigProvider
,您可以替换连接器配置中的变量引用,如外部 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 Connect 协议的兼容性模式。
header.converter
type: class
Default: org.apache.kafka.connect.storage.SimpleHeaderConverter
Importance: low
HeaderConverter 类用于在 Kafka Connect 格式和写入 Kafka 的序列化表单之间进行转换。这控制了从 Kafka 写入或读取消息中的标头值格式,因为这独立于连接器,因此它可以允许任何连接器使用任何序列化格式。常见格式示例包括 JSON 和 Avro。默认情况下,simpleHeaderConverter 用于将标头值序列化为字符串,并通过推断架构来反序列化它们。
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 以绑定到所有接口。将主机名留空以绑定到默认接口。法律监听程序列表示例: 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
包含插件(connectors、转换器、转换)分隔的路径列表。该列表应由顶层目录组成,其中包括:一个目录(带有插件及其依赖项 b)带有插件及其依赖项 c 目录的 uber-jars 会立即包含类软件包目录结构及其依赖项:符号链接将遵循发现依赖项或插件。示例: plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors Do 不使用此属性中的配置供应商变量,因为 worker 的扫描程序在配置提供程序被初始化并用于替换变量之前使用原始路径。
reconnect.backoff.max.ms
Type: long
Default: 1000 (1 second)
Valid Values: [0,…]
Importance: low
当重新连接到重复无法连接的代理时,等待的最大时间(毫秒)。如果提供,每个主机的 backoff 将为每个连续的连接失败指数增加,直到最高值。计算 backoff 后,会添加 20% 随机 jitter 以避免连接停滞。
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
,您可以注入连接的 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
(可选)值(以毫秒为单位),在登录尝试到外部身份验证提供程序之间的最大等待。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 backoff 算法,并在尝试最多等待一个由 sasl.login.retry.backoff.max.ms 设置中指定的最长等待长度之间加倍。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)在登录尝试外部身份验证提供程序之间初始等待的值(毫秒)。登录使用基于 sasl.login.retry.backoff.ms 设置的初始等待的指数 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 密钥集)缓存之间等待的值,该缓存包含密钥以验证 JWT 的签名。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms
Type: long
Default: 10000 (10 秒)
Importance: low
(可选)值(以毫秒为单位),在尝试从外部身份验证提供程序检索 JWKS (JSON Web 密钥集)之间等待的最大值。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置之间的等待长度之间加倍。
sasl.oauthbearer.jwks.endpoint.retry.backoff.ms
Type: long
Default: 100
Importance: low
(可选)值(以毫秒为单位),用于 JWKS (JSON Web 密钥集)从外部身份验证提供程序检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待长度的指数 backoff 算法,并在尝试最多等待由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置之间的等待长度之间加倍。
sasl.oauthbearer.scope.claim.name
type: string
Default: scope
Importance: low
范围的 OAuth 声明通常命名为"scope",但如果 OAuth/OIDC 供应商使用了其他声明的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的范围。
sasl.oauthbearer.sub.claim.name
type: string
Default: sub
Importance: low
主题的 OAuth 声明通常命名为 "sub",但如果 OAuth/OIDC 供应商使用该声明使用不同的名称,则此设置可以提供不同的名称,用于 JWT 有效负载声明中包含的主题。
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
。 -
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
类型 org.apache.kafka.common.security.auth.SslEngineFactory 的类,以提供 SSLEngine 对象。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。
ssl.keymanager.algorithm
type: string
Default: SunX509
Importance: low
SSL 连接的密钥管理器工厂使用的算法。默认值为为 Java 虚拟机配置的密钥管理器工厂算法。
ssl.secure.random.implementation
Type: string
Default: null
Importance: low
用于 SSL 加密操作的 SecureRandom PRNG 实现。
ssl.trustmanager.algorithm
type: string
Default: PKIX
Importance: low
信任管理器工厂用于 SSL 连接的算法。默认值为为 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)用于成员资格管理(3)的 group-id 主题前缀。
bootstrap.servers
type: list
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处为 bootstrap 指定哪些服务器的所有服务器 - 此列表仅影响用于发现完整服务器的初始主机。此列表的格式应为
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
要捕获客户端的最大可接受滞后(要捕获的偏移数)以想被耗尽,以接收活动任务分配。分配后,它仍然会在处理前恢复更改的其余部分。为了避免在重新平衡过程中暂停处理,此配置应该在给定工作负载的一分钟下与恢复时间相对应的恢复时间。必须至少为 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
用于实现
org.apache.kafka.common.serialization.Serde
接口的密钥的默认序列化器 / deserializer 类。请注意,当使用窗口的 serde 类时,需要一个设置 inner serde 类,该类也通过 'default.windowed.key.serde.inner' 或 'default.windowed.value.serde.inner' 实现org.apache.kafka.common.serialization.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
s.ListSerde 时,才会读取此配置,当使用 list serde 类时,您需要设置 inner serde 类,该类通过 'default.list.key.serde.inner' 实现org.apache.kafka.common.serialization.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
默认序列化器 / deserializer 类用于实现
org.apache.kafka.common.serialization.Serde
接口的值。请注意,当使用窗口的 serde 类时,需要一个设置 inner serde 类,该类也通过 'default.windowed.key.serde.inner' 或 'default.windowed.value.serde.inner' 实现org.apache.kafka.common.serialization.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
最多温副本数(超过配置的 num.standbys 之外的额外待机),这些副本数可以一次性分配,以便在一个实例上保持任务,同时它在其他实例上被重新分配。用于节流可用于高可用性的额外代理流量和集群状态。必须至少为 1.Note,一个 warmup 副本对应于一个流任务。另外,请注意,每个温副本只能在重新平衡期间提升到活跃任务(通常在所谓的探测重新平衡过程中,这会在
probing.rebalance.interval.ms
配置指定的频率时发生)。这意味着,活跃任务可以从一个 Kafka Streams 实例迁移到另一个实例的最大速率由(max.warmup.replicas
/probing.rebalance.interval.ms
)决定。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 将最好地将待机任务分发到每个客户端标签维度上。
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@6ed3ef1
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
提交处理进度的频率(毫秒)。对于 at-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.client.supplier
Type: class
Default: org.apache.kafka.streams.processor.internals.DefaultKafkaClientSupplier
Importance: low
实现
org.apache.kafka.streams.KafkaClientSupplier
接口的客户端供应商类。default.dsl.store
type: string
Default: rocksDB
Valid Values: [rocksDB, in_memory]
Importance: low
DSL operator 使用的默认状态存储类型。
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
在触发重新平衡前等待的最长时间(毫秒)以探测到已完成温并准备好激活的温副本。探测重新平衡将继续触发,直到分配平衡为止。必须至少为 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 以避免连接停滞。
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
实现
org.apache.kafka.streams.state.RocksDBConfigSetter
接口的 Rocks DB config setter 类或类名称。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
Type: 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, 3.4]
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", "3.4", "3.4"window.size.ms
Type: long
Default: null
Importance: low
为反序列化器设置窗口大小,以计算窗口结束时间。
windowed.inner.class.serde
Type: string
Default: null
Importance: low
默认序列化器 / deserializer 用于窗口记录的内部类。必须实施
org.apache.kafka.common.serialization.Serde
接口。请注意,在 KafkaStreams 应用程序中设置此配置会导致错误,因为它只从 Plain consumer 客户端使用。windowstore.changelog.additional.retention.ms
Type: long
Default: 86400000 (1 day)
Importance: low
添加到窗口 MaintenanceMs 中,以确保不会预先从日志中删除数据。允许时钟偏移。默认为 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 <package_name>
要从本地目录中安装之前下载的软件包,请使用:
dnf install <path_to_download_package>
dnf install <path_to_download_package>
更新于 2023-11-22