Kafka配置参数调优详解

常规配置

broker.id=1               #broker的全局唯一编号,不能重复 (三台kafka 设置1 2 3 即可 默认是-1 不启动 大于等于0是启动的)

delete.topic.enable=true  #配置默认是false,是否允许kafka集群删除topic,只有为true的情况,kafka才会删除那些已经被标记为删除的topic。否则topic将不会被删除,仅仅被标记,所谓标记,也就是在zk上记录那些delete的topic。不删除会占用磁盘空间,难以管理,如果是修改完后需要重启集群

log.dirs=/tmp/kafka-logs  #删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录

listeners=PPLAINTEXT://0.0.0.0:9092 #监听自身 (本机ip是哪台 就监听哪台) 示例listeners=PPLAINTEXT://10.0.0.7:9092

zookeeper.connect=zk地址  #配置连接Zookeeper集群地址示例zookeeper.connect=10.0.0.7:2181,10.0.0.8:2181,10.0.0.9:2181/kafka 

调优配置

## zookeeper配置 
zookeeper.connection.timeout.ms=6000  #设置kafka和zk建立连接的超时时间,默认是6s

num.recovery.threads.per.data.dir=1   #数据目录用来日志恢复的线程数目,默认是1;配置多线程可加快恢复速度,宕机或重新启动加载目录文件的分段信息的线程数,如果用的是单个目录,可以将线程数设置大一点,示例:num.recovery.threads.per.data.dir=1

num.partitions=1  #每个topic的分区个数,默认是1 该参数指定了新创建的topic有多少分区,按业务量大小设置,示例num.partitions=12

default.replication.factor=1   #为kafka保存消息的副本数,默认是1,如果一个副本失效了,另一个还可以继续提供服务,是在自动创建topic时的默认副本数,可以设置为3  

auto.create.topics.enable=false #当设置为true时,如果生产者尝试向一个尚不存在的主题发送消息,Kafka将自动创建该主题。不便管理;若设置false,如果生产者尝试向一个不存在的主题发送消息,Kafka将不会创建该主题,而是会返回一个错误给生产者,

num.network.threads=3  #服务器用来接受请求或者发送响应的线程数,默认就是3

num.io.threads=8  #处理磁盘I/O的线程数,默认是8

socket.send.buffer.bytes=102400  #发送套接字的缓冲区大小
socket.receive.buffer.bytes=102400 #接收套接字的缓冲区大小 
socket.request.max.bytes=104857600 #请求套接字的缓冲区大小

transaction.state.log.replication.factor=1 #默认是1 用于控制事务日志副本因子的重要配置参数,可以确保 Kafka 集群在发生故障时仍然能够保持数据的可靠性和可用性

transaction.state.log.min.isr=1 #默认是1,用来指定 Kafka 事务日志分区所需的最小 ISR 副本数。这个参数确保了在事务日志分区中,至少有多少个 ISR 副本是处于活跃状态且能够保持同步的

log.retention.check.interval.ms=300000  #默认是300000,检查文件是否达到标准的间隔时间,看是否可以根据保留策略删除它们

message.max.bytes=5242880  #Kafka 中单个消息(或称为 record)的最大允许大小,多数版本中,message.max.bytes 的默认值为 1000000 字节,即1MB,生产中经常遇到消息堆积不显示的问题,这个参数建议改成5M或者以上;

group.initial.rebalance.delay.ms=0  #默认是0,让coordinator推迟空消费组接收到成员加入请求后本应立即开启的rebalance

num.replica.fetchers=3   #Follower副本用多少个线程来拉取消息,默认使用1个线程,集群一般最小设置3;

offsets.topic.replication.factor=3   #默认为1,增加副本,防止单broker挂掉造成无法消费, 详细来说就是表示kafka的内部topic consumer_offsets副本数。当该副本所在的broker宕机,consumer_offsets只有一份副本,该分区宕机。使用该分区存储消费分组offset位置的消费者均会收到影响,offset无法提交,从而导致生产者可以发送消息但消费者不可用。所以需要设置该字段的值大于1

log.retention.bytes=5368709120   #这个参数作用是超过指定大小后,删除旧的消息; 默认是1073741824(1G)

log.segment.bytes=536870912  # 512MB [每个分区每个分段的大小,消息大小要空值在内,防止出现大对象]

log.retention.hours=24   #默认是168小时,这表示数据存活的时间;这个要看磁盘空间大小,如果空间不大,一般建议设置24小时,如果够大,168小时也可以的;
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值