第 4 章 制作者配置属性
key.serializertype: class
Importance: high
序列化器类用于实现
org.apache.kafka.common.serialization.Serializer接口的关键。value.serializertype: class
Importance: high
序列化器类用于实现
org.apache.kafka.common.serialization.Serializer接口的值。bootstrap.serverstype: list
Default: ""
Valid Values: non-null string
Importance: high
用于建立到 Kafka 集群的初始连接的主机/端口对列表。客户端将使用此处为 bootstrap 指定了哪些服务器的所有服务器 - 此列表仅影响用于发现全部服务器集的初始主机。此列表应当采用
host1:port1,host2:port2,…的形式。由于这些服务器仅用于初始连接,以发现完整的群集成员身份(可能会动态更改),因此该列表不包含完整的服务器集合(尽管服务器停机时,您可能需要多个服务器)。buffer.memorytype: long
Default: 33554432
Valid Values: [0,…]
Importance: high
制作者可用于将等待发送到服务器的内存总量为:如果记录的发送速度快于可以发送到服务器,则制作者将阻断用于增加异常的
max.block.ms。此设置应当与制作者将使用的总内存相对应,但不是硬绑定,因为生产者所使用的所有内存都用于缓冲区。有些额外的内存将用于压缩(如果启用压缩),以及维护动态请求。
compression.typetype: string
Default: none
Importance: high
由制作者生成的所有数据的压缩类型。默认为 none(即无压缩)。有效值为
无、gzip、snappy、lz4或zstd。压缩是全批数据,因此批处理将影响压缩率(更批处理意味着更好的压缩方式)。retriestype: int
Default: 2147483647
Valid Values: [0,…,2147483647]
Importance: high
设置大于零的值将导致客户端重新发送发送失败的记录,并显示可能存在瞬时错误。请注意,如果客户端在收到错误时重新输入记录,这个重试不相同。如果在通过
delivery.timeout.ms配置超时前,在重试次数之前,生成请求将失败,然后再成功确认前过期。用户通常应选择保留此配置未设置,而是使用delivery.timeout.ms控制重试行为。启用幂等性需要此配置值大于 0。如果没有设置冲突的配置并且没有显式启用幂等性,则会禁用幂等性。
在将
enable.ideotence设置为false和max.in.flight.requests.per.connection到 1 时允许重试,因为如果两个批处理发送到单个分区,如果两个批处理发送到单个分区,第一个失败并重试,第二个批处理中的记录可能会首先出现。ssl.key.passwordtype: password
Default: null
Importance: high
密钥存储文件或在"ssl.keystore.key"中指定的 PEM 密钥的密码。只有在配置了双向验证时,客户端才需要这样做。
ssl.keystore.certificate.chaintype: password
Default: null
Importance: high
使用由 'ssl.keystore.type" 指定的格式的证书链。默认 SSL 引擎工厂仅支持使用 X.509 证书列表的 PEM 格式。
ssl.keystore.keytype: password
Default: null
Importance: high
使用 'ssl.keystore.type" 指定的格式的私钥。默认 SSL 引擎工厂只支持使用 PKCS#8 密钥的 PEM 格式。如果密钥已加密,则必须使用 'ssl.key.password' 指定密钥密码。
ssl.keystore.locationtype: string
Default: null
Importance: high
密钥存储文件的位置。对于客户端,这是可选的,可用于客户端双向身份验证。
ssl.keystore.passwordtype: password
Default: null
Importance: high
密钥存储文件的存储密码。对于客户端,这是可选的,只有在配置了 'ssl.keystore.location' 时才需要。PEM 格式不支持密钥存储密码。
ssl.truststore.certificatestype: password
Default: null
Importance: high
可信证书,格式为 'ssl.truststore.type'。默认 SSL 引擎工厂仅支持使用 X.509 证书使用 PEM 格式。
ssl.truststore.locationtype: string
Default: null
Importance: high
信任存储文件的位置。
ssl.truststore.passwordtype: password
Default: null
Importance: high
信任存储文件的密码。如果没有设置密码,则仍然将使用配置的信任存储文件,但会禁用完整性检查。信任存储密码不支持 PEM 格式。
batch.sizetype: int
Default: 16384
Valid Values: [0,…]
Importance: medium
当多个记录发送到同一分区时,生产者将尝试将记录组合成更少的请求。这有助于客户端和服务器上的性能。此配置以字节为单位控制默认的批处理大小。
不会尝试超过这个大小的批处理记录。
发送到代理的请求将包含多个批处理,每个分区对应一个可用数据。
较小的批处理大小会较小常用值,并且可能会降低吞吐量(一个批处理大小为零将完全禁用批处理)。非常大的批处理大小可能会更严重地使用内存,因为我们总是会在额外记录中为指定批处理大小分配一个缓冲区。
注:此设置提供要发送的批处理大小上限。如果我们的分区数量少于此字节,那么我们会"闲置者",等待更多记录显示更多记录。
此linger.ms设置默认为 0,这意味着我们会立即发送一个记录,即使是累积的批处理大小,该批处理大小位于这个batch.size设置下。client.dns.lookuptype: 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 后,客户端会从主机名再次解析 IP(JVM 和 OS 缓存 DNS 名称查找)。如果设置为resolve_canonical_bootstrap_servers_only,将每个 bootstrap 地址解析为规范名称列表。在 bootstrap 阶段后,这个行为与use_all_dns_ips相同。client.idtype: string
Default: ""
Importance: medium
在发出请求时要传递给服务器的 id 字符串。这样做的目的是通过允许逻辑应用程序名称包含在服务器端请求日志记录中,跟踪超过 ip/port 的请求源。
connections.max.idle.mstype: long
Default: 540000 (9 分钟)
Importance: medium
在此配置指定的毫秒数后关闭闲置连接。
delivery.timeout.mstype: int
Default: 120000 (2 分钟)
Valid Values: [0,…]
Importance: medium
在调用
send()返回后报告成功或失败的时间上有上限。这会限制在发送前会延迟记录的总时间、从代理等待确认的时间(如果预期),以及可重试发送失败的时间。如果遇到无法恢复的错误,则制作者可能会报告比这个配置更早的记录无法发送记录,或者将重试添加到已达到早期交付到期期限的批处理中。此配置的值应大于或等于request.timeout.ms和linger.ms的总和。linger.mstype: long
Default: 0
Valid Values: [0,…]
Importance: medium
制作者将到达请求传输之间的所有记录分组到一个批处理请求中。通常,只有在记录到达的速度快于发送日志时,才会被加载。然而,在某些情况下,客户端可能希望降低请求数量,甚至处于中等负载。此设置通过添加少量人的延时(即不立即发送记录)来实现这个值,生产者将等待发送到给定延迟,以便发送其他记录以便可以组合使用。这可以被视为 TCP 中的 Nagle 的算法相似。此设置达到批处理延迟的上限:一旦我们获得
批处理.size值得记录,无论无论此设置如何,任何设置都会立即发送。但是,如果我们小于这个分区,我们会为指定时间"闲置者"显示,等待更多记录显示。此设置默认为 0(即无延迟)。例如,设置linger.ms=5将对发送的请求数量产生影响,但会将最多 5ms 延迟添加到没有负载时发送的记录。max.block.mstype: long
Default: 60000(1 minute)
Valid Values: [0,…]
Importance: medium
该配置控制
KafkaProducer'send(),,partitionsFor()initTransactions(),sendOffsetsToTransaction(),commitTransaction()和abortTransaction()方法将阻断。对于send(),此超时会绑定等待元数据获取和缓冲区分配的总时间(在用户提供的序列化器或分区器中不计于此超时)。对于partitionsFor(),此超时会绑定等待元数据的时间(如果不可用)。事务相关的方法总是块,但当事务协调器无法发现或没有在超时时间中响应时可能会超时。max.request.sizetype: int
Default: 1048576
Valid Values: [0,…]
Importance: medium
请求的最大值(以字节为单位)。此设置将限制制作者将在单个请求中发送的记录批处理数量,以避免发送大量请求。这也实际上是在最大不压缩记录批处理大小之上的上限。请注意,服务器在记录批处理大小(如果启用了压缩后)有自己的大写,这可能与此不同。
partitioner.classtype: class
Default: org.apache.kafka.clients.producer.internals.DefaultPartitioner
Importance: medium
用于决定在生成记录时要发送到的类。可用的选项有:
-
org.apache.kafka.clients.producer.internals.DefaultPartitioner: default partitioner。此策略将尝试在批处理已满或linger.ms之前放弃分区。它适用于策略: - 如果没有指定分区但存在密钥,则根据密钥的哈希选择一个分区
-
如果没有分区或密钥,请选择当批处理已满时更改的粘性分区,或者启用
linger.ms。 -
org.apache.kafka.clients.producer.RoundRobinPartitioner:这个分区策略是连续记录中的每个记录都会被发送到不同的分区(无论提供了 'key' 或 not ),直到我们耗尽分区并再次重新开始。注意:一个已知问题会在创建新批处理时产生不均匀的分发问题。请检查 KAFKA-9965 以了解更多详细信息。 org.apache.kafka.clients.producer.UniformStickyPartitioner:这个分区策略将尝试放弃分区(无论是否提供了"key"或没有)直到批处理已满,或linger.ms才会启动。通过实施
org.apache.kafka.clients.producer.Partitioner接口,您可以插入自定义分区程序。
-
receive.buffer.bytestype: int
Default: 32768(32 kibibytes)
Valid Values: [-1,…]
Importance: medium
在读取数据时要使用的 TCP 接收缓冲区(SO_RCVBUF)的大小。如果值为 -1,则使用 OS 默认。
request.timeout.mstype: int
Default: 30000 (30 秒)
Valid Values: [0,…]
Importance: medium
配置控制客户端等待请求响应的最大时间。如果在超时前没有收到响应,客户端会在需要时重新发送请求,或者在重试耗尽时失败请求。这应该大于
replica.lag.max.ms(代理配置),以减少因为不必要的制作者重试而出现消息重复的可能性。sasl.client.callback.handler.classtype: class
Default: null
Importance: medium
实现了 AuthenticateCallbackHandler 接口的 SASL 客户端回调处理器类的完全限定名称。
sasl.jaas.configtype: password
Default: null
Importance: medium
JAAS 登录上下文参数,用于 SASL 连接,其格式由 JAAS 配置文件使用。此处 介绍了 JAAS 配置文件格式。该值格式为:
loginModuleClass controlFlag(optionName=optionValue)*;.对于代理,配置必须在小写中带有监听前缀和 SASL 机制名称前缀。例如: listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule;.sasl.kerberos.service.nametype: string
Default: null
Importance: medium
Kafka 运行的 Kerberos 主体名称。这可以在 Kafka 的 JAAS 配置或 Kafka 配置中定义。
sasl.login.callback.handler.classtype: 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.classtype: class
Default: null
Importance: medium
实施登录接口的类的完全限定名称。对于代理,登录配置必须在小写中带有监听前缀和 SASL 机制名称前缀。For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin.
sasl.mechanismtype: string
Default: GSSAPI
Importance: medium
用于客户端连接的 SASL 机制。这可以是提供安全提供程序的任何机制。GSSAPI 是默认机制。
sasl.oauthbearer.jwks.endpoint.urltype: string
Default: null
Importance: medium
可以检索来自提供程序的 JWKS(JSON Web Key Set) 的 OAuth/OIDC 供应商 URL。URL 可以是基于 HTTP(S)或基于文件的。如果 URL 基于 HTTP(S),则 JWKS 数据将通过代理启动时配置的 URL 从 OAuth/OIDC 供应商中检索。所有 then-current 密钥将缓存在代理中,用于传入请求。如果为 JWT 收到身份验证请求,如果包含尚未在缓存中但未包括在缓存中的"kid"标头声明值,则将根据需要再次查询 JWKS 端点。但是,代理会在收到任何 JWT 请求前轮询每个 sasl.oauthbearer.jwks.endpoint.refresh.ms 毫秒的 URL 来刷新缓存。如果 URL 是基于文件,代理将从启动时配置的位置载入 JWKS 文件。如果 JWT 包含不在 JWKS 文件中的"kid"标头值,代理将拒绝 JWT 和身份验证。
sasl.oauthbearer.token.endpoint.urltype: string
Default: null
Importance: medium
OAuth/OIDC 身份提供程序的 URL。如果 URL 基于 HTTP(S),则代表签发者的令牌端点 URL,请求将基于 sasl.jaas.config 中的配置进行登录。如果 URL 基于文件,它将指定包含由 OAuth/OIDC 身份提供程序发布的访问令牌(在 JWT 序列化表单中)的文件用于授权。
security.protocoltype: string
Default: PLAINTEXT
Importance: medium
用于与代理通信的协议。有效值为:PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL.
send.buffer.bytestype: int
Default: 131072(128 kibibytes)
Valid Values: [-1,…]
Importance: medium
在发送数据时要使用的 TCP 发送缓冲区(SO_SNDBUF)的大小。如果值为 -1,则使用 OS 默认。
socket.connection.setup.timeout.max.mstype: long
Default: 30000 (30 秒)
Importance: medium
客户端等待套接字连接建立的最大时间。对于每个连续的连接失败,连接设置超时将按这个最大值增加。为避免连接 storms,则 0.2 的随机化工厂将应用到超时,从而导致计算值上面的 20% 到 20% 的随机范围。
socket.connection.setup.timeout.mstype: long
Default: 10000 (10 秒)
Importance: medium
客户端等待套接字连接建立的时间。如果在超时前没有构建连接,客户端将关闭套接字频道。
ssl.enabled.protocolstype: 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.typetype: string
Default: JKS
Importance: medium
密钥存储文件的文件格式。对于客户端,这是可选的。
ssl.protocoltype: 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.providertype: string
Default: null
Importance: medium
用于 SSL 连接的安全供应商名称。默认值是 JVM 的默认安全供应商。
ssl.truststore.typetype: string
Default: JKS
Importance: medium
信任存储文件的文件格式。
ackstype: string
Default: all
Valid Values: [all, -1, 0, 1]
Importance: low
致谢的数量要求在考虑请求完成前收到领导机。这控制发送的记录的持久性。允许以下设置:
-
acks=0If 设为零,那么制作者将不等待服务器出现任何确认。记录将立即添加到套接字缓冲区并被视为已发送。无法保证服务器在这个示例中收到记录,并且重试配置不会生效(因为客户端通常不知道任何失败)。每个记录返回的偏移将始终设置为-1。 -
acks=1意味着领导者会将记录写入其本地日志,但不会等待所有后续人员完全确认记录。在这种情况下,领导机在确认记录后立即失败,但随后再复制该记录将会丢失。 acks=all意味着领导机将等待整套 in-sync 副本确认记录。这保证记录不会丢失,只要至少一个 in-sync 副本仍保持活动。这是最强大的可用保证。这等同于 acks=-1 设置。请注意,启用幂等性要求此配置值为"all"。如果没有设置冲突的配置并且没有显式启用幂等性,则会禁用幂等性。
-
enable.idempotencetype: boolean
Default: true
Importance: low
当设置为 'true' 时,制作者将确保在流中写入每个消息的一个副本。如果 'false',因为代理失败等,制作者会重试,可能会在流中写入重试的消息重复。请注意,启用 idempotence 需要
max.in.flight.requests.per.connection的值小于或等于 5(可为任何允许值保留消息排序),重试大于 0,acks必须是 'all'。如果没有设置任何冲突配置,则默认启用 Idempence。如果没有设置冲突的配置并且没有显式启用幂等性,则会禁用幂等性。如果显式启用 idempence 并设置了冲突的配置,则会抛出
ConfigException。interceptor.classestype: list
Default: ""
Valid Values: non-null string
Importance: low
用作拦截器的类列表。通过实施
org.apache.kafka.clients.producer.ProducerInterceptor接口,您可以在将制作者发布到 Kafka 集群前拦截(并可能损坏)制作者收到的记录。默认情况下,没有拦截器。max.in.flight.requests.per.connectiontype: int
Default: 5
Valid Values: [1,…]
Importance: low
在阻塞之前,客户端将在单个连接上发送的最大未确认请求数。请注意,如果将此配置设定为大于 1
并启用.idempotence 被设置为 false,则因为重试(如果启用了重试,则会在失败后重新排序消息重新排序风险)。另外,启用幂等性要求此配置值小于或等于 5。如果没有设置冲突的配置并且没有显式启用幂等性,则会禁用幂等性。metadata.max.age.mstype: long
Default: 300000 (5 分钟)
Valid Values: [0,…]
Importance: low
毫秒内的时间(以毫秒为单位),即使在我们未看到任何分区领导更改的情况下,也会强制更新元数据,以便主动发现任何新的代理或分区。
metadata.max.idle.mstype: long
Default: 300000 (5 分钟)
Valid Values: [5000,…]
Importance: low
控制制作者将元数据缓存空闲的时长。如果最后生成了主题以超过元数据空闲持续时间所经过的时间,那么主题的元数据将被忘记,下一次访问将强制生成元数据获取请求。
metric.reporterstype: list
Default: ""
Valid Values: non-null string
Importance: low
用作指标报告器的类列表。实施
org.apache.kafka.common.metrics.MetricsReporter接口允许在新指标创建通知的类中插入。JmxReporter 始终包含在内以注册 JMX 统计。metrics.num.samplestype: int
Default: 2
Valid Values: [1,…]
Importance: low
为计算指标维护的示例数量。
metrics.recording.leveltype: string
Default: INFO
Valid Values: [INFO, DEBUG, SSP]
Importance: low
指标的最高记录级别。
metrics.sample.window.mstype: long
Default: 30000 (30 秒)
Valid Values: [0,…]
Importance: low
计算指标示例的时间窗口。
reconnect.backoff.max.mstype: long
Default: 1000(1秒)
Valid Values: [0,…]
Importance: low
重新连接到重复连接失败的代理时要等待的最大时间(毫秒)。如果提供,每个主机的 backoff 将为每个连续的连接失败指数增加,最高最高。在计算了 backoff 增长后,会添加 20% 的随机 jitter 来避免连接停滞。
reconnect.backoff.mstype: long
Default: 50
Valid Values: [0,…]
Importance: low
在尝试重新连接给定主机前要等待的基本时间。这可避免在紧张循环中重复连接到主机。这个 backoff 适用于客户端到代理的所有连接尝试。
retry.backoff.mstype: long
Default: 100
Valid Values: [0,…]
Importance: low
尝试重试失败的请求到给定主题分区前等待的时间。这可避免在某些故障情况下在紧密循环中重复发送请求。
sasl.kerberos.kinit.cmdtype: string
Default: /usr/bin/kinit
Importance: low
Kerberos kinit 命令路径.
sasl.kerberos.min.time.before.relogintype: long
Default: 60000
Importance: low
刷新尝试之间的登录线程睡眠时间。
sasl.kerberos.ticket.renew.jittertype: double
Default: 0.05
Importance: low
添加至续订时间的随机jitter 的百分比。
sasl.kerberos.ticket.renew.window.factortype: double
Default: 0.8
Importance: low
登录线程将休眠,直到达到从最后刷新到 ticket 的过期时间,此时它将尝试续订票据。
sasl.login.connect.timeout.mstype: int
Default: null
Importance: low
(可选)外部身份验证供应商连接超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.read.timeout.mstype: int
Default: null
Importance: low
(可选)外部身份验证提供程序读取超时的值(以毫秒为单位)。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.buffer.secondstype: 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.secondstype: short
Default: 60
Valid Values: [0,…,900]
Importance: low
在刷新凭证前等待登录刷新线程所需的最小时间(以秒为单位)。合法值介于 0 到 900(15 分钟)之间;如果没有指定值,则使用默认值 60(1 分钟)。如果值和 sasl.login.refresh.buffer.seconds 都会被忽略,如果它们的总和超过凭证的剩余生命周期。目前仅适用于 OAUTHBEARER。
sasl.login.refresh.window.factortype: 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.jittertype: double
Default: 0.05
Valid Values: [0.0,…,0.25]
Importance: low
相对于凭证的生命周期的最大随机 jitter 量,它们被添加到登录刷新线程睡眠时间。法律值介于 0 到 0.25(25%)之间(25%),如果没有指定值,则使用默认值 0.05(5%)。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.max.mstype: long
Default: 10000 (10 秒)
Importance: low
(可选)登录尝试外部身份验证提供程序之间等待的最长这个值(可选)值(以毫秒为单位)。登录使用 sasl.login.retry.backoff.ms 设置的初始等待算法,并在尝试为 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间加倍长度。目前仅适用于 OAUTHBEARER。
sasl.login.retry.backoff.mstype: long
Default: 100
Importance: low
(可选)在登录尝试外部身份验证提供程序之间初始等待的值(可选)值(以毫秒为单位)。登录使用 sasl.login.retry.backoff.ms 设置的初始等待算法,并在尝试为 sasl.login.retry.backoff.max.ms 设置指定的最大等待长度之间加倍长度。目前仅适用于 OAUTHBEARER。
sasl.oauthbearer.clock.skew.secondstype: int
Default: 30
Importance: low
(可选)值,允许 OAuth/OIDC 身份提供程序和代理的时间不同。
sasl.oauthbearer.expected.audiencetype: list
Default: null
Importance: low
(可选)代理的逗号分隔设置,用于验证已经为其中一个预期对象发布 JWT。为标准的 OAuth "aud" 声明将检查 JWT,如果设置了这个值,代理将匹配 JWT 的"aud"声明的值,以查看是否存在准确的匹配项。如果没有匹配项,代理将拒绝 JWT 和身份验证。
sasl.oauthbearer.expected.issuertype: string
Default: null
Importance: low
(可选)用于验证 JWT 是由预期签发者创建的代理的设置。将检查标准的 OAuth "iss" 声明,如果设置了此值,代理就与 JWT 的"iss"声明中的内容完全匹配。如果没有匹配项,代理将拒绝 JWT 和身份验证。
sasl.oauthbearer.jwks.endpoint.refresh.mstype: long
Default: 3600000(1 小时)
Importance: low
(可选)代理在刷新其 JWKS(JSON Web Key Set)缓存时要等待的值,其中包含用于验证 JWT 签名的密钥。
sasl.oauthbearer.jwks.endpoint.retry.backoff.max.mstype: long
Default: 10000 (10 秒)
Importance: low
(可选)尝试从外部身份验证提供程序检索 JWKS(JSON Web Key Set)之间的最大等待的值(以毫秒为单位)。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.max.ms 设置的初始等待长度的指数级 backoff 算法,并在 sasl.oauthbearer.jwks.max.ms 设置指定的最大等待时间。
sasl.oauthbearer.jwks.endpoint.retry.backoff.mstype: long
Default: 100
Importance: low
(可选)初始等待的值(JSON Web Key Set)从外部身份验证提供程序检索尝试。JWKS 检索使用基于 sasl.oauthbearer.jwks.endpoint.retry.max.ms 设置的初始等待长度的指数级 backoff 算法,并在 sasl.oauthbearer.jwks.max.ms 设置指定的最大等待时间。
sasl.oauthbearer.scope.claim.nametype: string
Default: scope
Importance: low
范围的 OAuth 声明通常命名为"scope",但此(可选)设置可以提供用于 JWT 有效负载声明中包含的范围的不同名称,如果 OAuth/OIDC 供应商将该声明使用不同的名称。
sasl.oauthbearer.sub.claim.nametype: string
Default: sub
Importance: low
主体的 OAuth 声明通常命名为"sub",但此(可选)设置可以为 JWT 有效负载声明中包含的主题提供不同的名称,如果 OAuth/OIDC 供应商将该声明使用不同的名称。
security.providerstype: string
Default: null
Importance: low
每次返回供应商实施安全算法的可配置创建者类列表。这些类应当实施
org.apache.kafka.common.security.auth.SecurityProviderCreator接口。ssl.cipher.suitestype: list
Default: null
Importance: low
密码套件列表。这是验证、加密、MAC 和密钥交换算法的命名组合,用于通过 TLS 或 SSL 网络协议协商网络连接的安全设置。默认情况下,支持所有可用的密码套件。
ssl.endpoint.identification.algorithmtype: string
Default: https
Importance: low
使用服务器证书验证服务器主机名的端点标识算法。
ssl.engine.factory.classtype: class
Default: null
Importance: low
类型为 org.apache.kafka.common.security.auth.SslEngineFactory 的类来提供 SSLEngine 对象。默认值为 org.apache.kafka.common.ssl.DefaultSslEngineFactory。
ssl.keymanager.algorithmtype: string
Default: SunX509
Importance: low
密钥管理器工厂用于 SSL 连接的算法。默认值为 Java 虚拟机配置的主要管理器工厂算法。
ssl.secure.random.implementationtype: string
Default: null
Importance: low
用于 SSL 加密操作的 SecureRandom PRNG 实施。
ssl.trustmanager.algorithmtype: string
Default: PKIX
Importance: low
信任管理器工厂用于 SSL 连接的算法。默认值为 Java 虚拟机配置的信任管理器工厂算法。
transaction.timeout.mstype: int
Default: 60000 (1 分钟)
Importance: low
事务协调器在主动中止持续事务事务前,导致事务状态更新时间上限大于 broker 中的 transaction.max.timeout.ms 设置,请求将失败,并显示
InvalidTxnTimeoutException错误。transactional.idtype: string
Default: null
Valid Values: non-empty string
Importance: low
用于事务发送的 TransactionalId。这启用了跨越多个制作者会话的可靠性语义,因为它允许客户端在启动任何新事务之前使用同一 TransactionalId 进行处理。如果未提供 TransactionalId,则生产者将限制为幂等发送。如果配置了 TransactionalId,则意味着
启用.ideotence。默认情况下不配置 TransactionId,这意味着无法使用事务。请注意,默认情况下,事务需要至少三个代理(生产的设置)集群;在开发时,您可以通过调整 broker 设置transaction.state.log.replication.factor来更改此设置。