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