Kafka 详细配置参数说明
  aooFr2LFWesC 2023年11月02日 37 0


参数值

参数文件

描述

auto.create.topics.enable

server.properties

【说明】是否允许自动创建Topic,若是false,就需要通过命令创建Topic。

【默认值】true

【取值范围】true或false

log.cleaner.backoff.ms

server.properties

【说明】检查是否有日志需要清理的时间间隔。单位:毫秒。

【默认值】15000

【取值范围】0~9223372036854775807

log.cleaner.delete.retention.ms

server.properties

【说明】保存压缩日志的最长时间,与log.retention.minutes的区别在于一个控制未压缩数据,一个控制压缩后的数据。单位:毫秒。

【默认值】86400000

【取值范围】1~9223372036854775807

log.cleaner.enable

server.properties

【说明】是否打开日志数据压缩功能。

【默认值】true

【取值范围】true或false

log.cleaner.io.buffer.load.factor

server.properties

【说明】日志数据清理中Hash表的扩大因子,一般不需要修改。

【默认值】0.9

【取值范围】0~1

log.cleaner.io.buffer.size

server.properties

【说明】日志数据清理过程中针对日志进行索引化以及精简化所用到的缓存大小,一般不需要修改。单位:字节。

【默认值】512*1024

【取值范围】0~2147483647

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

server.properties

【说明】进行日志数据压缩清理时,允许每秒I/O的数据量,以免日志数据压缩清理影响正在执行的请求。单位:字节/秒。

【默认值】1.7976931348623157E308

【取值范围】0~1.7976931348623157E308

log.cleaner.min.cleanable.ratio

server.properties

【说明】控制日志数据压缩清理的频率。默认情况下,当日志数据的50%已经被清理时,不需要再继续清理。

【默认值】0.5

【取值范围】0~1

log.cleaner.threads

server.properties

【说明】日志压缩清理所使用的线程数。

【默认值】1

【取值范围】1~2147483647

log.cleanup.policy

server.properties

【说明】当日志过期时(超过了要保存的时间),采用的清除策略,删除或者压缩。

【默认值】delete

【取值范围】delete或compact

log.dirs

server.properties

【说明】Kafka数据保存路径,可以是多个目录,以“,”分隔。每个新Partition会被创建在包含最少Partition的目录下。

log.flush.interval.messages

server.properties

【说明】指定累积多少条消息强制进行落盘。例如,如果这个选项设置为5,那么Broker收到每5条消息后,就需要进行一次落盘。此参数的设置,需要在“数据可靠性”与“性能”之间做必要的权衡。

【默认值】9223372036854775807

【取值范围】1~9223372036854775807

log.flush.interval.ms

server.properties

【说明】指定强制进行日志数据落盘的时间间隔。单位:毫秒。

【默认值】9223372036854775807

【取值范围】0~9223372036854775807

log.flush.offset.checkpoint.interval.ms

server.properties

【说明】指定检查上次日志数据刷新的频率。一般不需要修改。单位:毫秒。

【默认值】60000

【取值范围】1000~2147483647

log.flush.scheduler.interval.ms

server.properties

【说明】指定检查是否需要将日志数据落盘的时间间隔。单位:毫秒。

【默认值】9223372036854775807

【取值范围】1000~9223372036854775807

log.index.interval.bytes

server.properties

【说明】指定Kafka每隔多少字节创建一个消息索引。默认设置保证了每4096个字节就对消息添加一个索引,更多的索引使得消息的读取更加高效,但是索引数量会由此增大。一般不需要修改。单位:字节。

log.index.size.max.bytes

server.properties

【说明】指定索引文件的大小,一般不需要修改。单位:字节。

【默认值】10 * 1024 z* 1024

【取值范围】4~2147483647

log.message.timestamp.difference.max.ms

server.properties

【说明】消息时间戳差别最大值,仅当message.timestamp.type设置为CreateTime时有效,若收到的消息中携带的时间戳与当前时间的差值大于该值时,该消息会被拒绝。

【默认值】9223372036854775807

【取值范围】1~922337203685477580

log.message.timestamp.type

server.properties

【说明】设置消息时间戳记录的内容,可记录消息创建的时间,或者消息数据写入时间。

【默认值】CreateTime

【取值范围】CreateTime或LogAppendTime

log.retention.bytes

server.properties

【说明】指定每个Partition上的日志数据所能达到的最大字节。默认情况下无限制。单位:字节。

【默认值】-1

【取值范围】-1~9223372036854775807

log.retention.hours

server.properties

【说明】日志数据文件保留的最长时间。单位:小时。

【默认值】24*7

【取值范围】1~2147483647

log.roll.hours

server.properties

【说明】指定创建新日志数据分段文件的时间间隔,即使文件大小没有达到log.segment.bytes,也会创建。单位:小时。

【默认值】24*7

【取值范围】1~2147483647

log.segment.bytes

server.properties

【说明】指定日志数据中分段文件的最大字节数。单位:字节。

【默认值】1073741824

【取值范围】1048576~2147483647

log.segment.delete.delay.ms

server.properties

【说明】指定从文件系统中删除一个文件的超时时间。单位:毫秒。

【默认值】60000

【取值范围】0~9223372036854775807

min.insync.replicas

server.properties

【说明】当Producer设置request.required.acks为-1时,指定需要写入成功的副本的最小数目。

【默认值】1

【取值范围】1~2147483647

num.partitions

server.properties

【说明】指定Topic的默认分区数。如果创建Topic时没有指定Partition个数,此配置为Topic下Partitions的数目。

【默认值】2

【取值范围】1~2147483647

num.recovery.threads.per.data.dir

server.properties

【说明】每个数据目录用来数据恢复的线程数目。

【默认值】10

【取值范围】1~2147483647

background.threads

server.properties

【说明】Broker后台任务处理的线程数目,例如过期数据文件的删除线程。一般不需要修改。

【默认值】10

【取值范围】1~512

message.max.bytes

server.properties

【说明】Broker允许接收单条消息的最大字节数。单位:字节。

【默认值】1000012

【取值范围】0~2147483647

num.io.threads

server.properties

【说明】Broker用来处理磁盘I/O的线程数目,这个线程数目建议至少等于硬盘的个数。

【默认值】8

【取值范围】1~256

num.network.threads

server.properties

【说明】Broker用来处理网络请求的线程数目。一般不需要修改。

【默认值】3

【取值范围】1~128

queued.max.requests

server.properties

【说明】在网络请求处理线程停止读取新请求之前,可以排队等待I/O线程处理的最大请求个数.

【默认值】500

【取值范围】1~10000

request.timeout.ms

server.properties

【说明】设置客户端发送连接请求后,等待响应的超时时间。如果在超时时间内没有接收到响应,那么客户端重新发送,并在达到重试次数后返回请求失败。单位:毫秒。

【默认值】30000

【取值范围】10~600000

ssl.mode.enable

server.properties

【说明】如果设置为true,那么Broker启动过程中会启动SSL的相关服务。

【默认值】false

【取值范围】true或false

group.max.session.timeout.ms

server.properties

【说明】Consumer注册时允许的最大会话超时时间。单位:毫秒。

【默认值】300000

【取值范围】1~2147483647

group.min.session.timeout.ms

server.properties

【说明】Consumer注册时允许的最小会话超时时间。单位:毫秒。

【默认值】6000

【取值范围】1~2147483647

auto.leader.rebalance.enable

server.properties

【说明】是否使用Leader自动均衡功能。如果设为true,Controller会周期性的为所有Broker的每个Partition均衡Leadership,将Leadership分配给更优先(preferred)的副本。

【默认值】true

【取值范围】true或false

controller.socket.timeout.ms

server.properties

【说明】Partition的Leader与副本之间通讯时,Socket的超时时间。单位:毫秒。

【默认值】30000

【取值范围】0~2147483647

default.replication.factor

server.properties

【说明】自动创建Topic时的缺省副本数。该值必须小于等于Broker实例数。

【默认值】2

【取值范围】1~2147483647

fetch.purgatory.purge.interval.requests

server.properties

【说明】同步请求的清除间隔。

【默认值】1000

【取值范围】1~2147483647

leader.imbalance.check.interval.seconds

server.properties

【说明】Leader均衡检测的时间间隔。单位:秒。

【默认值】300

【取值范围】1~2147483647

leader.imbalance.per.broker.percentage

server.properties

【说明】每个Broker允许的不均衡的Leader的百分比。如果每个Broker超过了这个百分比,Controller就会重新均衡Leadership。单位:百分比。

【默认值】10

【取值范围】0~100

num.replica.fetchers

server.properties

【说明】副本向Leader请求同步数据的线程数,增大这个数值会增加副本的I/O并发度。

【默认值】1

【取值范围】1~2147483647

producer.purgatory.purge.interval.requests

server.properties

【说明】Producer请求的清除间隔次数。

【默认值】1000

【取值范围】1~2147483647

replica.fetch.backoff.ms

server.properties

【说明】数据同步出错时的等待时间。单位:毫秒。

【默认值】1000

【取值范围】0~2147483647

replica.fetch.max.bytes

server.properties

【说明】副本与Leader之间数据同步请求中每次请求消息的最大字节数。单位:字节。

【默认值】1024*1024

【取值范围】message.max.bytes~2147483647

replica.fetch.min.bytes

server.properties

【说明】副本与Leader之间数据同步请求中每次请求消息的最小字节数。单位:字节。

【默认值】1

【取值范围】1~2147483647

replica.fetch.wait.max.ms

server.properties

【说明】副本与Leader之间通信的最大等待时间,配置值不得大于replica.lag.time.max.ms。单位:毫秒。

【默认值】500

【取值范围】1~2147483647

replica.high.watermark.checkpoint.interval.ms

server.properties

【说明】副本将Hight Watermark信息写入磁盘的时间间隔。单位:毫秒。

【默认值】5000

【取值范围】1~9223372036854775807

replica.lag.max.messages

server.properties

【说明】如果一个副本中没有同步的消息条数超过这个数值,Leader会认为该副本已经失效,并将其从ISR中移除。

【默认值】4000

【取值范围】0~9223372036854775807

replica.lag.time.max.ms

server.properties

【说明】如果一个副本在这个时间内没有发送数据同步请求,Leader会认为该副本已经失效,并将其从ISR中移除。单位:毫秒。

【默认值】10000

【取值范围】0~9223372036854775807

replica.socket.receive.buffer.bytes

server.properties

【说明】副本同步数据时,接收Leader消息的缓存大小。单位:字节。

【默认值】64*1024

【取值范围】0~2147483647

replica.socket.timeout.ms

server.properties

【说明】副本数据同步请求的超时时间,配置值不得小于replica.fetch.wait.max.ms。单位:毫秒。

【默认值】30*1000

【取值范围】0~2147483647

unclean.leader.election.enable

server.properties

【说明】是否允许不在ISR中的副本被选举为Leader,若设置为true,可能会造成数据丢失。

【默认值】true

【取值范围】true或false

compression.type

server.properties

【说明】指定topic最终的数据压缩方式,如果这是为producer,那么将保留Producer的压缩方式。

【默认值】producer

【取值范围】producer, uncompressed, gzip, snappy, lz4

connections.max.idle.ms

server.properties

【说明】空闲链接的超时时间。服务端的Socket处理线程会将超过该时间的空闲链接关闭。单位:毫秒。

【默认值】600000

【取值范围】1~9223372036854775807

delete.topic.enable

server.properties

【说明】指定是否允许删除Topic。如果设置为false,通过管理工具无法删除Topic。

【默认值】true

【取值范围】true或false

max.connections.per.ip

server.properties

【说明】Broker允许每个IP的最大连接数。

【默认值】2147483647

【取值范围】1~2147483647

max.connections.per.ip.overrides

server.properties

【说明】每个IP或者主机名允许的最大连接数。配置举例:hostname1:num1,hostname2:num2或者IP1:num1,IP2:num2,IP3:num3,中间用英文逗号分隔。

auto.commit.interval.ms

ConsumerConfig

【说明】自动提交的时间间隔

enable.auto.commit

ConsumerConfig

【说明】是否自动提交offset

【默认】true

max.poll.records

ConsumerConfig

【说明】最大消费数

【默认】

【提示】kafka在0.9版本无max.poll.records参数,默认拉取记录是500,直到0.10版本才引入该参数,所以在0.9版本配置是无效的。

group.id

ConsumerConfig

【说明】消费组

zookeeper.session.timeout.ms

ConsumerConfig

【说明】ZooKeeper的最大超时时间,就是心跳的间隔,若是没有反映,那么认为已经死了,不易过大

【默认值】6000

bootstrap.servers

ConsumerConfig

【说明】连接kafka节点信息 host1:port1,host2,port2

partition.assignment.strategy

ConsumerConfig

【说明】Kafka消费时分区分配策略

【参数】 range 或 roundrobin。

【默认值】range

【参考】https://mp.weixin.qq.com/s/WjJ4DcUhD0TTiBWj-wTWXg

auto.offset.reset

ConsumerConfig

【说明】earliest: 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费

latest : 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据

none: topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常

fetch.min.bytes

ConsumerConfig

【说明】server发送到消费端的最小数据,若是不满足这个数值则会等待直到满足指定大小。默认为1表示立即接收

fetch.wait.max.ms

ConsumerConfig

若是不满足fetch.min.bytes时,等待消费端请求的最长等待时间

metadata.max.age.ms

ConsumerConfig

【说明】在毫秒数的时间内,即使我们没有看到任何分区leader更改,也会强制刷新元数据,以便主动发现任何新的代理或分区。

max.partition.fetch.bytes

ConsumerConfig

【说明】每次从单个分区中拉取的消息最大尺寸(byte)

【默认】为1M

client.id

ConsumerConfig

【说明】这个client id是用户特定的字符串,在每次请求中包含用来追踪调用,他应该逻辑上可以确认是那个应用发出了这个请求。

reconnect.backoff.ms

ConsumerConfig

【默认值】50ms【说明】用于设置重新尝试连接的等待时间。

check.crcs

ConsumerConfig

【说明】自动检查CRC32记录的消耗。这样可以确保消息发生时不会在线或磁盘损坏。此检查增加了一些开销,因此在寻求极致性能的情况下可能会被禁用。

key.deserializer

ConsumerConfig

【说明】key的解析序列化接口实现类(Deserializer)

value.deserializer

ConsumerConfig

【说明】value的解析序列化接口实现类(Deserializer)

connections.max.idle.ms

ConsumerConfig

【说明】空连接的超时限制

【默认值】600000

request.timeout.ms

ConsumerConfig

【说明】配置控制客户端等待请求响应的最长时间。如果在超时之前未收到响应,客户端将在必要时重新发送请求,如果重试耗尽则客户端将重新发送请求。

exclude.internal.topics

ConsumerConfig

【说明】内部topic的记录(如偏移量)是否应向消费者公开。如果设置为true,则从内部topic接受记录的唯一方法是订阅它。

metadata.max.age.ms

ProducerConfig

同consumer

batch.size

ProducerConfig

【说明】kafka会默认将发送到一个partiton的数据进行整合,这个大小是处理请求数据大小batch发送的,如果太小,可能就只能单独请求发送消息给kafka。

linger.ms

ProducerConfig

【说明】如果达不到batch.size大小,每隔固定时间发送一次

acks

ProducerConfig

producer需要server接收到数据之后发出的确认接收的信号,此项配置就是指procuder需要多少个这样的确认信号。此配置实际上代表了数据备份的可用性。以下设置为常用选项:

(1)acks=0: 设置为0表示producer不需要等待任何确认收到的信息。副本将立即加到socket buffer并认为已经发送。没有任何保障可以保证此种情况下server已经成功接收数据,同时重试配置不会发生作用(因为客户端不知道是否失败)回馈的offset会总是设置为-1;

(2)acks=1: 这意味着至少要等待leader已经成功将数据写入本地log,但是并没有等待所有follower是否成功写入。这种情况下,如果follower没有成功备份数据,而此时leader又挂掉,则消息会丢失。

(3)acks=all: 这意味着leader需要等待所有备份都成功写入日志,这种策略会保证只要有一个备份存活就不会丢失数据。这是最强的保证。

(4)其他的设置,例如acks=2也是可以的,这将需要给定的acks数量,但是这种策略一般很少用。

client.id

ProducerConfig

同consumer

buffer.memory

ProducerConfig

【说明】producer可以用来缓存数据的内存大小。如果数据产生速度大于向broker发送的速度,producer会阻塞或者抛出异常,以“block.on.buffer.full”来表明。这项设置将和producer能够使用的总内存相关,但并不是一个硬性的限制,因为不是producer使用的所有内存都是用于缓存。一些额外的内存会用于压缩(如果引入压缩机制),同样还有一些用于维护请求。

【默认值】33554432

retries

ProducerConfig

【说明】设置大于0的值将使客户端重新发送任何数据,一旦这些数据发送失败。注意,这些重试与客户端接收到发送错误时的重试没有什么不同。允许重试将潜在的改变数据的顺序,如果这两个消息记录都是发送到同一个partition,则第一个消息失败第二个发送成功,则第二条消息会比第一条消息出现要早。

【默认值】0

retry.backoff.ms

ProducerConfig

【说明】在试图重试失败的produce请求之前的等待时间。避免陷入发送-失败的死循环中。

【默认值】100

key.serializer

ProducerConfig

同consumer

value.serializer

ProducerConfig

同consumer

connections.max.idle.ms

ProducerConfig

【说明】关闭空闲连接

【默认值】9 * 60 * 1000

partitioner.class

ProducerConfig

【说明】分区类,实现Partitioner 的class

request.timeout.ms

ProducerConfig

同consumer

公众号:hadoopwiki


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
aooFr2LFWesC