jmeter-plugins-dubbo插件安装
https://github.com/thubbo/jmeter-plugins-for-apache-dubbo, 最好下载带依赖包的jar包
插件安装目录:${JMETER_HOME}\lib\ext
创建线程组
新增Dubbo Config
Config Center:配置中心,可选组件,若没有可不填写
Registry Center:
Protocol:注册协议,包括zookeeper、nacos、multicast、Redis、simple
选择——>zookeeper
Address:注册地址,dubbo服务的IP:Port;
由于使用zk,address填入zk地址,集群地址使用","分隔;
东家zookeeper地址见disconf_zookeeper.properties
目前test环境地址——>172.16.4.27:2181,172.16.4.27:2182,172.16.4.27:2183
RPC Protocol:
Protocl:注册协议,支持dubbo://, rmi://,hessian://,webservice://,memcached://,redis://
选择——>dubbo://
Consumer&Service:
Timeout:请求超时时间,单位ms,根据dubbo具体配置填写;
Version:服务版本,与服务提供者的版本一致 这个指的是服务端@service的version内容。dubbo不同版本之间差异较大,不同版本之间不能互相调用,这里指定dubbo版本,是为了方便识别和说明
Retries:异常重试次数(类似这种分布式服务通信框架,大多都有重试机制,是为了保证事务成功率);默认0
Cluster:集群类型,包括failover、failfast、failsafe、failback、failking;默认failfast
Failover Cluster,失败自动切换,自动重试其他服务器
Failfast Cluster,快速失败,立即报错,只发起一次调用
Failsafe Cluster,失败安全,出现异常时,直接忽略
Failback Cluster,失败自动恢复,记录失败请求,定时重发
Forking Cluster,并行调用多个服务器,只要一个返回成功即可
Broadcast Cluster,广播逐个调用所有提供者,任意一个报错则报错
Group:服务分组类型,如果有的话,根据配置填写即可;当一个接口有多个实现,可以用分组区分,需和服务提供方一致 这个指的是服务端@service的group内容
Connections:连接数,同上,根据配置填写;默认100
Async:服务处理类型,包括sync(同步)、async(异步),根据配置填写;
Loadbalance:负载均衡策略,包括random(随机)、roundrobin(轮询)、leastactive(最少活跃数)、consistenthash(一致性哈希);
Random,随机,按权重配置随机概率,调用量越大分布越均匀,默认方式
RoundRobin,轮询,按权重设置轮询比例,如果存在比较慢的机器容易在这台机器上请求阻塞较多
LeastActive,最少活跃调用数,不支持权重,只能根据自动识别的活跃数分配,不能灵活调配,相同活跃数的随机
ConsistenHash,一致性hash,对相同参数的请求路由到一个服务提供者上,如果有类似灰度发布需求可采用
新增Dubbo Sample
Config Center、Registry Center、RPC Protocol、Consumer&Service的配置见Dubbo Config,不用重复填写
dubbo接口及方法-Interface&Method:
直接选择
点击【Get Provider List】可获取所有接口名和方法名(时间较长),然后可在interface及method栏下拉选择,支持关键词筛选
直接填写
Interface:接口需要填写类型完全名称,含包名(因为dubbo服务大多是开发根据规范自行命名的,因此这里需要填写完整的接口名+包名);
Method:当前接口下的方法名,按照开发提供的API文档填写即可;
接口传参类型及参数值-Args:
Args:接口根据API文档填写,添加输入行,输入对应的参数类型和值即可,
paramType:参数支持任何类型,包装类直接使用java.lang下的包装类,基础类型使用:int、float、shot、double、long、byte、boolean、char,自定义类使用类完全名称;
paramValue:基础包装类和基础类型直接使用值,例如:int为1,boolean为true等,自定义类与List或者Map等使用json格式数据;
参数类型和值如何定义填写可参考https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/ParameterComparisonTable
一些空参使用案例&复杂参数可参考https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/FAQ
察看结果树