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。stringnull
advertised.host.name已弃用:当advertised.listeners或listeners没设置时候才使用。请改用advertised.listeners。Hostname发布到Zookeeper供客户端使用。在IaaS环境中,Broker可能需要绑定不同的接口。如果没有设置,将会使用host.name(如果配置了)。否则将从java.net.InetAddress.getCanonicalHostName()获取。stringnull
advertised.listeners发布给Zookeeper供客户端使用的监听地址(如果与 listeners 配置属性不同)。在IaaS环境中,broker可能需要绑定不同的接口。如果没设置,则使用listeners。与listeners不同是,0.0.0.0元地址是无效的。 同样与listeners不同的是,此属性中可以有重复的端口,因此可以将一个listener配置为通告另一个listener的地址。 这在使用外部负载平衡器的某些情况下很有用。stringnull
advertised.port过时的:当advertised.listeners或listeners没有设置才使用。请改用advertised.listeners。端口发布到Zookeeper供客户端使用,在IaaS环境中,broker可能需要绑定到不同的端口。如果没有设置,将和broker绑定的同一个端口。intnull
auto.create.topics.enable启用自动创建topicbooleantrue
auto.leader.rebalance.enable启用自动平衡leader。如果需要,后台线程会定期检查并触发leader平衡。booleantrue
background.threads用于各种后台处理任务的线程数int10[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设置的原始的压缩编码。stringproducer
delete.topic.enable启用删除topic。如果此配置已关闭,通过管理工具删除topic将没有任何效果booleanfalse
host.name不赞成:当listeners没有设置才会使用。请改用listeners。如果设置,它将只绑定到此地址。如果没有设置,它将绑定到所有接口string""
leader.imbalance.check.interval.seconds由控制器触发分区再平衡检查的频率long300
leader.imbalance.per.broker.percentage允许每个broker的leader比例不平衡。如果每个broker的值高于此值,控制器将触发leader平衡,该值以百分比的形式指定。int10
listeners监听列表 - 监听的URL列表和协议(逗号分隔)。如果侦听协议不是安全协议,则还必须设置 listener.security.protocol.map。监听的协议名称和端口号必须是唯一的。将hostname留空则绑定到默认接口,将hostname留空则绑定到默认接口合法的listener列表是:PLAINTEXT://myhost:9092,SSL://:9091CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093stringPLAINTEXT://:9092
log.dir保存日志数据的目录 (补充log.dirs属性)string/tmp/kafka-logs
log.dirs保存日志数据的目录。如果未设置,则使用log.dir中的值stringnull
log.flush.interval.messages消息刷新到磁盘之前,累计在日志分区的消息数long9223372036854775807[1,...]
log.flush.interval.mstopic中的消息在刷新到磁盘之前保存在内存中的最大时间(以毫秒为单位),如果未设置,则使用log.flush.scheduler.interval.ms中的值null
log.flush.offset.checkpoint.interval.ms我们更新的持续记录的最后一次刷新的频率。作为日志的恢复点。int60000[0,...]
log.flush.scheduler.interval.ms日志刷新的频率(以毫秒为单位)检查是否有任何日志需要刷新到磁盘long9223372036854775807
log.retention.bytes删除日志之前的最大大小long-1
log.retention.hours删除日志文件保留的小时数(以小时为单位)。第三级是log.retention.ms属性int168
log.retention.minutes删除日志文件之前保留的分钟数(以分钟为单位)。次于log.retention.ms属性。如果没设置,则使用log.retention.hours的值。intnull
log.retention.ms删除日志文件之前保留的毫秒数(以毫秒为单位),如果未设置,则使用log.retention.minutes的值。longnull
log.roll.hours新建一个日志段的最大时间(以小时为单位),次于log.roll.ms属性。int168[1,...]
log.roll.jitter.hours从logRollTimeMillis(以小时为单位)减去最大抖动,次于log.roll.jitter.ms属性。int0[0,...]
log.roll.ms新建一个日志段之前的最大事时间(以毫秒为单位)。如果未设置,则使用log.roll.hours的值。longnull
log.segment.bytes单个日志文件的最大大小int1073741824[14,...]
log.segment.delete.delay.ms从文件系统中删除文件之前的等待的时间long60000[0,...]
message.max.bytes服务器可以接收的消息的最大大小int1000012[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”。如果多数副本没有接到写入时,将会抛出一个异常。int1[1,...]
num.io.threads服务器用于执行网络请求的io线程数int8[1,...]
num.network.threads服务器用于处理网络请求的线程数。int3[1,...]
num.recovery.threads.per.data.dir每个数据的目录线程数,用于启动时日志恢复和关闭时flush。int1[1,...]
num.replica.fetchers从源broker复制消息的提取线程数。递增该值可提高follower broker的I/O的并发。int1
offset.metadata.max.bytesoffset提交关联元数据条目的最大大小int4096
offsets.commit.required.ackscommit之前需要的应答数,通常,不应覆盖默认的(-1)short-1
offsets.commit.timeout.msOffset提交延迟,直到所有副本都收到提交或超时。 这类似于生产者请求超时。int5000[1,...]
offsets.load.buffer.size当加载offset到缓存时,从offset段读取的批量大小。int5242880[1,...]
offsets.retention.check.interval.ms检查过期的offset的频率。long600000[1,...]
offsets.retention.minutes当一个消费者组失去其所有消费者后(即为空时),其偏移量在被丢弃前将被保留这个保留期。对于独立的消费者(使用手动分配),偏移量将在最后一次提交的时间加上这个保留期后过期。int10080[1,...]
offsets.topic.compression.codec压缩编码器的offset topic - 压缩可以用于实现“原子”提交int0
offsets.topic.num.partitionsoffset commit topic的分区数(部署之后不应更改)int50[1,...]
offsets.topic.replication.factoroffset topic复制因子(ps:就是备份数,设置的越高来确保可用性)。为了确保offset topic有效的复制因子,第一次请求offset topic时,活的broker的数量必须最少最少是配置的复制因子数。 如果不是,offset topic将创建失败或获取最小的复制因子(活着的broker,复制因子的配置)short3[1,...]
offsets.topic.segment.bytesoffset topic段字节应该相对较小一点,以便于加快日志压缩和缓存加载int104857600[1,...]
port不赞成:当listener没有设置才使用。请改用listeners。该port监听和接收连接。int9092
queued.max.requests在阻塞网络线程之前允许的排队请求数int500[1,...]
quota.consumer.default过时的:当默认动态的quotas没有配置或在Zookeeper时。如果每秒获取的字节比此值高,所有消费者将通过clientId/consumer区分限流。long9223372036854775807[1,...]
quota.producer.default过时的:当默认动态的quotas没有配置,或在zookeeper时。如果生产者每秒比此值高,所有生产者将通过clientId区分限流。long9223372036854775807[1,...]
replica.fetch.min.bytes Minimum每个获取响应的字节数。如果没有满足字节数,等待replicaMaxWaitTimeMs。int1
replica.fetch.wait.max.ms跟随者副本发出每个获取请求的最大等待时间,此值应始终小于replica.lag.time.max.ms,以防止低吞吐的topic的ISR频繁的收缩。int500
replica.high.watermark.checkpoint.interval.ms达到高“水位”保存到磁盘的频率。long5000
replica.lag.time.max.ms如果一个追随者没有发送任何获取请求或至少在这个时间的这个leader的没有消费完。该leader将从isr中移除这个追随者。long10000
replica.socket.receive.buffer.bytes用于网络请求的socket接收缓存区int65536
replica.socket.timeout.ms网络请求的socket超时,该值最少是replica.fetch.wait.max.msint30000
request.timeout.ms该配置控制客户端等待请求的响应的最大时间,。如果超过时间还没收到消费。客户端将重新发送请求,如果重试次数耗尽,则请求失败。int30000
socket.receive.buffer.bytessocket服务的SO_RCVBUF缓冲区。如果是-1,则默认使用OS的。int102400
socket.request.max.bytessocket请求的最大字节数int104857600[1,...]
socket.send.buffer.bytessocket服务的SO_SNDBUF缓冲区。如果是-1,则默认使用OS的。int102400
unclean.leader.election.enable是否启用不在ISR中的副本参与选举leader的最后的手段。这样做有可能丢失数据。booleantrue
zookeeper.connection.timeout.ms连接zookeeper的最大等待时间,如果未设置,则使用zookeeper.session.timeout.ms。intnull
zookeeper.session.timeout.msZookeeper会话的超时时间int6000
zookeeper.set.acl设置客户端使用安全的ACLbooleanfalse
broker.id.generation.enable启用自动生成broker id。启用该配置时应检查reserved.broker.max.id。booleantrue 中等
broker.rackbroker机架,用于机架感知副本分配的失败容错。例如:RACK1, us-east-1dstringnull 中等
connections.max.idle.ms闲置连接超时:闲置时间超过该设置,则服务器socket处理线程将关闭这个连接。long600000 中等
controlled.shutdown.enable启用服务器的关闭控制。booleantrue 中等
controlled.shutdown.max.retries控制因多种原因导致的shutdown失败,当这样失败发生,尝试重试的次数int3 中等
controlled.shutdown.retry.backoff.ms在每次重试之前,系统需要时间从导致先前故障的状态(控制器故障转移,复制延迟等)恢复。 此配置是重试之前等待的时间数。long5000 中等
controller.socket.timeout.ms控制器到broker通道的sockt超时时间int30000
default.replication.factor自动创建topic的默认的副本数int1
fetch.purgatory.purge.interval.requests拉取请求清洗间隔(请求数)int1000
group.max.session.timeout.ms已注册的消费者允许的最大会话超时时间,设置的时候越长使消费者有更多时间去处理心跳之间的消息。但察觉故障的时间也拉长了。int300000
group.min.session.timeout.ms已经注册的消费者允许最小的会话超时时间,更短的时间去快速的察觉到故障,代价是频繁的心跳,这可能会占用大量的broker资源。int6000
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找到的全部列表。string0.10.1-IV2
log.cleaner.backoff.ms当没有日志要清理时,休眠的时间long15000[0,...]
log.cleaner.dedupe.buffer.size用于日志去重的内存总量(所有cleaner线程)long134217728
log.cleaner.delete.retention.ms删除记录保留多长时间?long86400000
log.cleaner.enable在服务器上启用日志清洗处理?如果使用的任何topic的cleanup.policy=compact包含内部的offset topic,应启动。如果禁用,那些topic将不会被压缩并且会不断的增大。booleantrue
log.cleaner.io.buffer.load.factor日志cleaner去重缓冲负载因子。去重缓冲区的百分比,较高的值将允许同时清除更多的日志,但将会导致更多的hash冲突。double0.9
log.cleaner.io.buffer.size所有日志清洁器线程I/O缓存的总内存int524288[0,...]
log.cleaner.io.max.bytes.per.second日志清理器限制,以便其读写i/o平均小与此值。double1.7976931348623157E308
log.cleaner.min.cleanable.ratio脏日志与日志的总量的最小比率,以符合清理条件double0.5
log.cleaner.min.compaction.lag.ms一条消息在日志保留不压缩的最小时间,仅适用于正在压缩的日志。long0
log.cleaner.threads用于日志清除的后台线程数int1[0,...]
log.cleanup.policy超过保留时间段的默认清除策略。逗号分隔的有效的策略列表。有效的策略有:“delete”和“compact”list[delete][compact, delete]
log.index.interval.bytes添加一个条目到offset的间隔int4096(4 kibibytes)[0,...]
log.index.size.max.bytesoffset index的最大大小(字节)int10485760[4,...]
log.message.format.version指定追加到日志中的消息格式版本。例如: 0.8.2, 0.9.0.0, 0.10.0。通过设置一个特定消息格式版本,用户需要保证磁盘上所有现有的消息小于或等于指定的版本。错误的设置将导致旧版本的消费者中断,因为消费者接收一个不理解的消息格式。string0.10.1-IV2
log.message.timestamp.difference.max.ms如果log.message.timestamp.type=CreateTime,broker接收消息时的时间戳和消息中指定的时间戳之间允许的最大差异。如果时间戳超过此阈值,则消息将被拒绝。如果log.message.timestamp.type=LogAppendTime,则此配置忽略。long9223372036854775807[0,...]
log.message.timestamp.type定义消息中的时间戳是消息创建时间或日志追加时间。该值可设置为CreateTime 或 LogAppendTimestringCreateTime[CreateTime, LogAppendTime]
log.preallocate在创建新段时预分配文件?如果你在Windowns上使用kafka,你可能需要设置它为true。booleanfalse
log.retention.check.interval.ms日志清除程序检查日志是否满足被删除的频率(以毫秒为单位)long300000[1,...]
max.connections.per.ip允许每个ip地址的最大连接数。int2147483647[1,...]
max.connections.per.ip.overridesper-ip或hostname覆盖默认最大连接数string""
num.partitionstopic的默认分区数int1[1,...]
principal.builder.class实现PrincipalBuilder接口类的完全限定名,该接口目前用于构建与SSL SecurityProtocol连接的Principal。classclass org.apache.kafka.common.security.auth.DefaultPrincipalBuilder
producer.purgatory.purge.interval.requests生产者请求purgatory的清洗间隔(请求数)int1000
replica.fetch.backoff.ms当拉取分区发生错误时休眠的时间1000[0,...]
replica.fetch.max.bytes拉取每个分区的消息的字节数。这不是绝对的最大值,如果提取的第一个非空分区中的第一个消息大于这个值,则消息仍然返回,以确保进展。通过message.max.bytes (broker配置)或max.message.bytes (topic配置)定义broker接收的最大消息大小。int1048576[0,...]
replica.fetch.response.max.bytes预计整个获取响应的最大字节数,这不是绝对的最大值,如果提取的第一个非空分区中的第一个消息大于这个值,则消息仍然返回,以确保进展。通过message.max.bytes (broker配置)或max.message.bytes (topic配置)定义broker接收的最大消息大小。int10485760[0,...]
reserved.broker.max.idbroker.id的最大数int1000[0,...]
sasl.enabled.mechanisms可用的SASL机制列表,包含任何可用的安全提供程序的机制。默认情况下只有GSSAPI是启用的。list[GSSAPI]
sasl.kerberos.kinit.cmdKerberos kinit 命令路径。string/usr/bin/kinit
sasl.kerberos.min.time.before.relogin登录线程在刷新尝试的休眠时间。long60000
sasl.kerberos.principal.to.local.rulesprincipal名称映射到一个短名称(通常是操作系统用户名)。按顺序,使用与principal名称匹配的第一个规则将其映射其到短名称。忽略后面的规则。默认情况下,{username}/{hostname}@{REALM} 映射到 {username}。list[DEFAULT]
sasl.kerberos.service.nameKafka运行的Kerberos principal名称。 可以在JAAS或Kafka的配置文件中定义。stringnull
sasl.kerberos.ticket.renew.jitter添加到更新时间的随机抖动的百分比time. double0.05
sasl.kerberos.ticket.renew.window.factor登录线程休眠,直到从上次刷新到ticket的到期的时间已到达(指定窗口因子),在此期间它将尝试更新ticket。double0.8
sasl.mechanism.inter.broker.protocolSASL机制,用于broker之间的通讯,默认是GSSAPI。stringGSSAPI
security.inter.broker.protocolSecuritybroker之间的通讯协议,有效值有:PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL。stringPLAINTEXT
ssl.cipher.suites密码套件列表。认证,加密,MAC和秘钥交换算法的组合,用于使用TLS或SSL的网络协议交涉网络连接的安全设置,默认情况下,支持所有可用的密码套件。listnull
ssl.client.auth配置请求客户端的broker认证。常见的设置: ssl.client.auth=required 需要客户端认证。 ssl.client.auth=requested 客户端认证可选,不同于requested ,客户端可选择不提供自身的身份验证信息* ssl.client.auth=none 不需要客户端身份认证stringnone[required, requested, none]
ssl.enabled.protocols已启用的SSL连接协议列表。list[TLSv1.2, TLSv1.1, TLSv1]
ssl.key.password秘钥库文件中的私钥密码。对客户端是可选的。passwordnull
ssl.keymanager.algorithm用于SSL连接的密钥管理工厂算法。默认值是Java虚拟机的密钥管理工厂算法。stringSunX509
ssl.keystore.location密钥仓库文件的位置。客户端可选,并可用于客户端的双向认证。stringnull
ssl.keystore.password密钥仓库文件的仓库密码。客户端可选,只有ssl.keystore.location配置了才需要。passwordnull
ssl.keystore.type密钥仓库文件的格式。客户端可选。stringJKS
ssl.protocol用于生成SSLContext,默认是TLS,适用于大多数情况。允许使用最新的JVM,LS, TLSv1.1 和TLSv1.2。 SSL,SSLv2和SSLv3 老的JVM也可能支持,由于有已知的安全漏洞,不建议使用。stringTLS
ssl.provider用于SSL连接的安全提供程序的名称。默认值是JVM的安全程序。stringnull
ssl.trustmanager.algorithm信任管理工厂用于SSL连接的算法。默认为Java虚拟机配置的信任算法。stringPKIX
ssl.truststore.location信任仓库文件的位置stringnull
ssl.truststore.password信任仓库文件的密码passwordnull
ssl.truststore.type信任仓库文件的文件格式stringJKS
authorizer.class.name用于认证的授权程序类string""
metric.reporters度量报告的类列表,通过实现MetricReporter接口,允许插入新度量标准类。JmxReporter包含注册JVM统计。list[]
metrics.num.samples维持计算度量的样本数。int2[1,...]
metrics.sample.window.ms计算度量样本的时间窗口long30000[1,...]
quota.window.num在内存中保留客户端限额的样本数int11[1,...]
quota.window.size.seconds每个客户端限额的样本时间跨度int1[1,...]
replication.quota.window.num在内存中保留副本限额的样本数int11[1,...]
replication.quota.window.size.seconds每个副本限额样本数的时间跨度int1[1,...]
ssl.endpoint.identification.algorithm端点身份标识算法,使用服务器证书验证服务器主机名。stringnull
ssl.secure.random.implementation用于SSL加密操作的SecureRandom PRNG实现。stringnull
zookeeper.sync.time.msZK follower可落后与leader多久。int2000

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

名称描述类型默认有效值重要程度更新模式
group.initial.rebalance.delay.ms分组协调器在执行第一次重新平衡之前,等待更多消费者加入新组的时间。延迟时间越长,意味着重新平衡的次数可能越少,但会增加处理开始前的时间。int3000 只读
transaction.abort.timed.out.transaction.cleanup.interval.ms回滚已超时的事务的时间间隔。int10000 (10 seconds)[1,...]只读
transaction.remove.expired.transaction.cleanup.interval.ms删除因transactional.id.expiration.ms过期的事务的时间间隔。int3600000 (1 hour)[1,...]只读
transaction.max.timeout.ms事务的最大允许超时时间。如果客户端请求的交易时间超过了这个时间,那么broker将在InitProducerIdRequest中返回一个错误。这可以防止客户端的超时时间过大,从而阻滞消费者从事务中包含的主题中读取。int900000 (15 minutes)[1,...]只读
transaction.state.log.load.buffer.size在将生产者id和事务加载到缓存中时,从事务日志段读取的批次大小(软限制,如果消息太大,则重写)int5242880[1,...]只读
transaction.state.log.min.isr覆盖事务topic的min.insync.replicas配置。int2[1,...]只读
transaction.state.log.num.partitions事务topic的分区数(部署后不应改变)。int50[1,...]只读
transaction.state.log.replication.factor事务topic的复制因子(设置较高来确保可用性)。内部topic创建将失败,直到集群规模满足该复制因子要求。short3[1,...]只读
transaction.state.log.segment.bytes事务topic段的字节数应保持相对较小,以利于加快日志压缩和缓存加载速度int104857600 (100 mebibytes)[1,...]只读
transactional.id.expiration.ms事务协调器在没有收到当前事务的任何事务状态更新的情况下,在其事务id过期前等待的时间,单位为ms。这个设置也会影响生产者id过期 - 一旦这个时间在给定的生产者id最后一次写入后过去,生产者id就会过期。请注意,如果由于主题的保留设置而删除了生产者id的最后一次写入,那么生产者id可能会更快过期。int604800000 (7 days)[1,...]只读

kafka大于等于v2.0

名称描述类型默认有效值重要程度动态更新模式
sasl.client.callback.handler.class实现AuthenticateCallbackHandler接口的SASL客户端回调处理程序类的全称。classnull 中间只读
sasl.login.callback.handler.class实现AuthenticateCallbackHandler接口的SASL登录回调处理程序类的全称。对于broker来说,登录回调处理程序配置必须以监听器前缀和小写的SASL机制名称为前缀。例如,listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandlerclassnull 中间只读
sasl.login.class实现Login接口的类的全称。对于broker来说,login config必须以监听器前缀和SASL机制名称为前缀,并使用小写。例如,listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin。classnull 中间只读

kafka大于等于v2.5

名称描述类型默认有效值重要程度更新模式
zookeeper.clientCnxnSocket当使用TLS连接到ZooKeeper时,通常设置为org.apache.zookeeper.ClientCnxnSocketNetty。覆盖任何同名的zookeeper.clientCnxnSocket设置的显式值。stringnull 中间只读
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。booleanfalse 中间只读
zookeeper.ssl.keystore.location当使用客户端证书与TLS连接到ZooKeeper时的keystore位置。覆盖任何通过zookeeper.ssl.keyStore.location系统属性设置的显式值(注意是驼峰大小)。passwordnull 中间只读
zookeeper.ssl.keystore.password当使用客户端证书与TLS连接到ZooKeeper时的keystore密码。覆盖任何通过zookeeper.ssl.keyStore.password系统属性设置的显式值(注意驼峰大写)。 注意,ZooKeeper不支持与keystore密码不同的密钥密码,所以一定要将keystore中的密钥密码设置为与keystore密码相同,否则连接Zookeeper的尝试将失败。passwordnull 中间只读
zookeeper.ssl.keystore.type当使用客户端证书与TLS连接到ZooKeeper时的keystore类型。覆盖任何通过zookeeper.ssl.keyStore.type系统属性设置的显式值(注意骆驼大写)。默认值为null意味着该类型将根据keystore的文件扩展名自动检测。stringnull 中间只读
zookeeper.ssl.protocol指定ZooKeeper TLS协商中使用的协议。一个显式的值会覆盖任何通过同名的zookeeper.ssl.protocol系统设置的值。stringTLSv1.2 只读
zookeeper.ssl.cipher.suites指定在ZooKeeper TLS协商中使用的密码套件(csv),覆盖任何通过zookeeper.ssl.ciphersuites系统属性设置的显式值(注意单字 "ciphersuites")。覆盖任何通过zookeeper.ssl.ciphersuites系统属性设置的显式值(注意 "ciphersuites "这个单字)。默认值为 "null "意味着启用的密码套件列表是由正在使用的Java运行时决定的。booleanfalse 只读
zookeeper.ssl.crl.enable指定是否启用ZooKeeper TLS协议中的证书撤销列表。覆盖任何通过zookeeper.ssl.crl系统属性设置的显式值(注意是短名)。booleanfalse 只读
zookeeper.ssl.enabled.protocols指定ZooKeeper TLS协商(csv)中启用的协议。覆盖任何通过zookeeper.ssl.enabledProtocols系统属性设置的显式值(注意骆驼大写)。默认值为 "null "意味着启用的协议将是zookeeper.ssl.protocol配置属性的值。listnull 只读
zookeeper.ssl.endpoint.identification.algorithm指定是否在ZooKeeper TLS协商过程中启用主机名验证,(不区分大小写)"https "表示启用ZooKeeper主机名验证,显式的空白值表示禁用(仅为测试目的建议禁用)。明确的值会覆盖任何通过zookeeper.ssl.hostnameVerification系统属性设置的 "true "或 "false "值(注意不同的名称和值;true意味着https,false意味着空白)。stringHTTPS 只读
zookeeper.ssl.ocsp.enable指定是否启用ZooKeeper TLS协议中的在线证书状态协议。覆盖任何通过zookeeper.ssl.ocsp系统属性设置的显式值(注意是短名)。booleanfalse 只读

kafka大于等于v2.7

名称描述类型默认有效值重要程度更新模式
ssl.truststore.certificates可信证书的格式由'ssl.truststore.type'指定。默认的SSL引擎工厂只支持带X.509证书的PEM格式。passwordnull 中间每个broker
socket.connection.setup.timeout.max.ms客户端等待建立socket连接的最大时间。连接设置超时时间将随着每一次连续的连接失败而成倍增加,直到这个最大值。为了避免连接风暴,超时时间将被应用一个0.2的随机因子,导致计算值在20%以下和20%以上的随机范围。long127000 (127 seconds) 中间只读
socket.connection.setup.timeout.ms客户端等待建立socket连接的时间。如果在超时之前没有建立连接,客户端将关闭socket通道。long10000 (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将不使用这个配置。stringnull
metadata.log.dir这个配置决定了我们将KRaft模式下的集群的元数据日志放在哪里。如果没有设置,元数据日志将被放置在log.dirs中的第一个日志目录。stringnull
broker.heartbeat.interval.msbroker之间心跳之间的时间间隔(毫秒)。在KRaft模式下运行时使用。int2000 (2秒) 中间
broker.session.timeout.ms如果没有心跳,broker持续的时间,以毫秒计。在KRaft模式下运行时使用。int9000 (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这用于二进制指数退避机制,有助于防止选举陷入僵局。int1000 (1秒)
controller.quorum.election.timeout.ms在触发新的选举之前,无法从leader那里获取的最大等待时间(毫秒)。int1000 (1秒)
controller.quorum.fetch.timeout.ms在成为候选人并触发选民选举之前,没有从现任leader那里成功获取的最长时间;在四处询问是否有新的领导人纪元之前,没有从法定人数的大多数人那里获得获取的最长时间。int2000 (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连接。stringnull
Last modification:July 2, 2022
如果觉得我的文章对你有用,请随意赞赏