JVM参数调优
默认情况下启动Broker进程只会使用1G内存,在实际使用过程中会导致频繁的GC,会影响Kafka集群的性能和稳定性。
[root@hadoop01 bin]# vim kafka-server-start.sh
# 查看 gc 的详细信息
[root@hadoop01 kafka_2.12-2.4.0]# jstat -gcutil 60640 1000
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 100.00 56.07 37.23 92.00 92.32 87 2.533 0 0.000 2.533
0.00 100.00 56.07 37.23 92.00 92.32 87 2.533 0 0.000 2.533
0.00 100.00 56.07 37.23 92.00 92.32 87 2.533 0 0.000 2.533
0.00 100.00 56.07 37.23 92.00 92.32 87 2.533 0 0.000 2.533
0.00 100.00 56.23 37.23 92.00 92.32 87 2.533 0 0.000 2.533
0.00 100.00 56.23 37.23 92.00 92.32 87 2.533 0 0.000 2.533
0.00 100.00 56.23 37.23 92.00 92.32 87 2.533 0 0.000 2.533
0.00 100.00 56.23 37.23 92.00 92.32 87 2.533 0 0.000 2.533
0.00 100.00 56.23 37.23 92.00 92.32 87 2.533 0 0.000 2.533
^CYou have new mail in /var/spool/mail/root
Replication参数调优
- replica.socket.timeout.ms=60000,控制partition副本之间的socket的通信超时时间,默认是30,如果值太小可能会误判某个partition副本连不上
- replica.lag.time.max.ms=50000,如果一个副本在指定的时间内没有向leader发送请求或者没有同步完leader的数据,leader就会将其从isr中移除,默认是10s,如果集群网络不好或者kafka压力比较大,建议将这个值调大一些,否则会频繁出现副本流失,进而导致集群需要频繁复制副本,导致集群压力更大,恶性循环
Log参数调优
- log.retention.hours=24,默认值是7天
Topic命名小技巧
- Topic名称:action_r2p10,r2:表示partition的副本因子是2,p10:表示Topic的分区数是10,这样可以清楚的知道应该设置多少个消费者去消费数据的效率更高,效率最高的就是消费者的数量和Topic分区的数量保持一致
Kafka集群监控管理工具-CMAK
- 下载地址:https://github.com/yahoo/CMAK
- jdk11环境:https://repo.huaweicloud.com/java/jdk/11.0.2+7/
[root@hadoop01 cmak-3.0.0.4]# unzip cmak-3.0.0.4.zip
# 首行添加,jdk只要解压不需要配置环境变量
[root@hadoop01 cmak-3.0.0.4]# vim cmak
JAVA_HOME=/home/soft/jdk11
[root@hadoop01 cmak-3.0.0.4]# vim application.conf
cmak.zkhosts="hadoop01:2182,hadoop02:2181,hadoop03:2181"
# 重启kafka
[root@hadoop01 kafka]# JMX_PORT=9988 bin/kafka-server-start.sh -deamon config/server.properties
# 启动cmk
[root@hadoop01 cmak-3.0.0.4]# bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=9876
访问9876端口
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e19b99a845ba42d7b0e42b48b23dcfba.png#pic_center)