当前位置: 首页 > article >正文

使用 telnet 连接 dubbo 服务调用暴露的 dubbo 接口

目录

前言

环境准备

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-test
  protocol:
    name: dubbo
    port: 21876
  registry:
    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"})


http://www.kler.cn/news/368567.html

相关文章:

  • 【进阶】面向对象之接口(多学三招)
  • 基于知识图谱的紧急事故决策辅助系统
  • Debian会取代CentOS成为更主流的操作系统吗?
  • 考研要求掌握的C语言程度(堆排序)1
  • 8 个用于创建电商组件的 CSS 和 JS 代码片段
  • Ovis: 多模态大语言模型的结构化嵌入对齐
  • HTML,CSS,JavaScript三件套
  • git命令报错:fatal: not a git repository (or any of the parent directories): .git
  • ELK日志分析系统部署
  • oneApi中,渠道 M3E配置
  • Redis学习文档(Redis基本数据类型【Hash、Set】)
  • MATLAB代码优化
  • 合合信息智能文档处理百宝箱:强力驱动,加速文档类应用研发进程
  • [MySQL#0] 详解如何在 Linux 上安装 MySQL | 常见登录问题
  • 《陕西师范大学学报(自然科学版)》
  • 通过一个具体的场景来理解SSTable的工作原理。
  • 算法的学习笔记—左旋转字符串(牛客JZ58)
  • react antd批量导入的formData传参在beforeUpload、onChange事件中获取文件内容
  • ARM嵌入式学习--第六天(电子电路基础知识)
  • Docker:4、龙晰(Anolis OS 8.8)宝塔面板安装
  • 多线程进阶(一):锁策略 锁升级 锁消除 锁粗化 CAS
  • 导出Git提交记录
  • 【论文阅读】Learning persistent homology of3D point clouds
  • 【华为HCIP实战课程二十五】中间到中间系统协议IS-IS配置实战续系统ID区域ID,网络工程师
  • 钉钉与金蝶云星空数据集成方案优化企业采购流程
  • STM32电压采集电路设计