网站首页 > 数据编程 正文
Dubbo接口测试除了通过telnet invoke来调用,还有其他的方式吗?
Dubbo官方文档中有一个示例,关于泛化调用Dubbo接口
这里截取官方文档中对于泛化接口调用的说明
泛化接口调用方式主要用于客户端没有 API 接口及模型类元的情况,参数及返回值中的所有 POJO 均用 Map 表示,通常用于框架集成,比如:实现一个通用的服务测试框架,可通过 GenericService 调用所有服务实现。
我们 通过 API 方式使用泛化调用
先引入官方提供的依赖服务
import com.alibaba.dubbo.rpc.service.GenericService;
使用 GenericService 请求dubbo接口
public Object invokeDubboService(DubboTestQuery dubboTestQuery) {
ReferenceConfig reference = new ReferenceConfig();
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("remoteInvoke");
applicationConfig.setVersion("");
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setFile("/tmp/dubbo.cachr");
// configZkAddress 就是你zookeeper的注册ip
registryConfig.setAddress(configZkAddress);
registryConfig.setProtocol("zookeeper");
// 这里配置dubbo的注册中心信息,因此demo没有额外的dubbo.xml配置文件
reference.setApplication(applicationConfig);
reference.setRegistry(registryConfig);
// 弱类型接口名
reference.setInterface(dubboTestQuery.getServiceName());
reference.setVersion("1.0.0");
// 声明为泛化接口
reference.setGeneric(true);
reference.setProtocol("dubbo");
//不重试,重试会造成数据重复执行
reference.setRetries(0);
reference.setTimeout(10000);
// 用org.apache.dubboinfo.rpc.service.GenericService可以替代所有接口引用
GenericService genericService = reference.get();
Object result = genericService.$invoke(dubboTestQuery.getMethodName(), dubboTestQuery.getParamsTypes(),dubboTestQuery.getParams());
return result;
}
其中实体类DubboTestQuery字段(get,set方法这些就不放出来了)
public class DubboTestQuery {
/*** Dubbo接口服务名*/
private String serviceName;
/*** 请求参数Dubbo接口方法名*/
private String methodName;
/*** 请求参数类型*/
private String[] paramsTypes;
/*** 请求参数*/
private Object[] params;
}
这里简单说明一下这四个字段
- serviceName
接口服务名,比如:com.demo.test.IUserService - methodName
接口下的方法名,比如:add(User user) - paramsTypes
请求参数类型,因为一个方法包含多种类型的入参,所以这里用了一个List来一 一对应入参
如:[“java.lang.String”,“int”] ,[“com.demo.bo.userBo”] - params
入参,根据入参类型来填入对应的参数
如[“testdemo”,1],[{“name”:“test”,“age”:18}]
这样就可以通过 API 方式使用泛化调用
猜你喜欢
- 2025-03-24 如何处理Dubbo调用超时?(dubbo调用失败了怎么办)
- 2025-03-24 Dubbo深入解析:从原理到复杂场景的实践应用(一)
- 2025-03-24 部署dubbo运维平台dubbo-admin(最新版)
- 2025-03-24 Dubbo概述(dubbo的架构)
- 2025-03-24 Dubbo面试题整理(dubbo zk面试题)
- 2025-03-24 Dubbo-Admin 正式支持 3.0 服务治理
- 最近发表
- 标签列表
-
- oraclepdb (60)
- vncviewermac (62)
- sqlservermax (58)
- mysqlcanal (61)
- mysql:commandnotfound (56)
- mysqlexplainfiltered (56)
- python位运算符 (59)
- linuxfind-name模糊查询文件 (60)
- centos7systemctl (76)
- mysqlgt (55)
- nc命令 (66)
- dockerfilecp (55)
- 单行子查询返回多个行解决办法 (58)
- ssh-2.0-openssh_7.4 (56)
- vue图片裁剪 (59)
- anyvideoconverterpro (62)
- pscache (58)
- hdfsfsck (63)
- nacos源码 (69)
- lambdawrapper (60)
- 安装jdk11 (60)
- 什么是聚簇索引 (62)
- 锁升级过程 (58)
- bootcdn (64)
- axurerp9mac破解版 (58)