内容目录:

1、idea 环境我的项目部署2、nacos 环境部署3、dubbo插件部署4、不带参数申请5、带参参数申请

Apache Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大外围能力:面向接口的近程办法调用,智能容错和负载平衡,以及服务主动注册和发现。

一、idea 环境我的项目部署

1、工程整个目录后果

api接口与实体类

provider数据提供者

consumer消费者

2、api要害接口代码
「SserInfoService:」

package com.dunshan.api.service;
import com.dunshan.api.pojo.UserInfo;
import java.util.HashMap;
import java.util.List;
/**

  • @author LiWen
  • @version 1.0
  • @Date: 2021-05-04 11:51
  • @Description: rpc接口调用
    */

public interface UserInfoService {

List<UserInfo> queryList();HashMap<String, Object> queryMap(String name);

}

3、provider要害代码

接口实现「UserInfoServiceImpl:」

package com.dunshan.provider.Impl;
import com.dunshan.api.pojo.UserInfo;
import com.dunshan.api.service.UserInfoService;
import org.apache.dubbo.config.annotation.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**

  • @author LiWen
  • @version 1.0
  • @Date: 2021-05-04 12:03
  • @Description: 提供者实现类
    */

@Service
public class UserInfoServiceImpl implements UserInfoService {

@Overridepublic List<UserInfo> queryList() {    // 初始化数据    UserInfo testDTO1 = new UserInfo();    testDTO1.setId(1);    testDTO1.setName("学生");    testDTO1.setNumber(100);    testDTO1.setCreateTime(new Date());    UserInfo testDTO2 = new UserInfo();    testDTO2.setId(2);    testDTO2.setName("7D-RESAR-性能测试");    testDTO2.setNumber(101);    testDTO2.setCreateTime(new Date());    // 组装数据    List<UserInfo> list = new ArrayList<>();    list.add(testDTO1);    list.add(testDTO2);    return list;}@Overridepublic HashMap<String, Object> queryMap(String name) {    HashMap<String, Object> map = new HashMap<>(2);    map.put(name, "7D-RESAR-高级工具班");    map.put("nacos", "注册核心,配置管理核心");    map.put("date", System.currentTimeMillis());    return map;}

}

配置文件「application.yml:」

server:
port: 8861
dubbo:

 # 配置服务信息 application:name: dubbo-provider# 禁用QOS同一台机器可能会有端口抵触景象qos-enable: falseqos-accept-foreign-ip: false # 配置注册核心 registry:address: nacos://127.0.0.1:8848 # 设置协定-协定由提供方指定生产方被动承受 protocol:   name: dubbo  port: 20880spring: main:# 解决Bean反复定义问题allow-bean-definition-overriding: true

4、consumer要害代码
「Span 数据结构:」

package com.dunshan.consumer.controller;
import com.dunshan.api.pojo.ResultVO;
import com.dunshan.api.pojo.UserInfo;
import com.dunshan.api.service.UserInfoService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
/**

  • @author LiWen
  • @version 1.0
  • @Date: 2021-05-04 11:54
  • @Description: 生产测试接口
    */

@RestController
@RequestMapping("/api")
public class ConsumerController {

/** * Dubbo近程调用注解 */@Referenceprivate UserInfoService userInfoService;@RequestMapping(value = "/list", method = RequestMethod.GET)public ResultVO getList() {    List<UserInfo> providerTestDTOList = userInfoService.queryList();    return new ResultVO.Builder<>().code(200).message("success").data(providerTestDTOList).build();}/** * 查问查问 * @param name * @return */@GetMapping("/api/query")public ResultVO query(String name) {    HashMap<String, Object> map = userInfoService.queryMap(name);    return new ResultVO.Builder<>().code(200).message("success").data(map).build();}

}

「application.yml:」

server:
port: 8862
dubbo:

  # 配置服务信息 application:  name: dubbo-consumer # 禁用QOS同一台机器可能会有端口抵触景象qos-enable: falseqos-accept-foreign-ip: false # 配置注册核心 registry:   address: nacos://127.0.0.1:8848 # 设置超时工夫 consumer:timeout: 4000spring:main: # 解决Bean反复定义问题allow-bean-definition-overriding: true

5、验证后果

二、nacos 环境部署

1、下载nacos

下载链接:https://nacos.io/zh-cn/docs/q...

启动:

liwen@ bin % sh startup.sh -m standalone

页面显示如下

其余配置(略):

我的项目启动后 nacos显示如下

三、dubbo插件部署
1、下载: https://gitee.com/liselotte/s...

2、idea中编译jar

3、打成jar包放入${JMETER_HOME}\lib\ext门路下,重启即可。

4、重启 Jmeter查看插件

增加胜利如:

四、测试dubbo接口

有下面的环境,并且Jmeter中也有dubbo插件,那么剩下的就是通过插件实现明天的接口开发,接下来看下须要测试的接口有哪些,这些只模仿无参接口与有参数接口。

上面是这次做测试dubbo接口

package com.dunshan.api.service;
import com.dunshan.api.pojo.UserInfo;
import java.util.HashMap;
import java.util.List;
/**

  • @author LiWen
  • @version 1.0
  • @Date: 2021-05-04 11:51
  • @Description: rpc接口调用
    */

public interface UserInfoService {

List<UserInfo> queryList();HashMap<String, Object> queryMap(String name);

}

五、不带参数申请
增加 Dubbo Sample 申请,并且依据下面须要测试的接口,在 Get Provider LIst 中的 Interface 中输出接口名字,与办法名称点击获取即可把须要测试的全副办法名称用列表显示进去。

增加后果查看树进行后果验证:

六、带参参数申请
增加 Dubbo Sample 申请:

验证后果:

七、总结
要粗浅置信一个原理就是 “做什么事件都不容易,任何事件都不能一触而就” ,对于小人每一件事件都是好事件!

有下面意识后本人搭建环境学习也好,办理事件也好,都会缓缓按步骤一步一步去实现。

我的项目地址:https://gitee.com/perfmance/d...