第 4 章 制作者配置属性


key.serializer

type: class
Importance: high

实施 org.apache.kafka.common.serialization.Serializer 接口的密钥的 serializer 类。

value.serializer

type: class
Importance: high

serializer 类用于实施 org.apache.kafka.common.serialization.Serializer 接口的值。

bootstrap.servers

type: list
Default: ""
Valid Values: non-null string
Importance: high

用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处指定的服务器的所有服务器进行引导 - 此列表仅影响用于发现整套服务器的初始主机。此列表应该采用 host1:port1,host2:port2,…​ 的形式。由于这些服务器仅用于初始连接来发现完整的群集成员(这可能会动态更改),此列表不需要包含完整的服务器集合(但在服务器停机的情况下可能需要多个服务器)。

buffer.memory

Type: long
Default: 33554432
Valid Values: [0,…​]
Importance: high

制作者可用于缓冲记录的总字节,用于等待发送到服务器。如果记录发送速度快于服务器,则生产者将阻止 max.block.ms 用于抛出异常。

此设置应当与制作者要使用的内存大致对应,但不是制作者使用的所有内存进行缓冲的硬绑定。一些额外的内存将用于压缩(如果启用了压缩),以及维护 in-flight 请求。

compression.type

type: string
Default: none
Valid Values: [none, gzip, snappy, lz4, zstd]
Importance: high

生成者生成的所有数据的压缩类型。默认为 none (例如,没有压缩)。有效值为 none,gzip,snappy,lz4, 或 zstd。压缩是全批数据,因此批处理的效率也会影响压缩率(更多批处理意味着更好的压缩)。

retries

type: int
Default: 2147483647
Valid Values: [0,…​,2147483647]
Importance: high

设置大于零的值将导致客户端重新发送发送失败的任何记录,并具有潜在的瞬时错误。请注意,如果客户端在收到错误时重新显示记录,则这个重试不会不同。如果在通过 delivery.timeout.ms 配置超时前,在重试次数之前,生成请求将失败,然后再成功确认前过期。用户通常应该保留这个配置未设置,而是使用 delivery.timeout.ms 来控制重试行为。

启用 idempotence 要求此配置值大于 0。如果设置了冲突的配置,并且没有显式启用 idempotence,则禁用 idempotence。

当将 enable.idempotence 设置为 false 时,把 max.in.flight.requests.per.connection 设置为 1 时可能会更改记录顺序,因为如果两个批处理被发送到一个分区,则第一个失败,但重试,但第二个批处理中的记录可能会首先出现。

ssl.key.password

Type: password
Default: null
Importance: high

密钥存储文件或 'ssl.keystore.key' 中指定的 PEM 密钥中的私钥密码。

ssl.keystore.certificate.chain

Type: password
Default: null
Importance: high

使用由 'ssl.keystore.type" 指定的格式的证书链。默认 SSL 引擎工厂只支持带有 X.509 证书列表的 PEM 格式。

ssl.keystore.key

Type: password
Default: null
Importance: high

使用 'ssl.keystore.type" 指定的格式的私钥。默认 SSL 引擎工厂只支持带有 PKCS#8 密钥的 PEM 格式。如果密钥加密,则必须使用 'ssl.key.password' 指定密钥密码。

ssl.keystore.location

Type: string
Default: null
Importance: high

密钥存储文件的位置。这是可选的,可用于客户端双向身份验证。

ssl.keystore.password

Type: password
Default: null
Importance: high

密钥存储文件的存储密码。这适用于客户端,只有在配置了 'ssl.keystore.location' 时才需要。PEM 格式不支持密钥存储密码。

ssl.truststore.certificates

Type: password
Default: null
Importance: high

可信证书,格式为 'ssl.truststore.type'。默认 SSL 引擎工厂仅支持使用 X.509 证书使用 PEM 格式。

ssl.truststore.location

Type: string
Default: null
Importance: high

信任存储文件的位置。

ssl.truststore.password

Type: password
Default: null
Importance: high

信任存储文件的密码。如果没有设置密码,则仍将使用配置的信任存储文件,但会禁用完整性检查。PEM 格式不支持信任存储密码。

batch.size

type: int
Default: 16384
Valid Values: [0,…​]
Importance: medium

每当将多个记录发送到同一分区时,生产者都将尝试将记录一起批处理为更少的请求。这有助于客户端和服务器上的性能。此配置控制默认的批处理大小,以字节为单位。

不会对大于这个大小的批处理记录进行尝试。

发送到代理的请求将包含多个批处理,每个分区都有可发送数据。

小批处理大小将使批处理不常见,并可能会降低吞吐量(批处理大小为零将完全禁用批处理)。非常大的批处理大小可能会更加浪费地使用内存,因为我们将始终在分析额外记录时分配指定批处理大小的缓冲区。

注意:此设置提供要发送的批处理大小的上限。如果我们为这个分区积累的数量少于此指定的字节,那么我们会"闲置" linger.ms 时间来等待更多记录。此 linger.ms 设置默认为 0,这意味着我们会立即发送记录,即使被积累的批处理大小位于此 batch.size 设置下。

client.dns.lookup

type: string
Default: use_all_dns_ips
Valid Values: [use_all_dns_ips, resolve_canonical_bootstrap_servers_only]
Importance: medium

控制客户端如何使用 DNS 查找。如果设置为 use_all_dns_ips,按顺序连接到每个返回的 IP 地址,直到成功建立连接为止。断开连接后,会使用下一个 IP。使用了所有 IP 后,客户端会再次从主机名( JVM 和 OS 缓存 DNS 名称查找)解析 IP 地址。如果设置为 resolve_canonical_bootstrap_servers_only,请将每个 bootstrap 地址解析为规范名称列表。在 bootstrap 阶段后,这与 use_all_dns_ips 相同。

client.id

type: string
Default: ""
Importance: medium

在发出请求时传递给服务器的 id 字符串。这样做的目的是通过允许将逻辑应用程序名称包含在服务器端请求日志中来跟踪超过 ip/port 的请求源。

connections.max.idle.ms

Type: long
Default: 540000 (9 分钟)
Importance: medium

在此配置指定的毫秒数后关闭闲置连接。

delivery.timeout.ms

type: int
Default: 120000 (2 分钟)
Valid Values: [0,…​]
Importance: medium

在调用 send () 后报告成功或失败的时间上限。这限制了在发送前延迟记录的总时间,从代理等待确认时间(如预期),以及可重新发送失败的时间。如果遇到不可恢复的错误,则生产者可能会报告失败,以发送记录失败,或者记录已耗尽,或者记录添加到达到较早交付到期期限的批处理中。此配置的值应大于或等于 request.timeout.mslinger.ms 的总和。

linger.ms

Type: long
Default: 0
Valid Values: [0,…​]
Importance: medium

生产者组将请求传输到单个批处理请求之间的任何记录组合在一起。通常,只有在记录到达的速度超过发送时,才会在负载下进行。然而,在某些情况下,客户端可能需要减少请求数量,即使是中等负载。此设置通过添加少量延时(即,而不是立即发送记录)来实现此目的,而是立即发送记录,将等待到给定的延迟,以允许发送其他记录,以便将发送一起批处理。这可以被认为与 TCP 中的 Nagle 的算法类似。此设置给出了批处理延迟的上限:当我们获得 批处理 时,无论此设置如何立即发送分区,则设置将立即发送,但如果我们为这个分区有多个字节,我们将在等待更多记录进行"闲置"时显示。此设置默认为 0 (例如,没有延迟)。例如,设置 linger.ms=5 具有减少发送的请求数量的影响,但会在没有负载时向发送的记录增加 5ms 延迟。

max.block.ms

Type: long
Default: 60000 (1 minute)
Valid Values: [0,…​]
Importance: medium

这个配置控制 KafkaProducer’s `send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() 方法将被阻塞多长时间。对于 send (),这个超时会绑定等待元数据获取和缓冲区分配的总时间(在用户提供的串行器或分区器中不会针对这个超时计算)。对于 partitionsFor (),这个超时会绑定等待元数据的时间(如果它不可用)。与事务相关的方法总是阻止,但如果无法发现事务协调器或者没有在超时内响应,则可能会出现超时问题。

max.request.size

type: int
Default: 1048576
Valid Values: [0,…​]
Importance: medium

请求的最大大小(以字节为单位)。此设置将限制制作者在单个请求中发送的记录批处理数,以避免发送大型请求。这也是最大未压缩记录批处理大小的上限。请注意,服务器在记录批处理大小上具有自己的上限(如果启用压缩,则时间为压缩),这可能因此不同。

partitioner.class

Type: class
Default: null
Importance: medium

一个类,用来决定在生成记录时要发送哪些分区。可用的选项有:

  • 如果没有设置,则使用默认分区逻辑。此策略将尝试盘到分区,直到生成至少 batch.size 字节为止。它与策略一起使用:
  • 如果没有指定分区,但没有指定密钥,请根据密钥的哈希值选择一个分区
  • 如果没有分区或密钥,请选择在至少向分区生成 batch.size 字节时更改的粘性分区。
  • org.apache.kafka.clients.producer.RoundRobinPartitioner :此分区策略是每个记录连续的记录都将发送到不同的分区(无论是提供"密钥"),直到我们用完分区为止。注意:存在一个已知问题,在创建新批处理时将导致不均匀分布。请检查 KAFKA-9965 以了解更多详细信息。

    通过实施 org.apache.kafka.clients.producer.Partitioner 接口,您可以插入自定义分区程序。

partitioner.ignore.keys

Type: boolean
Default: false
Importance: medium

当设置为 'true' 时,生产者不使用记录密钥来选择分区。如果 'false',当出现密钥时,生产者将根据密钥哈希选择一个分区。注意:如果使用自定义分区器,则此设置无效。

receive.buffer.bytes

type: int
Default: 32768 (32 kibibytes)
Valid Values: [-1,…​]
Importance: medium

读取数据时使用的 TCP 接收缓冲区的大小(SO_RCVBUF)。如果值为 -1,则会使用 OS 默认值。

request.timeout.ms

type: int
Default: 30000 (30 seconds)
Valid Values: [0,…​]
Importance: medium

配置控制客户端等待请求响应的最长时间。如果响应在超时前收到,客户端会在必要时重新发送请求,或者在重试已耗尽时失败请求。这应该大于 replica.lag.time.max.ms (代理配置),以减少因为生成者重试而出现消息重复的可能性。

sasl.client.callback.handler.class

Type: class
Default: null
Importance: medium

实现 AuthenticateCallbackHandler 接口的 SASL 客户端回调处理器类的完全限定名称。

sasl.jaas.config

Type: password
Default: null
Importance: medium

用于 SASL 连接的 JAAS 登录上下文参数,其格式由 JAAS 配置文件使用的格式。JAAS 配置文件格式描述 在此处。值的格式是: loginModuleClass controlFlag (optionName=optionValue)*;。对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule;.

sasl.kerberos.service.name

Type: string
Default: null
Importance: medium

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

sasl.login.callback.handler.class

Type: class
Default: null
Importance: medium

实现 AuthenticateCallbackHandler 接口的 SASL 登录回调处理器类的完全限定名称。对于代理,登录回调处理器配置必须以监听器前缀和 SASL 机制名称作为前缀作为前缀。例如,listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler。

sasl.login.class

Type: class
Default: null
Importance: medium

实现 Login 接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 SASL 机制名称前缀。For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin.

sasl.mechanism

type: string
Default: GSSAPI
Importance: medium

用于客户端连接的 SASL 机制。这可能是提供安全提供程序的任何机制。GSSAPI 是默认机制。

sasl.oauthbearer.jwks.endpoint.url

Type: string
Default: null
Importance: medium

从中检索提供程序 JWKS (JSON Web Key Set) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP (S)或基于文件的 URL。如果 URL 基于 HTTP (S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商中检索。所有 then-current 密钥都将缓存到代理上,用于传入的请求。如果为 JWT 收到身份验证请求,其中包含尚未在缓存中"kid"标头声明值,则 JWKS 端点将根据需要重新查询。但是,代理在每个 sasl.oauthbearer.jwks.endpoint.refresh.ms 毫秒中轮询 URL,以便在收到包含它们的 JWT 请求前使用任何即将刷新缓存。如果 URL 基于文件,代理将在启动时从配置的位置加载 JWKS 文件。如果 JWT 包含不在 JWKS 文件中的"kid"标头值,代理将拒绝 JWT,身份验证将失败。

sasl.oauthbearer.token.endpoint.url

Type: string
Default: null
Importance: medium

OAuth/OIDC 身份提供程序的 URL。如果 URL 基于 HTTP (S),则它是签发者的令牌端点 URL,请求将根据 sasl.jaas.config 中的配置登录。如果 URL 基于文件,它指定一个包含由 OAuth/OIDC 身份提供程序发布的访问令牌(在 JWT 序列化形式)的文件,以用于授权。

security.protocol

Type: string
Default: PLAINTEXT
Valid Values: [PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL]
Importance: medium

用于与代理通信的协议。有效值为: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.

send.buffer.bytes

type: int
Default: 131072 (128 kibibytes)
Valid Values: [-1,…​]
Importance: medium

在发送数据时使用的 TCP 发送缓冲区的大小(SO_SNDBUF)。如果值为 -1,则会使用 OS 默认值。

socket.connection.setup.timeout.max.ms

Type: long
Default: 30000 (30 秒)
Importance: medium

客户端将等待套接字连接建立的最长时间。对于每个连续连接失败,连接设置超时将以指数级增长到此最大值。为避免连接失败,0.2 的随机因素将应用于超时,导致在计算值高于计算值的 20% 到 20% 之间的随机范围。

socket.connection.setup.timeout.ms

Type: long
Default: 10000 (10 秒)
Importance: medium

客户端将等待套接字连接建立的时间。如果在超时前没有构建连接,客户端将关闭套接字频道。

ssl.enabled.protocols

type: list
Default: TLSv1.2,TLSv1.3
Importance: medium

为 SSL 连接启用的协议列表。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.2'。使用 Java 11 的默认值,如果客户端和服务器同时支持 TLSv1.3,则客户端和服务器将首选 TLSv1.3,否则将回退到 TLSv1.2(假设两者都至少支持 TLSv1.2)。这个默认值对于大多数情况来说应该可以正常工作。另请参阅 ssl.protocol 的配置文档。

ssl.keystore.type

type: string
Default: JKS
Importance: medium

密钥存储文件的文件格式。这对客户端是可选的。默认 ssl.engine.factory.class 目前支持的值是 [JKS, PKCS12, PEM]。

ssl.protocol

type: string
Default: TLSv1.3
Importance: medium

用于生成 SSLContext 的 SSL 协议。使用 Java 11 或更高版本 'TLSv1.2' 运行时,默认为 'TLSv1.3'。这个值应该适用于大多数用例。最近的 JVM 中的允许值为 'TLSv1.2' 和 'TLSv1.3'。'TLS', 'TLSv1.1', 'SSL', 'SSLv2' 和 'SSLv3' 可能在较旧的 JVM 中被支持,但由于已知的安全漏洞,不建议使用它们的使用。使用这个配置和 'ssl.enabled.protocols' 的默认值,如果服务器不支持 'TLSv1.3',客户端将降级为 'TLSv1.2'。如果此配置被设置为 'TLSv1.2',则客户端将不会使用 'TLSv1.3',即使它是 ssl.enabled.protocols 中的一个值,且服务器只支持 'TLSv1.3'。

ssl.provider

Type: string
Default: null
Importance: medium

用于 SSL 连接的安全提供程序的名称。默认值为 JVM 的默认安全提供程序。

ssl.truststore.type

type: string
Default: JKS
Importance: medium

信任存储文件的文件格式。默认 ssl.engine.factory.class 目前支持的值是 [JKS, PKCS12, PEM]。

acks

type: string
Default: all
Valid Values: [all, -1, 0, 1]
Importance: low

在考虑请求完成前,生产者需要收到该制作者的确认数量。这控制发送的记录的持久性。允许以下设置:

  • acks=0 如果设为零,则制作者不会等待服务器中的任何确认。记录将立即添加到套接字缓冲区中,并被视为已发送。不保证服务器在这种情况下收到了记录,重试 配置将无效(因为客户端通常不知道任何故障)。为每个记录提供的偏移始终设置为 -1
  • acks=1 这意味着领导记录将记录写入其本地日志,但不会等待所有后续者完全确认。在这种情况下,领导会在确认记录后立即失败,但在后续者复制之前,记录将会丢失。
  • acks=all 意味着领导会等待一整套同步副本确认记录。这样可保证,只要至少有一个同步副本保持活跃,记录就不会被丢失。这是最强的可用保证。这等同于 acks=-1 设置。

    请注意,启用 idempotence 需要此配置值为 'all'。如果设置了冲突的配置,并且没有显式启用 idempotence,则禁用 idempotence。

auto.include.jmx.reporter

Type: boolean
Default: true
Importance: low

已弃用。即使没有在 metric.reporters 中列出,也自动包含 JmxReporter。此配置将在 Kafka 4.0 中删除,用户应改为将 org.apache.kafka.common.metrics.JmxReporter 包含在 metric.reporters 中,以便启用 JmxReporter。

enable.idempotence

Type: boolean
Default: true
Importance: low

当设置为 'true' 时,生产者将确保在流中写入每个消息的确切副本。如果为 'false',则因代理失败而重试制作者,可能会在流中写入重试消息重复。请注意,启用 idempotence 需要 max.in.flight.requests.per.connection 小于或等于 5 (具有任何允许值保留的消息排序),重试 大于 0,而 acks 必须是 'all'。

如果没有设置任何冲突配置,则默认启用 Idempence。如果设置了冲突的配置,并且没有显式启用 idempotence,则禁用 idempotence。如果明确启用了 idempotence,并且设置了冲突的配置,则会引发 ConfigException

interceptor.classes

type: list
Default: ""
Valid Values: non-null string
Importance: low

用作拦截器的类列表。通过实施 org.apache.kafka.clients.producer.ProducerInterceptor 接口,您可以在生成者在向 Kafka 集群发布前截获(并可能变异)收到的记录。默认情况下,没有拦截器。

max.in.flight.requests.per.connection

type: int
Default: 5
Valid Values: [1,…​]
Importance: low

在阻塞前,客户端将在单个连接上发送的最大未确认请求数量。请注意,如果将此配置设定为大于 1,并且 enable.idempotence 被设置为 false,则会在因为重试而失败发送后重新排序消息的风险(例如,如果启用了重试);如果禁用重试,或者将 enable.idempotence 设置为 true,则排序将被保留。此外,启用 idempotence 还需要此配置的值小于或等于 5。如果设置了冲突的配置,并且没有显式启用 idempotence,则禁用 idempotence。

metadata.max.age.ms

Type: long
Default: 300000 (5 minutes)
Valid Values: [0,…​]
Importance: low

以毫秒为单位的时间,我们强制刷新元数据,即使我们未看到任何分区领导更改来主动发现任何新的代理或分区。

metadata.max.idle.ms

Type: long
Default: 300000 (5 minutes)
Valid Values: [5000,…​]
Importance: low

控制制作者为空闲的主题缓存元数据的时长。如果最后一次生成了一个主题的过期时间超过元数据闲置持续时间,则主题的元数据会被忘记,下一次对它的访问会强制元数据获取请求。

metric.reporters

type: list
Default: ""
Valid Values: non-null string
Importance: low

用作指标报告器的类列表。通过实施 org.apache.kafka.common.metrics.MetricsReporter 接口,可以插入新指标创建通知的类。JmxReporter 始终包含在注册 JMX 统计数据中。

metrics.num.samples

type: int
Default: 2
Valid Values: [1,…​]
Importance: low

维护到计算指标的示例数量。

metrics.recording.level

type: string
Default: INFO
Valid Values: [INFO, DEBUG, TRACE]
Importance: low

指标的最高记录级别。

metrics.sample.window.ms

Type: long
Default: 30000 (30 seconds)
Valid Values: [0,…​]
Importance: low

计算指标示例的时间窗口。

partitioner.adaptive.partitioning.enable

Type: boolean
Default: true
Importance: low

当设置为 'true' 时,生产者将尝试适应代理性能,并为在更快代理上托管的分区生成更多消息。如果 'false',生产者将尝试统一地分发消息。注意:如果使用自定义分区器,则此设置无效。

partitioner.availability.timeout.ms

Type: long
Default: 0
Valid Values: [0,…​]
Importance: low

如果代理无法从分区生成来自 partitioner.availability.timeout.ms 时间的请求,则分区器会将该分区视为不可用。如果值为 0,则禁用此逻辑。注:如果使用自定义分区器或 partitioner.adaptive.partitioning.enable 设置为 'false',则此设置无效。

reconnect.backoff.max.ms

Type: long
Default: 1000 (1 second)
Valid Values: [0,…​]
Importance: low

当重新连接到重复连接失败的代理时,需要等待的最大时间(毫秒)。如果提供,每个主机的 backoff 将为每个连续的连接失败指数增加,直到最高值。在计算 backoff 增长后,会添加 20% 随机的 jitter 以避免连接 storms。

reconnect.backoff.ms

Type: long
Default: 50
Valid Values: [0,…​]
Importance: low

尝试重新连接到给定主机前需要等待的基本时间。这可避免在紧张循环中重复连接到主机。这个 backoff 适用于客户端到代理的所有连接尝试。

retry.backoff.ms

Type: long
Default: 100
Valid Values: [0,…​]
Importance: low

尝试重试失败的请求到给定主题分区前等待的时间。这可避免在某些故障情况下在严格的循环中重复发送请求。

sasl.kerberos.kinit.cmd

type: string
Default: /usr/bin/kinit
Importance: low

Kerberos kinit 命令路径。

sasl.kerberos.min.time.before.relogin

Type: long
Default: 60000
Importance: low

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

sasl.kerberos.ticket.renew.jitter

Type: double
Default: 0.05
Importance: low

添加到续订时间的随机 jitter 百分比。

sasl.kerberos.ticket.renew.window.factor

Type: double
Default: 0.8
Importance: low

登录线程会处于睡眠状态,直到最后一次刷新到票据到期时间的指定窗口因子被达到,此时它将尝试续订票据。

sasl.login.connect.timeout.ms

Type: int
Default: null
Importance: low

(可选)外部身份验证供应商连接超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。

sasl.login.read.timeout.ms

Type: int
Default: null
Importance: low

(可选)外部身份验证提供程序读取超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。

sasl.login.refresh.buffer.seconds

Type: short
Default: 300
Valid Values: [0,…​,3600]
Importance: low

刷新凭证时,凭证过期前要维护的缓冲区时间(以秒为单位)。如果刷新的过期时间比缓冲区秒数接近,则会移动刷新以尽可能多地维护缓冲区时间。法律值介于 0 到 3600 之间(1 小时);如果没有指定值,则使用默认值 300 (5 分钟)。如果它们总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.min.period.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。

sasl.login.refresh.min.period.seconds

Type: short
Default: 60
Valid Values: [0,…​,900]
Importance: low

在刷新凭证前,登录刷新线程需要最少的时间(以秒为单位)。法律值介于 0 到 900 (15 分钟);如果没有指定值,则使用默认值 60 (1 分钟)。如果其总和超过凭证的剩余生命周期,则这个值和 sasl.login.refresh.buffer.seconds 都会被忽略。目前仅适用于 OAUTHBEARER。

sasl.login.refresh.window.factor

Type: double
Default: 0.8
Valid Values: [0.5,…​,1.0]
Importance: low

登录刷新线程将休眠,直到达到了与凭证生命周期相关的指定窗口因子,在此期间它将尝试刷新凭证。法律值介于 0.5 (50%)和 1.0 (100%)之间,如果未指定值,则使用默认值 0.8 (80%)。目前仅适用于 OAUTHBEARER。

sasl.login.refresh.window.jitter

Type: double
Default: 0.05
Valid Values: [0.0,…​,0.25]
Importance: low

与凭证生命周期相关的随机 jitter 的最大随机处理量,添加到登录刷新线程的睡眠时间中。法律值介于 0 到 0.25(25%)之间,如果没有指定值,则使用默认值 0.05(5%)。目前仅适用于 OAUTHBEARER。

sasl.login.retry.backoff.max.ms

Type: long
Default: 10000 (10 秒)
Importance: low

(可选)值(可选)值,以毫秒为单位,登录尝试外部身份验证提供程序之间的最长等待时间。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。

sasl.login.retry.backoff.ms

Type: long
Default: 100
Importance: low

(可选)值(可选)值,以毫秒为单位,用于登录尝试外部身份验证提供程序之间的初始等待。login 使用基于 sasl.login.retry.backoff.ms 设置的初始等待时间的 exponential backoff 算法,并在尝试通过 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间以等待长度加倍。目前仅适用于 OAUTHBEARER。

sasl.oauthbearer.clock.skew.seconds

Type: int
Default: 30
Importance: low

(可选)值(以秒为单位)允许 OAuth/OIDC 身份提供程序和代理的时间之间的区别。

sasl.oauthbearer.expected.audience

type: list
Default: null
Importance: low

(可选)代理的以逗号分隔的设置,用于验证为预期受众之一发布的 JWT。JWT 将检查是否有标准的 OAuth "aud" 声明,如果设置了这个值,代理将匹配 JWT 的"aud"声明中的值,以查看是否有完全匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。

sasl.oauthbearer.expected.issuer

Type: string
Default: null
Importance: low

(可选)代理用于验证 JWT 是由预期签发者创建的。JWT 将检查是否有标准的 OAuth"iss"声明,如果设置了这个值,代理将完全与 JWT 的"iss"声明中的内容匹配。如果没有匹配项,代理将拒绝 JWT,身份验证将失败。

sasl.oauthbearer.jwks.endpoint.refresh.ms

Type: long
Default: 3600000 (1 小时)
Importance: low

(可选)值(可选)代理在刷新其 JWKS (JSON Web Key Set)缓存之间等待的时间(以毫秒为单位),其中包含验证 JWT 签名的密钥。

sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms

Type: long
Default: 10000 (10 秒)
Importance: low

(可选)值(可选)值(以毫秒为单位),尝试从外部身份验证供应商检索 JWKS (JSON Web Key Set)之间的最长等待时间。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。

sasl.oauthbearer.jwks.endpoint.retry.backoff.ms

Type: long
Default: 100
Importance: low

(可选)值(可选)值,以毫秒为单位,用于来自外部身份验证提供程序的 JWKS (JSON Web Key Set)检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.backoff.ms 设置的初始等待时间,在尝试达到由 sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms 设置指定的最大等待长度之间会重复等待长度。

sasl.oauthbearer.scope.claim.name

type: string
Default: scope
Importance: low

范围的 OAuth 声明通常命名为"scope",但这(可选)设置可以提供与 JWT 有效负载声明中包含的范围使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。

sasl.oauthbearer.sub.claim.name

type: string
Default: sub
Importance: low

主题的 OAuth 声明通常名为"sub",但这(可选)设置可以提供与 JWT 有效负载声明中包含的主题使用不同的名称,如果 OAuth/OIDC 供应商对该声明使用不同的名称。

security.providers

Type: string
Default: null
Importance: low

可配置的创建者类列表,每个都返回实施安全算法的供应商。这些类应该实施 org.apache.kafka.common.security.auth.SecurityProviderCreator 接口。

ssl.cipher.suites

type: list
Default: null
Importance: low

密码套件列表。这是身份验证、加密、MAC 和密钥交换算法的命名组合,用于使用 TLS 或 SSL 网络协议协商网络连接的安全设置。默认情况下支持所有可用的密码套件。

ssl.endpoint.identification.algorithm

type: string
Default: https
Importance: low

使用服务器证书验证服务器主机名的端点标识算法。

ssl.engine.factory.class

Type: class
Default: null
Importance: low

用于提供 SSLEngine 对象的 org.apache.kafka.common.security.auth.SslEngineFactory 类型的类。默认值为 org.apache.kafka.common.security.ssl.DefaultSslEngineFactory。

ssl.keymanager.algorithm

type: string
Default: SunX509
Importance: low

用于 SSL 连接的密钥管理器工厂使用的算法。Default 值是为 Java 虚拟机配置的密钥管理器工厂算法。

ssl.secure.random.implementation

Type: string
Default: null
Importance: low

用于 SSL 加密操作的 SecureRandom PRNG 实现。

ssl.trustmanager.algorithm

type: string
Default: PKIX
Importance: low

信任管理器工厂用于 SSL 连接的算法。Default 值是为 Java 虚拟机配置的信任管理器工厂算法。

transaction.timeout.ms

Type: int
Default: 60000 (1 分钟)
Importance: low

事务协调器将在主动中止持续事务处理状态更新前等待来自制作者的事务状态更新的最长时间。如果这个值大于 broker 中的 transaction.max.timeout.ms 设置,则请求将失败,并显示 InvalidTxnTimeoutException 错误。

transactional.id

type: string
Default: null
Valid Values: non-empty string
Importance: low

用于事务交付的 TransactionalId。这可实现跨多个制作者会话的可靠性语义,因为它允许客户端保证在启动任何新事务前使用相同的 TransactionalId 的事务。如果没有提供 TransactionalId,则制作者将限制为幂等发送。如果配置了 TransactionalId,则忽略 enable.idempotence。默认情况下,TransactionId 没有配置,这意味着无法使用事务。请注意,默认情况下,事务需要至少三个代理集群,该代理是生产的建议设置;为了开发,您可以通过调整代理设置 transaction.state.log.replication.factor 来进行更改。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部