首页 > 其他分享 >jmeter测试rpc接口-使用dubbo框架调用

jmeter测试rpc接口-使用dubbo框架调用

时间:2022-10-01 21:13:38浏览次数:74  
标签:dubbo name spring boot rpc samples provider jmeter

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包路径是错误的,需要替换为具体的接口路径

标签:dubbo,name,spring,boot,rpc,samples,provider,jmeter
From: https://www.cnblogs.com/qtclm/p/16747764.html

相关文章

  • UE4 联网RPC部分
    有些人生来就是为了奔跑,而有些人,则拥有更高的目标>笔者近期在进行UEC++网络的一些开发,发现RPC这个部分它看起来很简单,理解起来也算不上难。但真正应用起来,对netcode经......
  • JMETER工作界面介绍
    工作界面        或者將依赖包放到lib下重启jmeter   ......
  • jmeter之安装以及环境变量配置
        配置环境变量  %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar%JMETER_HOME%\lib\jorphan.jarD:\work\jmeter\apache-jmeter-5.0jmeter5.0没找到第三个......
  • Dubbo是什么?
    Dubbo是什么?Dubbo是阿里巴巴开源的基于Java的高性能RPC(一种远程调用)分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。为什么......
  • Jmeter 使用json提取器循环提取数组值
    一、使用json提取器提取数组值:   提取数组: -1代表取所有的数组值,默认值not_found;二、添加循环控制器,循环次数为数组长度:${变量名_matchNr}示例:${TaskID2_matchN......
  • RabbitMQ RPC 实现
    RPC,是RemoteProcedureCall的简称,即远程过程调用。它是一种通过网络从远程计算机上请求服务,而不需要了解底层网络的技术。RPC的主要功用是让构建分布式计算更容易,......
  • SpringBoot集成Dubbo案例
    SpringBoot集成Dubbo:Case​​1、什么是Duubo?​​​​2、概念架构​​​​2.1提供者​​​​2.2消费者​​​​2.3注册中心​​​​3、SpringBoot集成Dubbo步骤​​​​:o......
  • Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务间的调用方式:Rpc.StartTaskAsyn
    系统目录:本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。开源地址:​​https://github.com/cyq1162/Taurus.MVC​​本系列第一篇:​​Taurus.MV......
  • gRPC如何处理错误,以及gRPC错误代码。
    错误处理标准错误模型正如你在我们的概念文件和例子中所看到的,当一个gRPC调用成功完成后,服务器会向客户端返回一个OK状态(根据语言的不同,OK状态可能会或可能不会直接用于你......
  • Go中使用应用层传输安全(ALTS)的gRPC认证概述。
    ALTS认证Go中使用应用层传输安全(ALTS)的gRPC认证概述。概述应用层传输安全(ALTS)是由Google开发的相互认证和传输加密系统。它用于保护Google基础设施内的RPC通信的安......