java调用dubbo服务接口_Dubbo使用invoke指令来调用dubbo接口以及telnet命令连接Dubbo服务

前言

最近被分配了一个任务,是通过dubbo的方式对外提供服务,dubbo没有我们一般的web项目中的Controller层,所以没有办法通过http的方式进行调用调试。作为萌新的我,确实有点一筹莫展,直到被老司机提醒使用dubbo invoke的方式进行接口测试,我才有方向。

正文

首先我们要知道Dubbo不同于传统的web项目需要运行在类似于tomcat、jboss等WEB容器中,Dubbo的运行机制我们可以参考下面Dubbo的组件来进行探究。

Dubbo 核心组件:

Provider: 暴露服务的提供方,可以通过jar或者容器的方式启动服务

Consumer:调用远程服务的服务消费方。

Registry: 服务注册中心和发现中心。

Monitor: 统计服务和调用次数,调用时间监控中心。

Container:服务运行的容器。

在这里插入图片描述
Dubbo的Container模块,是一个独立的容器,它就可以为dubbo提供服务发现机制。并且这个Container容器默认是采用dubbo协议在20880端口号暴露服务,所以我们要通过这个接口来调用dubbo接口。

使用invoke调用dubbo接口服务

使用telnet命令进入控制台

命令:telnet ip 端口

telnet 127.0.0.1 20880
在这里插入图片描述

invoke命令注入

如果注入的是json,可参考以下格式进行dubbo服务调用

invoke XxxService.xxxMethod({“name”: “luo”}, 18, “男”)

如果注入的是对象,可参考以下格式进行dubbo服务调用:

invoke XxxService.xxxMethod([{“name”:“luo”,“age”:18,“sex”:“男”,“class”:“com.luo.entity.User”}])

# 需要提前调用 cd XxxService,使这个服务成为缺省服务
invoke xxxMethod(1234, "abcd", {"prop" : "value"})
# 调用该服务的方法
invoke XxxService.xxxMethod(1234, "abcd", {"prop" : "value"})
# 调用全路径服务的方法,推荐使用这种方式,精确执行服务方法。
invoke com.xxx.XxxService.xxxMethod(1234, "abcd", {"prop" : "value"})

Mac使用telnet命令提示:command not found,Mac安装telnet 命令

  • 原因:在10.12及以下版本,都内置了telnet命令,但是在10.13中,已经取消了
  • 解决办法:

安装brew
MacOS 安装 HomeBrew
Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。

具体安装方式:原文链接:https://blog.csdn.net/jayjaydream/article/details/122795881


一、telnet是什么?

telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的 能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个 telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

telnet命令可以用来调试dubbo服务。进入telnet窗口,键入回车进入dubbo命令模式。可以使用ls命令查看dubbo服务的服务列表,invoke调用某个方法。

在这里插入图片描述

二、telnet命令连接Dubbo服务

Dubbo连接 – telnet
Dubbo2.0.5以上版本服务提供端口支持telnet命令

telnet localhost 20880
echo status | nc -i localhost 20880

显示列表 – ls

  • 显示服务列表: ls
  • 显示服务详细信息列表: ls -l
  • 显示服务的方法列表: ls xxxService
  • 显示服务的详细方法列表: ls -l xxxService

显示服务端口和连接 – ps

  • 显示服务端口列表: ps
  • 显示服务地址列表: ps -l
  • 显示端口上的连接信息: ps port
  • 显示端口上的连接详细信息: ps -l port

跳转服务 – cd

改变缺省服务: cd xxxService

当设置了缺省服务,凡是需要输入服务名作为参数的命令,都可以省略服务参数。

取消缺省服务: cd /

显示当前缺省 – pwd

  • pwd

追踪服务 – trace

  • 跟踪1次服务任意方法的调用情况:trace XxxService
  • 跟踪10次服务任意方法的调用情况:trace XxxService 10
  • 跟踪1次服务方法的调用情况:trace XxxService xxxMethod
  • 跟踪10次服务方法的调用情况:trace XxxService xxxMethod 10

计数服务 – count

  • 统计1次服务任意方法的调用情况:count XxxService
  • 统计10次服务任意方法的调用情况:count XxxService 10
  • 统计1次服务方法的调用情况:count XxxService xxxMethod
  • 统计10次服务方法的调用情况:count XxxService xxxMethod 10

调用服务方法 – invoke

基本参数直接输入,对象参数以json格式进行传入

  • 调用服务的方法:invoke XxxService.xxxMethod({"prop": "value"})

  • 调用服务的方法(自动查找包含此方法的服务):invoke xxxMethod({"prop": "value"})

# 需要提前调用 cd XxxService,使这个服务成为缺省服务
invoke xxxMethod(1234, "abcd", {"prop" : "value"})
# 调用该服务的方法
invoke XxxService.xxxMethod(1234, "abcd", {"prop" : "value"})
# 调用全路径服务的方法,推荐使用这种方式,精确执行服务方法。
invoke com.xxx.XxxService.xxxMethod(1234, "abcd", {"prop" : "value"})

显示资源状态 – status

  • 显示汇总状态:status

该状态将汇总所有资源的状态,当全部OK时则显示OK,只要有一个ERROR则显示ERROR,只要有一个WARN则显示WARN。

  • 显示状态列表:status -l

日志操作 – log

2.0.6以上版本支持

  • 修改dubbo logger的日志级别:log debug
  • 查看file logger的最后100字符的日志:log 100

帮助命令 – help

  • 显示telnet命帮助信息:help

  • 显示xxx命令的详细帮助信息:help xxx

清除内容命令 – clear

  • 清除屏幕上的内容:clear

  • 清除屏幕上的指定行数的内容:clear 100

退出命令 – exit

  • 退出当前telnet命令行:exit
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值