jmeter测试rpc接口-使用dubbo框架调用
1.下载用于测试dubbo的spring boot项目
参考文章:
http://t.zoukankan.com/111testing-p-11297038.html
https://zhuanlan.zhihu.com/p/539190478
dubbo介绍:
https://www.cnblogs.com/liuyuelinfighting/p/14972958.html
https://dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/spring-boot/
git clone -b master https://github.com/apache/dubbo-samples.git
cd dubbo-samples/dubbo-samples-spring-boot
mvn clean package // 打包成jar
//启动生产者服务
cd ./dubbo-samples-spring-boot-provider
java -jar ./target/dubbo-samples-spring-boot-provider-1.0-SNAPSHOT.jar
// 启动消费者服务
java -jar ./target/dubbo-samples-spring-boot-consumer-1.0-SNAPSHOT.jar
示例核心流程
1. 定义服务接口
dubbo-samples-spring-boot-interface/DemoService.java
package org.apache.dubbo.samples.basic.api;
public interface DemoService {
String sayHello(String name);
}
2. 提供方实现接口并暴露服务
dubbo-samples-spring-boot-provider/DemoServiceImpl.java
@DubboService
public class DemoServiceImpl implements DemoService {
@Override
public String sayHello(String name) {
System.out.println("Hello " + name + ", request from consumer: " + RpcContext.getContext().getRemoteAddress());
return "Hello " + name;
}
}
3. 配置 application.yml 文件
dubbo-samples-spring-boot-provider/resources/application.yml
dubbo:
application:
name: dubbo-springboot-demo-provider
protocol:
name: dubbo
port: -1
registry:
id: zk-registry
address: zookeeper://127.0.0.1:2181
config-center:
address: zookeeper://127.0.0.1:2181
metadata-report:
address: zookeeper://127.0.0.1:2181
4. 定义 Spring Boot 主函数,其中,@EnableDubbo 必须配置。
dubbo-samples-spring-boot-provider/ProviderApplication.java
@SpringBootApplication
@EnableDubbo
public class ProviderApplication {
public static void main(String[] args) throws Exception {
new EmbeddedZooKeeper(2181, false).start();
SpringApplication.run(ProviderApplication.class, args);
System.out.println("dubbo service started");
new CountDownLatch(1).await();
}
}
5. 引用远程服务
dubbo-samples-spring-boot-consumer/ConsumerApplication.java
public class ConsumerApplication {
@DubboReference
private DemoService demoService;
}
6. 定义 application.yml
dubbo-samples-spring-boot-consumer/application.yml
dubbo:
application:
name: dubbo-springboot-demo-consumer
protocol:
name: dubbo
port: -1
registry:
id: zk-registry
address: zookeeper://127.0.0.1:2181
config-center:
address: zookeeper://127.0.0.1:2181
metadata-report:
address: zookeeper://127.0.0.1:2181
7. 加载 Spring 配置,并调用远程服务
dubbo-samples-spring-boot-consumer/ConsumerApplication.java
@SpringBootApplication
@Service
@EnableDubbo
public class ConsumerApplication {
@DubboReference
private DemoService demoService;
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(ConsumerApplication.class, args);
ConsumerApplication application = context.getBean(ConsumerApplication.class);
String result = application.doSayHello("world");
System.out.println("result: " + result);
}
}
注意:
1.启动生产者(provider)项目时会自动关联启动zookeeper,端口占用:2181
2.dubbo服务默认占用端口:20880
3.jmeter测试时可以使用jar启动项目,也可以使用spring boot启动项目(只启动provider端即可)
2.下载jmeter测试dubbo所需要的插件,我使用的版本是2.7.8,将插件放到jmeter/lib/ext目录下,然后打开jmeter搞事情了
地址: https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/releases
这里的sayGoodbye方法是自己手动添加的,用于加深对这块的理解




3.中途遇到的问题以及处理
1.dubbo请求失败,这篇文章里有提到处理:https://blog.csdn.net/inlauallnoany/article/details/119237582,如果是在错误信息里面看到172.17.160.1,则说明iis服务有冲突,需要关闭iis服务,关闭iis服务:https://www.jb51.net/os/win11/812370.html
2.下载的dubbo项目,默认的interface包路径是错误的,需要替换为具体的接口路径

jmeter测试rpc接口-使用dubbo框架调用的更多相关文章
- 使用Jmeter测试thrift接口
术语描述 jmeter:一款性能压力测试工具,支持多种协议,java .http 等,但是不支持thrift thrift:跨语言的RPC调用框架,提供编译器,可以将thrift接口生成不同语言的接口 ...
- 『动善时』JMeter基础 — 50、使用JMeter测试WebService接口
目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...
- 『动善时』JMeter基础 — 51、使用JMeter测试WebService接口
目录 1.什么是WebService 2.WebService和SOAP的关系 3.什么是WSDL 4.测试WebService接口前的准备 (1)如何判断是WebService接口 (2)如何获取W ...
- jmeter 测试websocket接口(一)
jmeter 测试websocket接口时,需要对jmeter添加测试websocket的jar包. 下载地址: https://download.csdn.net/download/qq_14913 ...
- jmeter 测试restful接口
jmeter 测试restful接口,JSON数据格式 1.添加线程组 2.添加HTTP信息头管理器 请求发送JSON数据格式参数,需要设置Content-Type为application/json ...
- jmeter测试 flask 接口请求
jmeter测试 flask 接口请求 flask的代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- from flask import Flas ...
- 『动善时』JMeter基础 — 50、使用JMeter测试WebSocket接口
目录 1.什么是WebSocket接口 2.为什么需要WebSocket 3.测试WebService接口前的准备 4.WebSocket Sampler组件界面详解 5.使用JMeter测试WebS ...
- jmeter测试webservice接口
webservice怎样使用jmeter测试呢? 测试样例url=http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx ...
- Jmeter - 测试 http 接口
前言: 本文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对 ...
- 使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况
1. 安装JMeter及使用 1.1下载JMeter 登录官方网站找到下载链接进行下载:https://jmeter.apache.org/download_jmeter.cgi 1.2配置环境变 ...
随机推荐
- tensorflow/pytorch/mindspore在VGG16前向传播上的性能对比
首先说下mindspore,作为华为的主打软件产品,该计算框架可用性一直较差,不同版本不同计算硬件下的代码往往都不是完全兼容的,也就是说你在mindspore的官网上找到的VGG预训练模型的代码是mi ...
- 【牛客刷题】BM50 两数之和
本题的链接:BM50 两数之和 最初拿到这个题目首先想到的就是两个指针,然后向后遍历,于是写出来的代码也简明易懂: package main /** * * @param numbers int整型一 ...
- 一文搞懂Cortex-A9 ADC裸机和基于Linux驱动编写方法
前言 在嵌入式开发中,ADC应用比较频繁,本文主要讲解ADC的基本原理以及如何编写基于ARM的裸机程序和基于Linux的驱动程序. ARM架构:Cortex-A9 Linux内核:3.14 在讲述AD ...
- C# WebSocket Fleck 源码解读
最近在维护公司旧项目,偶然发现使用Fleck实现的WebSocket主动推送功能,(由于前端页面关闭时WebSocket Server中执行了多次OnClone事件回调并且打印了大量的关闭日志,),后 ...
- How-many
#include <bits/stdc++.h> #include <termio.h> #include <unistd.h> typedef long long ...
- 使用win-acme在windows+iis服务器下配置自动续期SSL证书【转】
发现阿里云免费证书只有3个月有效期了,手动操作太麻烦,咨询阿里云客服,阿里云说这是大势所趋,遂转向其他云,后来发现百度云还有1年的免费证书,继续问阿里云客服,其他友商都还在免费1年的,为啥阿里云免费的 ...
- AD LDAP
Ref: Windows 域之 LDAP与AD [安全科普]AD域安全协议(三)LDAP AD 域服务简介(一)- 基于 LDAP 的 AD 域服务器搭建及其使用 https://milestone- ...
- .NET 多版本兼容的精美 WinForm UI控件库
前言 有粉丝小伙伴在后台留言咨询有没有WinForm 控件库推荐,现在就给安排上. .NET 平台进行 Windows 应用程序开发的我们来说,找一个既美观又实用的 WinForm UI 控件库至关重 ...
- Vue3 动态子页面和菜单栏同步
动态子页面 <router-view></router-view>显示子页面的内容 main.vue <template> <a-layout id=&quo ...
- LinerProgression
手动实现线性回归 点击查看代码 import torch import pandas as pd import numpy as np import matplotlib.pyplot as plt ...