参数值 | 参数文件 | 描述 |
---|---|---|
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