一、JVM参数调优
-
登录服务器,使用jps查看kafka的进程id
-
使用jstat查看GC信息
jstat -gcutil 进程id 间隔刷新时间(毫秒)
YGC:年轻代GC发生的次数
YGCT:年轻代GC的消耗的时间
-
修改kafka-server-start.sh中的KAFKA_HEAP_OPTS
一般16G内存机器,配置10G
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
二、Replication参数调优(server.properties)
-
replica.socket.timeout.ms=60000
默认值是30s,控制Partition副本之间所Socket通信的超时时间。因为副本需要找那个leader,如果时间太短,会造成误判
-
replica.lag.time.max.ms=50000
默认是10s,如果一个副本没有在指定的时间内向它对应Leader的那个副本的节点发送任何请求,或者在指定的时间内没有同步完Leader里面的数据,这样的话Leader会将这个节点从lsr进行移除掉
三、Log参数调优(server.properties)
针对Kafka中数据文件的那个删除时机进行设置,而不是针对Kafka本身的日志参数的设置
-
log.retention.hours=24
默认是168,单位是小时,也就是7天,也就是默认会保存7天。因为Kafka的数据会保存到HDFS中,没必要再Kafka进行保留7天
四、Kafka Topic命名的小技巧
-
Topic名称:action_r2p10
r2表示:partition的副本因子是2
p10表示:表示这个Topic的分区数是10
五、Kafka集群监控管理工具
-
CMAK(KafkaManager)
CMAK是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在web界面上操作kafka集群。可以轻松检查集群状态(Topic、Consumer、Offset、Brokers、Replica、Partition)