kafka压测造数,数据集要怎么使用?

快速下载:

通用版本:kafka-data_set-pump.jar 密码:cuah

kafka集群0.8.2.x版本:kafka-pump-0.8.2.x.jar 密码:QUz7

平台jmeter版本下载:飞书链接:jmeter.zip 密码:7Umr

前言

通常使用kafka数据集来做影子数据迁移,从Atopic 迁移到影子topic来做压测, 文中会介绍kafka数据集的使用方法。

快速配置

  1. 将下载好的插件放入jmeter lib/ext 目录下,启动jmeter,注意两个版本的数据集插件不能同时放在lib/ext目录下
  2. 添加取样器,选择kafka数据集
kafka压测造数,数据集要怎么使用?
  1. 对应配置介绍
kafka压测造数,数据集要怎么使用?
  • 变量名

用于在JMeter脚本中,通过${变量名}的方式使用变量

${变量名}代表从Kafka中获取到的数据

${变量名-topic}代表是从哪个Topic取到的数据

${变量名-partition}代表从哪个分区取到的数据

  • 消费结束触发字符

和业务逻辑无关,是插件运行逻辑所需的变量,类似于CSV数据集中的分隔字符串“,”。

要保证这个字符不会和从Kafka中获取的消息相同,不然会提前触发消息消费完毕的逻辑。

  • kafka配置

集群地址:对应被读取数据集群的zk地址

队列名称:对应被读取数据的topic名称

分区编号:对应从那个分区读取数据

偏移量: 对应从哪里开始读取数据,注意,偏移量必须连续,如果存在不连续情况,数据集会停止工作

序列化:默认使用的是String的反序列化方式,如果需要使用其他反序列化,参考下面表格

序列化方式通用版本0.8.2.x 版本
PisKryoio.shulie.jmeter.plugins.kafka.dataset.deserializer.PisKryoDeserializerio.shulie.jmeter.plugins.kafka.pump.deserializer.PisKryoDeserializer
Protobufio.shulie.jmeter.plugins.kafka.dataset.deserializer.ProtobufDeserializerio.shulie.jmeter.plugins.kafka.pump.deserializer.ProtobufDeserializer
  • 内存配置

队列容积和缓冲池大小一般不需要调整

  • 超时时间

如果存在网络链接慢点情况,可以适当调试超时时间,超时时间单位为毫秒

进阶配置

通常情况下,kafka有多个分区(最多32个),需要从ATopic32个分区迁移到另外一个Topic的32个分区中,下面我们来介绍如何配置。

注意:kafka数据集只能使用并发模式去跑,TPS模式运行的话会出现一些未知问题,如果想要并发模式控制TPS值,可以通过增加常数吞吐量控制器来解决。

kafka压测造数,数据集要怎么使用?

csv数据文件设置

该配置项需要配置的是偏移量的初始值和分区数据,需要几个分区csv中就有几条数据。

csv检查: 使用文本编辑工具打开csv文件,注意结尾不要有空行。

kafka压测造数,数据集要怎么使用?

kafka数据集设置

这里需要注意的是分区和偏移量填写的是csv读取出来的数据,其他按照快速配置内容进行配置即可

java请求

这里和常规发送kafka没有太大区别,需要注意的是kafka_messge 的值是kafka数据集基本配置的变量名称(可以随意改动,但是两个位置变量名称要保持一致,kafka_partition:一般填写和kafka分区编号变量名称保持一致,保证分区读写保持一致。

kafka压测造数,数据集要怎么使用?

常数吞吐量控制器设置

kafka压测造数,数据集要怎么使用?

在发送kafka的java请求中右键->添加->定时器->Constant Throughpout Timer

这里有两个配置,一个是每分钟吞吐量控制,一个是控制范围

每分钟吞吐量控制

目标TPS*1.1/pod个数*60(s),其中1.1 是上浮10%,因为都是1个并发在跑,不同pod的TPS可能不同,上浮10%是为了保证一定能达到目标TPS,如果实际运行时超过目标TPS太多,或者没有跑到指定的TPS,可是适当调整脚本上浮比例设置。

控制范围

这里选择控制所有线程 all active threads in current thread group(shared)

平台操作(基于Takin)

kafka数据集目前支持在2.0平台上使用。

上传步骤:

  • 新增业务流程,上传脚本保存
  • 选择使用的kafka 发送插件, 本地版本是0.2.0或0.8的kafkameter 选择0.8版本,本地版本是2.5的可以选择平台2.5版本
  • 编辑匹配业务活动(平台在1.0的可以选择虚拟业务活动)
  • 上传依赖的数据文件:csv文件和kafka数据集插件(文档最上的下载链接),如果有用到个性化序列化需要上传依赖的jar
  • csv文件选中拆分

平台使用:

  • 多分区的脚本不支持脚本调试,仅支持压测场景启动
  • 仅支持并发模式压测
  • 启动场景设置选择并发模式,选择固定并发,然后并发数以及pod数和csv文件中分区格式保持一致。就是有几个分区就起几个pod,有几个pod就设置几个并发(仅有数据集场景才会这样设置)

本文来自投稿,不代表TakinTalks稳定性技术交流平台立场,如若转载,请联系原作者。

(1)
上一篇 2022年8月29日 上午11:47
下一篇 2022年12月19日 下午8:17

相关推荐

发表评论

邮箱地址不会被公开。