智力和智慧是两码事,很多人有智力,但不一定有智慧。
---《法治的细节》罗翔
一、前言
随着分布式普及,日常工作中多少会接触到dubbo,对于dubbo接口的调用或者压测等等。
调用最简单的方式便是telnet,或者泛化调用的方式。
进入telnet命令行,invoke 对应方法以及传入对应的参数即可。
当然jm也有对应开源插件。
二、原料和配件
地址:https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/releases
下载完成,放入${jmeter_home}/lib/ext目录下,重启jm即可
[图片上传失败...(image-1e09a-1678761177120)]
[图片上传失败...(image-8022-1678761177120)]
三、参数详解
① Registry Center(注册设置) 区域填写内容:
直连的方式,Protocol选none。其他的选择对应的注册中心即可,可以看到有zk,nacos等等
②Consumer&Service Settings(消费者和服务者设置):
Timeout:设置请求接口超时时间,默认1000ms, 就用默认的就行,如果实际接口响应比较慢,也可以改大点,比如改成5000
Version:版本,一般无需填写。Dubbo不同版本之间差异较大,不同版本之间不能互相调用。注意:默认这里填的是1.0,现在dubbo的版本都是2.xx了,因此直接删掉版本号,就让这里为空,不然用默认的1.0会调不通。最开始我没有管这个值,结果发现调不通,删了version的值就成功调通了。
后面其他的几项值都不管,保持默认就行。
③Get Provider List按钮:
根据Address填写的地址,获取服务提供者的服务列表。直连的方式下,点这个按钮没用,会提示让你把Protocol选为zookeepr or nacos or redis, 但是直连的时候Protocol要选none, 所以直连的时候就手动在下面去填interface和method,不用 Get Provider List按钮来获取。
④Interface 填 dubbo的接口:如com.xxx.xxx.xxxService
⑤Args:接口入参,输入对应的参数类型和参数值
paramType:参数支持任何类型,可以直接使用java.lang下的包装类,如:int、float、shot、double、long、byte、boolean、char、String等。类型也可以是自定义对象POJO,需使用类的完全名称。
paramValue:填写需要的参数值,例如:int为1,boolean为true等,自定义类与List或者Map等使用Json格式数据。
按照具体入参传入即可。