目录
前言
环境准备
Telnet客户端
zookeeper
pom
配置文件
dubbo接口
telnet连接dubbo
dubbo命令
ls
invoke
前言
工作中的微服务项目远程调用使用的技术是 dubbo,当对外提供了一个 duboo 接口时,无论是开发阶段自测,还是上线了服务出问题需要排查,都需要自己去手动调用 dubbo 接口。在开发阶段自己调用,很多时候就本地写个测试接口,然后使用 @DubboReference 注入依赖测试,测完的测试接口代码不提交即可。这种方法对于线上的dubbo接口就行不通了,对于线上的 dubbo 接口,工作中则是用 telnet 来连接 dubbo 服务,然后通过命令行来直接调用接口,这样来验证接口是否正常运行。
环境准备
Telnet客户端
一般开发都是在 Windows 环境,Windows 想要使用 telnet 命令,需要开启 telnet 功能才行。
控制面板-程序-启用或者关闭 Windows 功能-Telent客户端
zookeeper
有现成的 zookeeper 服务,直接连服务器上的即可
若是本地开发,如果需要在本地安装 zookeeper 可参考以下博客:
Windows 安装 ZooKeeper 以及 IDEA 安装 zoolytic 连接工具_idea连接zk工具-CSDN博客文章浏览阅读975次,点赞16次,收藏10次。在前公司做微服务开发时,使用的都是 Spring Cloud 的生态,服务的注册与发现中心用的 Eureka,也有使用 Nacos 的,远程调用则是用的 OpenFeign,换工作后,新公司的微服务技术栈有了些许改变,服务的注册与发现中心用的是 ZooKeeper,远程调用则是用的 Dubbo。为了自己本地开发方便,故直接在本地安装 ZooKeeper 服务自己使用,IDEA 也安装一个 ZooKeeper 连接工具插件 zoolytic,方便开发时查看。_idea连接zk工具https://blog.csdn.net/typeracer/article/details/142152265
pom
本文使用的 dubbo 版本为 2.7.8,是提供了 invoke 命令来直接调用 dubbo 接口的,但是如果是 3.0.2 之后的版本,则不再提供了 invoke 命令了,需要额外做些处理,这里不展开了。
<!--引入dubbo的依赖--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.8</version></dependency><!-- 引入zookeeper的依赖 --><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>2.12.0</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>2.12.0</version></dependency>
配置文件
dubbo:application:name: dubbo-testprotocol:name: dubboport: 21876registry:address: zookeeper://127.0.0.1:2181
dubbo接口
ITestService
public interface ITestService {String hello();String hello2(int integer, String string, Map<String, Object> map);
}
TestService
@DubboService
public class TestService implements ITestService {public String hello() {return "hello world";}public String hello2(int integer, String string, Map<String, Object> map) {return integer + string + String.join(",", map.keySet());}
}
telnet连接dubbo
启动服务后,则可以使用 telnet 命令连接 dubbo 服务
命令格式如下
telnet ip port
项目实在本地启动的,所以 ip 直接用 localhost,配置文件中配置的端口为 21876
telnet localhost 21876
连接成功后便能进入到 dubbo 的命令行了
dubbo命令
ls
直接输入
ls
可以看到所有注册的 dubbo 接口
使用 ls 全限定类名 则可以查看该类下暴露的方法
本文示例
ls com.dubbo.api.ITestService
invoke
invoke xxxService.method() 调用指定 dubbo 服务的方法
无入参示例
invoke com.dubbo.api.ITestService.hello()
有入参示例
invoke com.dubbo.api.ITestService.hello2(123, "456", {"a":"a"})