大数据开发Kafka相关技巧(第四十篇)

100 阅读1分钟

一、JVM参数调优

  1. 登录服务器,使用jps查看kafka的进程id

    image-20221206134729694

  2. 使用jstat查看GC信息

    jstat -gcutil 进程id 间隔刷新时间(毫秒)

    YGC:年轻代GC发生的次数

    YGCT:年轻代GC的消耗的时间

  3. 修改kafka-server-start.sh中的KAFKA_HEAP_OPTS

一般16G内存机器,配置10G

 export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

二、Replication参数调优(server.properties)

  1. replica.socket.timeout.ms=60000

    默认值是30s,控制Partition副本之间所Socket通信的超时时间。因为副本需要找那个leader,如果时间太短,会造成误判

  2. replica.lag.time.max.ms=50000

    默认是10s,如果一个副本没有在指定的时间内向它对应Leader的那个副本的节点发送任何请求,或者在指定的时间内没有同步完Leader里面的数据,这样的话Leader会将这个节点从lsr进行移除掉

三、Log参数调优(server.properties)

针对Kafka中数据文件的那个删除时机进行设置,而不是针对Kafka本身的日志参数的设置

  1. log.retention.hours=24

    默认是168,单位是小时,也就是7天,也就是默认会保存7天。因为Kafka的数据会保存到HDFS中,没必要再Kafka进行保留7天

四、Kafka Topic命名的小技巧

  1. Topic名称:action_r2p10

    r2表示:partition的副本因子是2

    p10表示:表示这个Topic的分区数是10

五、Kafka集群监控管理工具

  1. CMAK(KafkaManager)

    CMAK是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在web界面上操作kafka集群。可以轻松检查集群状态(Topic、Consumer、Offset、Brokers、Replica、Partition)