1.kafka性能测试

#每个记录大小1000字节。
#总共10W行记录。
#每次吞吐一个。
kafka-producer-perf-test.sh  --topic topic3 --record-size 1000 --num-records 100000 --throughput -1 --producer-props bootstrap.servers=192.168.1.7:9092  

[root@oracle1 bin]# kafka-producer-perf-test.sh  --topic topic3 --record-size 1000 --num-records 100000 --throughput -1 --producer-props bootstrap.servers=192.168.1.7:9092  
29105 records sent, 5821.0 records/sec (5.55 MB/sec), 2085.3 ms avg latency, 3673.0 ms max latency.
46640 records sent, 9326.1 records/sec (8.89 MB/sec), 3605.3 ms avg latency, 4056.0 ms max latency.
100000 records sent, 8078.196946 records/sec (7.70 MB/sec), 3160.49 ms avg latency, 4056.00 ms max latency, 3519 ms 50th, 3864 ms 95th, 4007 ms 99th, 4051 ms 99.9th.

平均延迟:3.1s,最大延迟:4s;
每秒处理:5821 个记录。大于5.5M; 

2.检查生成的内容

[root@oracle1 topic3-0]# strings 00000000000000000000.log |more 
SSXVNJHPDQDXVCRASTVYBCWVMGNYKRXVZXKGXTSPSJDGYLUEGQFLAQLOCFLJBEPOWFNSOMYARHAOPUFOJHHDXEHXJBHWGSMZJGNLONJVXZX
ZOZITKXJBOZWDJMCBOSYQQKCPRRDCZWMRLFXBLGQPRPGRNTAQOOSVXPKJPJLAVSQCCRXFRROLLHWHOHFGCFWPNDLMWCSSHWXQQYKALAAWCM
XYLMZALGDESKKTEESEMPRHROVKUMPSXHELIDQEOOHOIHEGJOAZBVPUMCHSHGXZYXXQRUICRIJGQEBBWAXABQRIRUGZJUUVFYQOVCDEDXYFP
RLGSGZXSNIAVODTJKSQWHNWVPSAMZKOUDTWHIORJSCZIQYPCZMBYWKDIKOKYNGWPXZWMKRDCMBXKFUILWDHBFXRFAOPRUGDFLPDLHXXCXCU
PLWGDPPHEMJGMTVMFQQFVCUPOFYWLDUEBICKPZKHKVMCJVWVKTXBKAPWAPENUEZNWNWDCACDRLPIPHJQQKMOFDQSPKKNURFBORJLBPCBIWT
SJNPRBNITTKJYWAHWGKZYNUSFISPIYPIOGAUPZDXHCFVGXGIVVCPFHIXAACZXZLFDMOOSSNTKUPJQEIRRQAMUCTBLBSVPDDYOIHAOODZNJT
VHDCIEGTAVMYZOCIVSKUNSMXEKBEWNZPRPWPUJABJXNQBOXSHOEGMJSNBUTGTIFVEQPSYBDXEXORPQDDODZGBELOISTRWXMEYWVVHGMJKWL
JCCHPKAFRASZEYQZCVLFSLOWTLBMPPWPPFPQSAZPTULSTCDMODYKZGSRFQTRFTGCNMNXQQIYVUQZHVNIPHZWVBSGOBYIFDNNXUTBBQUYNXO
ZCSICGRTZSSRHROJRGBHMHEQJRDLOQBEPTOBMYLMIGPPDPOLTEUVDGATCGYPQOGOYYESKEGBLOCBIYSLQEYGCCIPBXPNSPKDYTBEWDHBHWV
DPLOVHJPNYGJUHKKHDASNFGZDAIWWQEPPBRJK

由此可见, kafka-producer-perf-test.sh 工具进行性能测试,只是无脑写入,没有任何规范。
不具有可读性。仅仅只是测试了,写入性能。

3.生产者和消费者属性查看 

[root@oracle1 config]# cat consumer.properties  |grep -v ^$|grep -v ^#
bootstrap.servers=localhost:9092
group.id=test-consumer-group

--生产环境需要指定具体的IP地址。

[root@oracle1 config]# 
[root@oracle1 config]# 
[root@oracle1 config]# cat producer.properties  |grep -v ^$|grep -v ^#
bootstrap.servers=localhost:9092
compression.type=none
--生产者没有压缩属性。如果数据量特别大,可以开启压缩属性。

4.kafka服务端参数 


[root@oracle1 config]# cat server.properties  |grep -v ^$|grep -v ^#
broker.id=0
#num.network.threads=3
#num.io.threads=8
#socket.send.buffer.bytes=102400
#socket.receive.buffer.bytes=102400
#socket.request.max.bytes=104857600
#log.dirs=/tmp/kafka-logs
#num.partitions=1
num.recovery.threads.per.data.dir=1  --恢复时,每个数据目录一个线程。
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168    --日志保留时间,如果想让日志尽快清理,可以调小这个值。
log.segment.bytes=1073741824  --日志中每个段的大小。差不多一G。就会开始切换下一个。
log.retention.check.interval.ms=300000  --5分钟一个检查点。
zookeeper.connect=localhost:2181    --kafka对应的zookeeper的地址。这里使用的kafka自带的zk;
zookeeper.connection.timeout.ms=18000 --zookeeper连接超时18s;
group.initial.rebalance.delay.ms=0
log.dirs=/esdb/soft/kafka/logs/kafka-0-logs  --topic存放目录。
num.partitions=16   --默认的每个topic的分区个数。
host.name=192.168.1.7  --IP地址
advertised.host.name=192.168.1.7
listeners=PLAINTEXT://192.168.1.7:9092  --监听地址。
advertised.listeners=PLAINTEXT://192.168.1.7:9092
socket.send.buffer.bytes=1024000
socket.receive.buffer.bytes=1024000
socket.request.max.bytes=1048576000
partition.assignment.strategy=roundrobin   --分区轮训分布。
num.network.threads=28   --接收信息的线程数,与CPU相当。
num.io.threads=28

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐