Broker端的参数
1.log.dirs:这个参数可以跟几个文件目录,
如:/home/kafka1,/home/kafka2,/home/kafka3
如果有条件这几个目录最好是不同磁盘的目录
2.zookeeper.connect:这里说下如果多个kafka集群都用这个zookeeper的指定方式。
如:zk1:2181,zk2:2181,zk3:2181/kafa1,zk1:2181,zk2:2181,zk3:2181/kafa2
topic管理参数设置
1.auto.create.topics.enable:是否允许自动创建 Topic。
一般是设置成false,不让自动创建,不然会出现很多没有意义的topic
2.unclean.leader.election.enable:false表示数据相差很大的副本不可以竞选leader,true表示可以竞选,建议是手动设置成false,这样能防止数据丢失
3.auto.leader.rebalance.enable:true表示如果定期的就重现选举leader,即时当前的leader好好的,也要重新选举,所有建议设置成false
4.log.retention.{hour|minutes|ms}:表示一条消息被保存多长时间,一般设置成7天,7天后就自动删除7天前的数据
5.log.retention.bytes:指定broker的磁盘能存储的总容量大小,它的默认值是-1,表示在这台broker上存多少数据都可以
6.log.max.bytes:控制broker能够接受的最大消息大小,默认值是1000012,1M都没有达到,应该设置的大一点,
JVM的调优
KAFKA_HEAP_OPTS=–Xms6g --Xmx6g 根据大量的经验积累,一般服务器中,我们先把kafka的缓存设置成6G比较合理,当然 了具体的还是要看你的后期的业务和机器
KAFKA_JVM_PERFORMANCE_OPTS= -server -XX:+UseG1GC -XX:MaxGCPauseMillis显示的把jvm的垃圾回收器设置成G1,它在这个场景中是最合适的
操作系统的调优
sysctlvm.swappiness=1 讲swap空间设置成较小但不是0是比较合理的
ulimit -n 1000000操作系统打开的文件数,这个可以设置如上的大一点比较合理
有任何问题,欢迎加扫码咨询(备注好对应的技术呦)