kafka在开发中积累的经验

一、kafka 的 Java heap space 配置

     Kafka :Java heap space 原先配置是512M,先改为2G.

    消费的数据量过大时,很容易出现下面的问题。导致消费的数据发送不到本地kafka。

、.远程生产或者消费社区版kafka需要配置:0.9.0.0

listeners=PLAINTEXT://0.0.0.0:9092

默认的配置是listeners=PLAINTEXT://localhost:9092,导致其他机器不能同9092端口,需要配置0.0.0.0去放通9092端口。

、Kafka集群优化设置的参数

num.network.threads=9 (CPU数+1)默认是3
num.io.threads=16 (CPU数2到3倍)默认是8
# 每当producer写入10000条消息时,刷数据到磁盘
log.flush.interval.messages=10000
# 每间隔1秒钟时间,刷数据到磁盘
log.flush.interval.ms=1000
#默认是16384,有点小
batch.size = 100000
#加快备份的复制速度
num.replica.fetchers=4

Linux系统:

/etc/sysctl.conf

vm.swappiness = 1
vm.dirty_background_ratio = 5
vm.dirty_ratio = 60   # cat /proc/vmstat |grep nr_writeback
net.core.rmem_default = 256960
net.core.rmem_max = 513920
net.core.wmem_default = 256960
net.core.wmem_max = 513920
net.ipv4.tcp_mem = 131072  262144  524288
net.ipv4.tcp_rmem = 8760  256960  4088000
net.ipv4.tcp_wmem = 8760  256960  4088000

使用命令" sysctl –p "使之立即生效。

Java:

vim /root/.bash_profile

export KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.awt.headless=true"
source /root/.bash_profile

主要参考一下两篇文章:

https://www.iteblog.com/archives/1879.html

http://www.cnblogs.com/fczjuever/archive/2013/04/17/3026694.html

四、使用Jconsole监控kafka

cdh  安装的kafka默认是开启jmx功能,配置的端口是9393

使用Java自带的工具JConsole可以查看kafka 相关性能参数

C:\Program Files\Java\jdk1.7.0_79\bin

发布了28 篇原创文章 · 获赞 3 · 访问量 1949

猜你喜欢

转载自blog.csdn.net/as4589sd/article/details/103740094