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

news2024/11/17 23:55:12

java调用dubbo服务接口_Dubbo使用invoke指令来调用dubbo接口

  • 前言
  • 正文
    • Mac使用telnet命令提示:command not found,Mac安装telnet 命令
    • 一、telnet是什么?
    • 二、telnet命令连接Dubbo服务
      • 显示列表 – `ls`
      • 显示服务端口和连接 – `ps`
      • 跳转服务 – `cd`
      • 显示当前缺省 – `pwd`
      • 追踪服务 – `trace`
      • 计数服务 – `count`
      • 调用服务方法 – `invoke`
      • 显示资源状态 – `status`
      • 日志操作 – log
      • 帮助命令 – `help`
      • 清除内容命令 – clear
      • 退出命令 – `exit`

前言

最近被分配了一个任务,是通过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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[虚幻引擎][UE][UE5]在UE5中使用线条画一颗简单的三维圣诞树(练习向)

TOP 一、前言 搞得不好看,简单了解一下叭。主要是在三维中使用线条。需要理解圆的方程式。 (小声逼逼,后来还想搞个三维圆锥螺旋线写个点球点缀一下的,结果上网一搜没人给出方程式,只好不了了之了,有哪位…

Linux之从命令行管理文件

文章目录1. 使用ln命令,创建grading/grade1文件的硬链接,取名为/hardlink2. 使用ls -l 命令查看grading/grade1文件的链接数3. 使用ln -s命令,创建grading/grade2文件的软链接,取名为student/softlink4. 使用ls -l 命令查看studen…

简单随机多边形切割方案

过程化处理中希望能够对某块区域生成随机多边形,以及再切割成子多边形 各种尝试之后发现一种通过python、turtle、pyclipper实现的简单方案 随机多边形 采用python直接生成随机多边形,算法原理:将360度随机拆分成各个角度,再通过…

过年不让放炮,我用Python实现了1000响大地红的特效

同志们,马上(后天)就要2023年啦,您有没有对象啦哈哈哈 咳咳,搞错了~~再来 新的一年,新的气象,穿上新衣逛街 俗话说得好,这所谓放鞭炮就是来压邪祟,除恶的,…

web前端-javascript-DOM和BOM详解

文章目录DOM 和 BOM1. DOM2. BOM2.1 BOM 简介2.2 分类2.3 语法1) Navigator 当前浏览器2)Histry 向前或向后翻页3)Location 地址栏的信息DOM 和 BOM 1. DOM 浏览器已经为我们提供了文档节点的对象,这个对象是 window 对象的属性可以在页面中…

2023北京/深圳NPDP产品经理入门到精通班招生简章

NPDP产品经理国际资格认证是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 我们针对互联网时代的个人、互联网企业、与传统企业推出一系列学习。 课程从…

喜上加喜|怿星科技荣获高工智能金球奖两项大奖

12月2日晚,2022第六届高工智能汽车金球奖年度颁奖典礼在上海虹桥正式开幕,来自行业内的100多家头部企业出席了此次盛会。 金球奖是由高工智能汽车组织的聚焦于汽车智能网联产业链的年度颁奖盛典。参选企业覆盖了汽车智能化创新公司、人工智能创新公司、传…

怎样把图片转化成jpeg格式?jpeg格式转换器分享

我们保存照片时发现有时候保存的图片为png格式或webp格式,而上传到其他平台的时候会有jpeg图片格式要求,那么就需要将图片转为jpeg,如何将图片格式转换(在线图片格式转换器(jpg、png、gif、webp、bmp、tiff&#xff09…

GoF23——工厂模式

✯ 面向对象设计原则 对接口编程而不是对实现编程优先使用对象组合而不是继承介绍说明 工厂模式(Factory Pattern)属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑&am…

Java8并行流---并行数据处理与性能

Java8并行流---并行数据处理与性能0.主要内容1.并行流1.1将顺序流转换为并行流附录附录.10.主要内容 主要内容 用并行流并行处理数据 并行流的性能分析 分支/合并框架 使用Spliterator分割流 1.并行流 调用parallelStream方法来把集合转换为并行流。并行流就是一个把内容分成多…

pytorch应用(入门2) 一维线性回归

目录nn.Module(模组)torch.optim (优化)模型的保存和加载一维线性回归代码如下:均方差损失函数nn.MSELoss()model.parameters()的理解与使用torch.autograd.Variableoptimizer.zero_grad()model.eval的作用深度学习方法——pytorch下GPU与CPU…

如何设计一个好的工业产品?

许多人不知道工业设计的本质是什么?与工业设计相比,其本质是解决消费群体的相关问题,实现消费者的需求,使客户更容易选择。但是如何设计一个好的工业产品呢? 1.更加科学合理地摆脱困境 产品设计必须开拓进取。它应该能够引领时代潮流&#…

基础数学复习(2)——插值

文章目录插值和拟合的区别(了解)拉格朗日插值(必考)插值余项说不定会考的证明题拉格朗日插值缺点和适用范围(了解)牛顿插值(必考)推导差商的性质(会考)——通…

Java语法五:锁策略以及CAS

目录 1.常见的锁策略 2:Synchronized原理 2.1:加锁工作工程 2.2:其他的优化操作 2.2.1:锁消除 2.2.2:锁粗化 3.CAS 3.1:实现原子类 3.2:CAS中的ABA问题 3.2.1:什么是ABA问题 3.2.2&am…

【JavaScript】俄罗斯方块简单网页版

文章目录js制作简单网页版俄罗斯方块效果演示设计思路一、HTML网页结构代码二、CSS代码三、JS代码四、代码资源分享js制作简单网页版俄罗斯方块 程序虽然很难写,却很美妙。要想把程序写好,需要写好一定的基础知识,包括编程语言、数据结构与算…

在mac上搭建php的SNMP开发环境

前言 最近需要开发AC的snmp协议,需要开启php的snmp扩展,网上能搜索到的主要还是windows和centos下面的几篇资料。这里主要介绍下mac系统下如何搭建php的snmp开发环境。 第一步,安装php: 首先需要在mac上面安装PHP,这…

重点物联网漏洞利用情况

重点物联网 漏洞利用情况本节我们选取了两个漏洞进行分析。UPnP 相关的漏洞我们将在 4.4.3 进行分析,除去 UPnP 相关漏 洞外,被利用最多的是 Eir D1000 路由器的一个漏洞 [44](CVE-2016-10372),我们将对其进行分析。 …

第006课 - 使用vagrant快速创建linux虚拟机

使用vagrant快速创建linux虚拟机 项目中使用的环境,都是装在linux当中的,我们可以使用linux虚拟机。 https://www.virtualbox.org/ 直接双击进行安装运行。 CPU开启虚拟化 virtualbox安装需要我们的cpu开启虚拟化。 这个需要设置主板。 在开机启动的时候,找到cpu配置:…

什么是金手指,金手指的设计要求有哪些?

金手指(connecting finger)是电脑硬件如:(内存条上与内存插槽之间、显卡与显卡插槽等),所有的信号都是通过金手指进行传送的。金手指由众多金黄色的导电触片组成,因其表面镀金而且导电触片排列如…

阿里云主要产品架构介绍

文章目录前言主要产品云产品访问拓扑ECS架构RDS架构OCS架构SLB架构OSS架构OTS架构ODPS架构SLSSLS的产品视角SLS运维视角OAS结语前言 阿里云产品众多,基本涵盖了从存储到计算到网络的方方面面,当然还包括大数据和人工智能。这些产品,共同组成…