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为宜。

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
Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐