Kafka Broker配置

2022-09-13 16:15:38 浏览数 (1)

kafka大于等于v0.10

名称

描述

类型

默认

有效值

重要程度

zookeeper.connect

以hostname:port的形式指定ZooKeeper连接字符串,其中host和port是ZooKeeper服务器的主机和端口。为了使得单个ZooKeeper机器宕机时通过其他ZooKeeper节点进行连接,你也可以以hostname1:port1,hostname2:port2,hostname3:port3的形式指定多个,提高可用性。也可以将ZooKeeper chroot路径作为其ZooKeeper连接字符串的一部分,将其数据放在全局ZooKeeper命名空间的某个路径下。例如,要提供一个/chroot/path的chroot路径,你可以将连接字符串设为hostname1:port1,hostname2:port2,hostname3:port3/chroot/path。

string

null

advertised.host.name

已弃用:当advertised.listeners或listeners没设置时候才使用。请改用advertised.listeners。Hostname发布到Zookeeper供客户端使用。在IaaS环境中,Broker可能需要绑定不同的接口。如果没有设置,将会使用host.name(如果配置了)。否则将从java.net.InetAddress.getCanonicalHostName()获取。

string

null

advertised.listeners

发布给Zookeeper供客户端使用的监听地址(如果与 listeners 配置属性不同)。在IaaS环境中,broker可能需要绑定不同的接口。如果没设置,则使用listeners。与listeners不同是,0.0.0.0元地址是无效的。 同样与listeners不同的是,此属性中可以有重复的端口,因此可以将一个listener配置为通告另一个listener的地址。 这在使用外部负载平衡器的某些情况下很有用。

string

null

advertised.port

过时的:当advertised.listeners或listeners没有设置才使用。请改用advertised.listeners。端口发布到Zookeeper供客户端使用,在IaaS环境中,broker可能需要绑定到不同的端口。如果没有设置,将和broker绑定的同一个端口。

int

null

auto.create.topics.enable

启用自动创建topic

boolean

true

auto.leader.rebalance.enable

启用自动平衡leader。如果需要,后台线程会定期检查并触发leader平衡。

boolean

true

background.threads

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

int

10

[1,...]

broker.id

服务器的broker id。如果未设置,将生成一个独一无二的broker id。要避免zookeeper生成的broker id和用户配置的broker id冲突,从reserved.broker.max.id 1开始生成。

int

-1

compression.type

为给定topic指定最终的压缩类型。支持标准的压缩编码器('gzip', 'snappy', 'lz4')。也接受'未压缩',就是没有压缩。保留由producer设置的原始的压缩编码。

string

producer

delete.topic.enable

启用删除topic。如果此配置已关闭,通过管理工具删除topic将没有任何效果

boolean

false

host.name

不赞成:当listeners没有设置才会使用。请改用listeners。如果设置,它将只绑定到此地址。如果没有设置,它将绑定到所有接口

string

""

leader.imbalance.check.interval.seconds

由控制器触发分区再平衡检查的频率

long

300

leader.imbalance.per.broker.percentage

允许每个broker的leader比例不平衡。如果每个broker的值高于此值,控制器将触发leader平衡,该值以百分比的形式指定。

int

10

listeners

监听列表 - 监听的URL列表和协议(逗号分隔)。如果侦听协议不是安全协议,则还必须设置 listener.security.protocol.map。监听的协议名称和端口号必须是唯一的。将hostname留空则绑定到默认接口,将hostname留空则绑定到默认接口合法的listener列表是:PLAINTEXT://myhost:9092,SSL://:9091CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093

string

PLAINTEXT://:9092

log.dir

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

string

/tmp/kafka-logs

log.dirs

保存日志数据的目录。如果未设置,则使用log.dir中的值

string

null

log.flush.interval.messages

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

long

9223372036854775807

[1,...]

log.flush.interval.ms

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

null

log.flush.offset.checkpoint.interval.ms

我们更新的持续记录的最后一次刷新的频率。作为日志的恢复点。

int

60000

[0,...]

log.flush.scheduler.interval.ms

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

long

9223372036854775807

log.retention.bytes

删除日志之前的最大大小

long

-1

log.retention.hours

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

int

168

log.retention.minutes

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

int

null

log.retention.ms

删除日志文件之前保留的毫秒数(以毫秒为单位),如果未设置,则使用log.retention.minutes的值。

long

null

log.roll.hours

新建一个日志段的最大时间(以小时为单位),次于log.roll.ms属性。

int

168

[1,...]

log.roll.jitter.hours

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

int

0

[0,...]

log.roll.ms

新建一个日志段之前的最大事时间(以毫秒为单位)。如果未设置,则使用log.roll.hours的值。

long

null

log.segment.bytes

单个日志文件的最大大小

int

1073741824

[14,...]

log.segment.delete.delay.ms

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

long

60000

[0,...]

message.max.bytes

服务器可以接收的消息的最大大小

int

1000012

[0,...]

min.insync.replicas

当producer设置acks为"all"(或"-1")时。min.insync.replicas指定必须应答成功写入的replicas最小数。如果不能满足最小值,那么producer抛出一个异常(NotEnoughReplicas或NotEnoughReplicasAfterAppend)。当一起使用时,min.insync.replicas和acks提供最大的耐用性保证。一个典型的场景是创建一个复制因子3的topic,设置min.insync.replicas为2,并且ack是“all”。如果多数副本没有接到写入时,将会抛出一个异常。

int

1

[1,...]

num.io.threads

服务器用于执行网络请求的io线程数

int

8

[1,...]

num.network.threads

服务器用于处理网络请求的线程数。

int

3

[1,...]

num.recovery.threads.per.data.dir

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

int

1

[1,...]

num.replica.fetchers

从源broker复制消息的提取线程数。递增该值可提高follower broker的I/O的并发。

int

1

offset.metadata.max.bytes

offset提交关联元数据条目的最大大小

int

4096

offsets.commit.required.acks

commit之前需要的应答数,通常,不应覆盖默认的(-1)

short

-1

offsets.commit.timeout.ms

Offset提交延迟,直到所有副本都收到提交或超时。 这类似于生产者请求超时。

int

5000

[1,...]

offsets.load.buffer.size

当加载offset到缓存时,从offset段读取的批量大小。

int

5242880

[1,...]

offsets.retention.check.interval.ms

检查过期的offset的频率。

long

600000

[1,...]

offsets.retention.minutes

当一个消费者组失去其所有消费者后(即为空时),其偏移量在被丢弃前将被保留这个保留期。对于独立的消费者(使用手动分配),偏移量将在最后一次提交的时间加上这个保留期后过期。

int

10080

[1,...]

offsets.topic.compression.codec

压缩编码器的offset topic - 压缩可以用于实现“原子”提交

int

0

offsets.topic.num.partitions

offset commit topic的分区数(部署之后不应更改)

int

50

[1,...]

offsets.topic.replication.factor

offset topic复制因子(ps:就是备份数,设置的越高来确保可用性)。为了确保offset topic有效的复制因子,第一次请求offset topic时,活的broker的数量必须最少最少是配置的复制因子数。 如果不是,offset topic将创建失败或获取最小的复制因子(活着的broker,复制因子的配置)

short

3

[1,...]

offsets.topic.segment.bytes

offset topic段字节应该相对较小一点,以便于加快日志压缩和缓存加载

int

104857600

[1,...]

port

不赞成:当listener没有设置才使用。请改用listeners。该port监听和接收连接。

int

9092

queued.max.requests

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

int

500

[1,...]

quota.consumer.default

过时的:当默认动态的quotas没有配置或在Zookeeper时。如果每秒获取的字节比此值高,所有消费者将通过clientId/consumer区分限流。

long

9223372036854775807

[1,...]

quota.producer.default

过时的:当默认动态的quotas没有配置,或在zookeeper时。如果生产者每秒比此值高,所有生产者将通过clientId区分限流。

long

9223372036854775807

[1,...]

replica.fetch.min.bytes Minimum

每个获取响应的字节数。如果没有满足字节数,等待replicaMaxWaitTimeMs。

int

1

replica.fetch.wait.max.ms

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

int

500

replica.high.watermark.checkpoint.interval.ms

达到高“水位”保存到磁盘的频率。

long

5000

replica.lag.time.max.ms

如果一个追随者没有发送任何获取请求或至少在这个时间的这个leader的没有消费完。该leader将从isr中移除这个追随者。

long

10000

replica.socket.receive.buffer.bytes

用于网络请求的socket接收缓存区

int

65536

replica.socket.timeout.ms

网络请求的socket超时,该值最少是replica.fetch.wait.max.ms

int

30000

request.timeout.ms

该配置控制客户端等待请求的响应的最大时间,。如果超过时间还没收到消费。客户端将重新发送请求,如果重试次数耗尽,则请求失败。

int

30000

socket.receive.buffer.bytes

socket服务的SO_RCVBUF缓冲区。如果是-1,则默认使用OS的。

int

102400

socket.request.max.bytes

socket请求的最大字节数

int

104857600

[1,...]

socket.send.buffer.bytes

socket服务的SO_SNDBUF缓冲区。如果是-1,则默认使用OS的。

int

102400

unclean.leader.election.enable

是否启用不在ISR中的副本参与选举leader的最后的手段。这样做有可能丢失数据。

boolean

true

zookeeper.connection.timeout.ms

连接zookeeper的最大等待时间,如果未设置,则使用zookeeper.session.timeout.ms。

int

null

zookeeper.session.timeout.ms

Zookeeper会话的超时时间

int

6000

zookeeper.set.acl

设置客户端使用安全的ACL

boolean

false

broker.id.generation.enable

启用自动生成broker id。启用该配置时应检查reserved.broker.max.id。

boolean

true

中等

broker.rack

broker机架,用于机架感知副本分配的失败容错。例如:RACK1, us-east-1d

string

null

中等

connections.max.idle.ms

闲置连接超时:闲置时间超过该设置,则服务器socket处理线程将关闭这个连接。

long

600000

中等

controlled.shutdown.enable

启用服务器的关闭控制。

boolean

true

中等

controlled.shutdown.max.retries

控制因多种原因导致的shutdown失败,当这样失败发生,尝试重试的次数

int

3

中等

controlled.shutdown.retry.backoff.ms

在每次重试之前,系统需要时间从导致先前故障的状态(控制器故障转移,复制延迟等)恢复。 此配置是重试之前等待的时间数。

long

5000

中等

controller.socket.timeout.ms

控制器到broker通道的sockt超时时间

int

30000

default.replication.factor

自动创建topic的默认的副本数

int

1

fetch.purgatory.purge.interval.requests

拉取请求清洗间隔(请求数)

int

1000

group.max.session.timeout.ms

已注册的消费者允许的最大会话超时时间,设置的时候越长使消费者有更多时间去处理心跳之间的消息。但察觉故障的时间也拉长了。

int

300000

group.min.session.timeout.ms

已经注册的消费者允许最小的会话超时时间,更短的时间去快速的察觉到故障,代价是频繁的心跳,这可能会占用大量的broker资源。

int

6000

inter.broker.protocol.version

指定broker内部通讯使用的版本。通常在更新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。查看ApiVersion找到的全部列表。

string

0.10.1-IV2

log.cleaner.backoff.ms

当没有日志要清理时,休眠的时间

long

15000

[0,...]

log.cleaner.dedupe.buffer.size

用于日志去重的内存总量(所有cleaner线程)

long

134217728

log.cleaner.delete.retention.ms

删除记录保留多长时间?

long

86400000

log.cleaner.enable

在服务器上启用日志清洗处理?如果使用的任何topic的cleanup.policy=compact包含内部的offset topic,应启动。如果禁用,那些topic将不会被压缩并且会不断的增大。

boolean

true

log.cleaner.io.buffer.load.factor

日志cleaner去重缓冲负载因子。去重缓冲区的百分比,较高的值将允许同时清除更多的日志,但将会导致更多的hash冲突。

double

0.9

log.cleaner.io.buffer.size

所有日志清洁器线程I/O缓存的总内存

int

524288

[0,...]

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

日志清理器限制,以便其读写i/o平均小与此值。

double

1.7976931348623157E308

log.cleaner.min.cleanable.ratio

脏日志与日志的总量的最小比率,以符合清理条件

double

0.5

log.cleaner.min.compaction.lag.ms

一条消息在日志保留不压缩的最小时间,仅适用于正在压缩的日志。

long

0

log.cleaner.threads

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

int

1

[0,...]

log.cleanup.policy

超过保留时间段的默认清除策略。逗号分隔的有效的策略列表。有效的策略有:“delete”和“compact”

list

[delete]

[compact, delete]

log.index.interval.bytes

添加一个条目到offset的间隔

int

4096(4 kibibytes)

[0,...]

log.index.size.max.bytes

offset index的最大大小(字节)

int

10485760

[4,...]

log.message.format.version

指定追加到日志中的消息格式版本。例如: 0.8.2, 0.9.0.0, 0.10.0。通过设置一个特定消息格式版本,用户需要保证磁盘上所有现有的消息小于或等于指定的版本。错误的设置将导致旧版本的消费者中断,因为消费者接收一个不理解的消息格式。

string

0.10.1-IV2

log.message.timestamp.difference.max.ms

如果log.message.timestamp.type=CreateTime,broker接收消息时的时间戳和消息中指定的时间戳之间允许的最大差异。如果时间戳超过此阈值,则消息将被拒绝。如果log.message.timestamp.type=LogAppendTime,则此配置忽略。

long

9223372036854775807

[0,...]

log.message.timestamp.type

定义消息中的时间戳是消息创建时间或日志追加时间。该值可设置为CreateTime 或 LogAppendTime

string

CreateTime

[CreateTime, LogAppendTime]

log.preallocate

在创建新段时预分配文件?如果你在Windowns上使用kafka,你可能需要设置它为true。

boolean

false

log.retention.check.interval.ms

日志清除程序检查日志是否满足被删除的频率(以毫秒为单位)

long

300000

[1,...]

max.connections.per.ip

允许每个ip地址的最大连接数。

int

2147483647

[1,...]

max.connections.per.ip.overrides

per-ip或hostname覆盖默认最大连接数

string

""

num.partitions

topic的默认分区数

int

1

[1,...]

principal.builder.class

实现PrincipalBuilder接口类的完全限定名,该接口目前用于构建与SSL SecurityProtocol连接的Principal。

class

class org.apache.kafka.common.security.auth.DefaultPrincipalBuilder

producer.purgatory.purge.interval.requests

生产者请求purgatory的清洗间隔(请求数)

int

1000

replica.fetch.backoff.ms

当拉取分区发生错误时休眠的时间

1000

[0,...]

replica.fetch.max.bytes

拉取每个分区的消息的字节数。这不是绝对的最大值,如果提取的第一个非空分区中的第一个消息大于这个值,则消息仍然返回,以确保进展。通过message.max.bytes (broker配置)或max.message.bytes (topic配置)定义broker接收的最大消息大小。

int

1048576

[0,...]

replica.fetch.response.max.bytes

预计整个获取响应的最大字节数,这不是绝对的最大值,如果提取的第一个非空分区中的第一个消息大于这个值,则消息仍然返回,以确保进展。通过message.max.bytes (broker配置)或max.message.bytes (topic配置)定义broker接收的最大消息大小。

int

10485760

[0,...]

reserved.broker.max.id

broker.id的最大数

int

1000

[0,...]

sasl.enabled.mechanisms

可用的SASL机制列表,包含任何可用的安全提供程序的机制。默认情况下只有GSSAPI是启用的。

list

[GSSAPI]

sasl.kerberos.kinit.cmd

Kerberos kinit 命令路径。

string

/usr/bin/kinit

sasl.kerberos.min.time.before.relogin

登录线程在刷新尝试的休眠时间。

long

60000

sasl.kerberos.principal.to.local.rules

principal名称映射到一个短名称(通常是操作系统用户名)。按顺序,使用与principal名称匹配的第一个规则将其映射其到短名称。忽略后面的规则。默认情况下,{username}/{hostname}@{REALM} 映射到 {username}。

list

[DEFAULT]

sasl.kerberos.service.name

Kafka运行的Kerberos principal名称。 可以在JAAS或Kafka的配置文件中定义。

string

null

sasl.kerberos.ticket.renew.jitter

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

time. double

0.05

sasl.kerberos.ticket.renew.window.factor

登录线程休眠,直到从上次刷新到ticket的到期的时间已到达(指定窗口因子),在此期间它将尝试更新ticket。

double

0.8

sasl.mechanism.inter.broker.protocol

SASL机制,用于broker之间的通讯,默认是GSSAPI。

string

GSSAPI

security.inter.broker.protocolSecurity

broker之间的通讯协议,有效值有:PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL。

string

PLAINTEXT

ssl.cipher.suites

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

list

null

ssl.client.auth

配置请求客户端的broker认证。常见的设置: ssl.client.auth=required 需要客户端认证。 ssl.client.auth=requested 客户端认证可选,不同于requested ,客户端可选择不提供自身的身份验证信息* ssl.client.auth=none 不需要客户端身份认证

string

none

[required, requested, none]

ssl.enabled.protocols

已启用的SSL连接协议列表。

list

[TLSv1.2, TLSv1.1, TLSv1]

ssl.key.password

秘钥库文件中的私钥密码。对客户端是可选的。

password

null

ssl.keymanager.algorithm

用于SSL连接的密钥管理工厂算法。默认值是Java虚拟机的密钥管理工厂算法。

string

SunX509

ssl.keystore.location

密钥仓库文件的位置。客户端可选,并可用于客户端的双向认证。

string

null

ssl.keystore.password

密钥仓库文件的仓库密码。客户端可选,只有ssl.keystore.location配置了才需要。

password

null

ssl.keystore.type

密钥仓库文件的格式。客户端可选。

string

JKS

ssl.protocol

用于生成SSLContext,默认是TLS,适用于大多数情况。允许使用最新的JVM,LS, TLSv1.1 和TLSv1.2。 SSL,SSLv2和SSLv3 老的JVM也可能支持,由于有已知的安全漏洞,不建议使用。

string

TLS

ssl.provider

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

string

null

ssl.trustmanager.algorithm

信任管理工厂用于SSL连接的算法。默认为Java虚拟机配置的信任算法。

string

PKIX

ssl.truststore.location

信任仓库文件的位置

string

null

ssl.truststore.password

信任仓库文件的密码

password

null

ssl.truststore.type

信任仓库文件的文件格式

string

JKS

authorizer.class.name

用于认证的授权程序类

string

""

metric.reporters

度量报告的类列表,通过实现MetricReporter接口,允许插入新度量标准类。JmxReporter包含注册JVM统计。

list

[]

metrics.num.samples

维持计算度量的样本数。

int

2

[1,...]

metrics.sample.window.ms

计算度量样本的时间窗口

long

30000

[1,...]

quota.window.num

在内存中保留客户端限额的样本数

int

11

[1,...]

quota.window.size.seconds

每个客户端限额的样本时间跨度

int

1

[1,...]

replication.quota.window.num

在内存中保留副本限额的样本数

int

11

[1,...]

replication.quota.window.size.seconds

每个副本限额样本数的时间跨度

int

1

[1,...]

ssl.endpoint.identification.algorithm

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

string

null

ssl.secure.random.implementation

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

string

null

zookeeper.sync.time.ms

ZK follower可落后与leader多久。

int

2000

kafka大于等于v1.0(增量配置)

名称

描述

类型

默认

有效值

重要程度

更新模式

group.initial.rebalance.delay.ms

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

int

3000

只读

transaction.abort.timed.out.transaction.cleanup.interval.ms

回滚已超时的事务的时间间隔。

int

10000 (10 seconds)

[1,...]

只读

transaction.remove.expired.transaction.cleanup.interval.ms

删除因transactional.id.expiration.ms过期的事务的时间间隔。

int

3600000 (1 hour)

[1,...]

只读

transaction.max.timeout.ms

事务的最大允许超时时间。如果客户端请求的交易时间超过了这个时间,那么broker将在InitProducerIdRequest中返回一个错误。这可以防止客户端的超时时间过大,从而阻滞消费者从事务中包含的主题中读取。

int

900000 (15 minutes)

[1,...]

只读

transaction.state.log.load.buffer.size

在将生产者id和事务加载到缓存中时,从事务日志段读取的批次大小(软限制,如果消息太大,则重写)

int

5242880

[1,...]

只读

transaction.state.log.min.isr

覆盖事务topic的min.insync.replicas配置。

int

2

[1,...]

只读

transaction.state.log.num.partitions

事务topic的分区数(部署后不应改变)。

int

50

[1,...]

只读

transaction.state.log.replication.factor

事务topic的复制因子(设置较高来确保可用性)。内部topic创建将失败,直到集群规模满足该复制因子要求。

short

3

[1,...]

只读

transaction.state.log.segment.bytes

事务topic段的字节数应保持相对较小,以利于加快日志压缩和缓存加载速度

int

104857600 (100 mebibytes)

[1,...]

只读

transactional.id.expiration.ms

事务协调器在没有收到当前事务的任何事务状态更新的情况下,在其事务id过期前等待的时间,单位为ms。这个设置也会影响生产者id过期 - 一旦这个时间在给定的生产者id最后一次写入后过去,生产者id就会过期。请注意,如果由于主题的保留设置而删除了生产者id的最后一次写入,那么生产者id可能会更快过期。

int

604800000 (7 days)

[1,...]

只读

kafka大于等于v2.0

名称

描述

类型

默认

有效值

重要程度

动态更新模式

sasl.client.callback.handler.class

实现AuthenticateCallbackHandler接口的SASL客户端回调处理程序类的全称。

class

null

中间

只读

sasl.login.callback.handler.class

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

class

null

中间

只读

sasl.login.class

实现Login接口的类的全称。对于broker来说,login config必须以监听器前缀和SASL机制名称为前缀,并使用小写。例如,listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin。

class

null

中间

只读

kafka大于等于v2.5

名称

描述

类型

默认

有效值

重要程度

更新模式

zookeeper.clientCnxnSocket

当使用TLS连接到ZooKeeper时,通常设置为org.apache.zookeeper.ClientCnxnSocketNetty。覆盖任何同名的zookeeper.clientCnxnSocket设置的显式值。

string

null

中间

只读

zookeeper.ssl.client.enable

设置客户端连接到ZooKeeper时使用TLS。显式的值会覆盖任何通过zookeeper.client.secure设置的值(注意名称不同)。如果两者都没有设置,默认为false;当为true时,必须设置zookeeper.clientCnxnSocket(通常为org.apache.zookeeper.ClientCnxnSocketNetty);其他需要设置的值可能包括zookeeper.ssl.cipher.suites、zookeeper.ssl.crl.enable、zookeeper.ssl.enabled.protocols、zookeeper.ssl.endpoint. identification.algorithm,zookeeper.ssl.keystore.location,zookeeper.ssl.keystore.password,zookeeper.ssl.keystore.type,zookeeper.ssl. ocsp.enable, zookeeper.ssl.protocol, zookeeper.ssl.truststore.location, zookeeper.ssl.truststore.password, zookeeper.ssl.truststore.type。

boolean

false

中间

只读

zookeeper.ssl.keystore.location

当使用客户端证书与TLS连接到ZooKeeper时的keystore位置。覆盖任何通过zookeeper.ssl.keyStore.location系统属性设置的显式值(注意是驼峰大小)。

password

null

中间

只读

zookeeper.ssl.keystore.password

当使用客户端证书与TLS连接到ZooKeeper时的keystore密码。覆盖任何通过zookeeper.ssl.keyStore.password系统属性设置的显式值(注意驼峰大写)。 注意,ZooKeeper不支持与keystore密码不同的密钥密码,所以一定要将keystore中的密钥密码设置为与keystore密码相同,否则连接Zookeeper的尝试将失败。

password

null

中间

只读

zookeeper.ssl.keystore.type

当使用客户端证书与TLS连接到ZooKeeper时的keystore类型。覆盖任何通过zookeeper.ssl.keyStore.type系统属性设置的显式值(注意骆驼大写)。默认值为null意味着该类型将根据keystore的文件扩展名自动检测。

string

null

中间

只读

zookeeper.ssl.protocol

指定ZooKeeper TLS协商中使用的协议。一个显式的值会覆盖任何通过同名的zookeeper.ssl.protocol系统设置的值。

string

TLSv1.2

只读

zookeeper.ssl.cipher.suites

指定在ZooKeeper TLS协商中使用的密码套件(csv),覆盖任何通过zookeeper.ssl.ciphersuites系统属性设置的显式值(注意单字 "ciphersuites")。覆盖任何通过zookeeper.ssl.ciphersuites系统属性设置的显式值(注意 "ciphersuites "这个单字)。默认值为 "null "意味着启用的密码套件列表是由正在使用的Java运行时决定的。

boolean

false

只读

zookeeper.ssl.crl.enable

指定是否启用ZooKeeper TLS协议中的证书撤销列表。覆盖任何通过zookeeper.ssl.crl系统属性设置的显式值(注意是短名)。

boolean

false

只读

zookeeper.ssl.enabled.protocols

指定ZooKeeper TLS协商(csv)中启用的协议。覆盖任何通过zookeeper.ssl.enabledProtocols系统属性设置的显式值(注意骆驼大写)。默认值为 "null "意味着启用的协议将是zookeeper.ssl.protocol配置属性的值。

list

null

只读

zookeeper.ssl.endpoint.identification.algorithm

指定是否在ZooKeeper TLS协商过程中启用主机名验证,(不区分大小写)"https "表示启用ZooKeeper主机名验证,显式的空白值表示禁用(仅为测试目的建议禁用)。明确的值会覆盖任何通过zookeeper.ssl.hostnameVerification系统属性设置的 "true "或 "false "值(注意不同的名称和值;true意味着https,false意味着空白)。

string

HTTPS

只读

zookeeper.ssl.ocsp.enable

指定是否启用ZooKeeper TLS协议中的在线证书状态协议。覆盖任何通过zookeeper.ssl.ocsp系统属性设置的显式值(注意是短名)。

boolean

false

只读

kafka大于等于v2.7

名称

描述

类型

默认

有效值

重要程度

更新模式

ssl.truststore.certificates

可信证书的格式由'ssl.truststore.type'指定。默认的SSL引擎工厂只支持带X.509证书的PEM格式。

password

null

中间

每个broker

socket.connection.setup.timeout.max.ms

客户端等待建立socket连接的最大时间。连接设置超时时间将随着每一次连续的连接失败而成倍增加,直到这个最大值。为了避免连接风暴,超时时间将被应用一个0.2的随机因子,导致计算值在20%以下和20%以上的随机范围。

long

127000 (127 seconds)

中间

只读

socket.connection.setup.timeout.ms

客户端等待建立socket连接的时间。如果在超时之前没有建立连接,客户端将关闭socket通道。

long

10000 (10 seconds)

中间

只读

kafka大于等于v3.0.0

名称

描述

类型

默认

有效值

重要程度

node.id

当process.role为非空时,与该进程所扮演的角色相关的节点ID。这是在KRaft模式下运行时的必要配置。

int

-1

process.roles

这个进程所扮演的角色:broker、controller,或者 broker,controller(两者都是)。此配置只适用于KRaft(Kafka Raft)模式的集群(而不是ZooKeeper)。对于Zookeeper集群,让这个配置无需定义或为空。

list

""

[broker, controller]

controller.listener.names

以逗号分隔的controller使用的监听器的名称列表。如果在KRaft模式下运行,这是必须的。基于ZK的controller将不使用这个配置。

string

null

metadata.log.dir

这个配置决定了我们将KRaft模式下的集群的元数据日志放在哪里。如果没有设置,元数据日志将被放置在log.dirs中的第一个日志目录。

string

null

broker.heartbeat.interval.ms

broker之间心跳之间的时间间隔(毫秒)。在KRaft模式下运行时使用。

int

2000 (2秒)

中间

broker.session.timeout.ms

如果没有心跳,broker持续的时间,以毫秒计。在KRaft模式下运行时使用。

int

9000 (9秒)

中间

controller.quorum.voters

选民的id/endpoint信息的map列表,逗号分隔{id}@{host}:{port}。例如:1@localhost:9092,2@localhost:9093,3@localhost:9094。

list

“”

非空列表

controller.quorum.election.backoff.max.ms

这用于二进制指数退避机制,有助于防止选举陷入僵局。

int

1000 (1秒)

controller.quorum.election.timeout.ms

在触发新的选举之前,无法从leader那里获取的最大等待时间(毫秒)。

int

1000 (1秒)

controller.quorum.fetch.timeout.ms

在成为候选人并触发选民选举之前,没有从现任leader那里成功获取的最长时间;在四处询问是否有新的领导人纪元之前,没有从法定人数的大多数人那里获得获取的最长时间。

int

2000 (2秒)

control.plane.listener.name

用于controller和broker之间通信的监听器的名称。broker将使用control.plane.listener.name来定位监听器列表中的endpoint(端点),以监听来自controller的连接。例如,如果一个broker的配置是:listeners = INTERNAL://192.1.1.8:9092, EXTERNAL:/10.1.1.5:9093, CONTROLLER://192.1.1.8:9094listener.security.protocol.map = INTERNAL:PLAINTEXT, EXTERNAL:SSL, CONTROLLER:SSLcontrol.plane.listener.name = CONTROLLER启动时,broker将开始监听"192.1.1.8:9094",安全协议为 "SSL"。在controller方面,当它通过zookeeper发现一个broker发布的端点时,它将使用control.plane.listener.name来寻找端点,它将用它来建立与broker的连接。例如,如果broker在zookeeper上发布的端点是:"endpoints" : ["INTERNAL://broker1.example.com:9092", "EXTERNAL://broker1.example.com:9093", "CONTROLLER://broker1.example.com:9094" ]而控制器的配置是:listener.security.protocol.map = INTERNAL:PLAINTEXT, EXTERNAL:SSL, CONTROLLER:SSLcontrol.plane.listener.name = CONTROLLER那么controller将使用 "broker1.example.com:9094"和安全协议 "SSL"来连接到broker。如果没有明确配置,默认值将为空,将没有专门的端点用于controller连接。

string

null

0 人点赞