kafka性能调优(转)

原文  https://blog.csdn.net/weixin_39478115/article/details/79155287

Broker参数配置

1、网络和io操作线程配置优化
# broker处理消息的最大线程数(默认为3)
num.network.threads=cpu核数+1
# broker处理磁盘IO的线程数 
num.io.threads=cpu核数*2

2、log数据文件刷盘策略 
# 每当producer写入10000条消息时,刷数据到磁盘 
log.flush.interval.messages=10000
# 每间隔1秒钟时间,刷数据到磁盘
log.flush.interval.ms=1000

3、日志保留策略配置
# 保留三天,也可以更短 (log.cleaner.delete.retention.ms)
log.retention.hours=72
# 段文件配置1GB,有利于快速回收磁盘空间,重启kafka加载也会加快(如果文件过小,则文件数量比较多,kafka启动时是单线程扫描目录(log.dir)下所有数据文件
log.segment.bytes=1073741824

4、Replica相关配置
default.replication.factor:3
# 这个参数指新创建一个topic时,默认的Replica数量,Replica过少会影响数据的可用性,太多则会白白浪费存储资源,一般建议在2~3为宜。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

Java API调优

1、zookeeper.session.timeout.ms 
解释:配置的超时时间太短,Zookeeper没有读完Consumer的数据,连接就被Consumer断开了!
参数:5000 

2、zookeeper.sync.time.ms
解释:ZooKeeper集群中leader和follower之间的同步的时间
参数:2000

3、auto.commit.enable=true 
解释:注意offset信息并不是每消费一次消息就向zk提交一次,而是现在本地保存(内存),并定期提交 

4、auto.commit.interval.ms
解释:自动提交offset到zookeeper的时间间隔
参数:1000

5、zookeeper.connection.timeout.ms 
解释:确认zookeeper连接建立操作客户端能等待的最长时间
参数:10000

6、rebalance.backoff.ms
解释:消费均衡两次重试之间的时间间隔
参数:2000

7、rebalance.max.retries
解释:消费均衡的重试次数
参数:10
posted on 2018-08-15 15:52  devilwind  阅读(2542)  评论(0编辑  收藏  举报