本篇文章给大家谈谈dubbo测试接口调用,以及dubbo接口怎么测对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享dubbo测试接口调用的知识,其中也会对dubbo接口怎么测进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
dubbo接口调用总结
1、需要知道对应的接口名称和调用方法名称,可以找开发要
2、需要配置nacos注册中心,可以找开发要地址
4、在工具中设置版本号
5、dubbo接口调用参数类型对照表:
https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/ParameterComparisonTable
6、dubbo接口复杂情况调用方式:
https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/FAQ
dubbo协议的服务 怎么接口测试
dubbo支持多种远程调用方式,例如dubbo RPC(二进制序列化 + tcp协议)、http invoker(二进制序列化 + http协议,至少在开源版本没发现对文本序列化的支持)、hessian(二进制序列化 + http协议)、WebServices (文本序列化 + http协议)等等,但缺乏对当今特别流行的REST风格远程调用(文本序列化 + http协议)的支持。有鉴于此,我们基于标准的Java REST API——JAX-RS 2.0(Java API for RESTful Web Services的简写),为dubbo提供了接近透明的REST调用支持。由于完全兼容Java标准API,所以为dubbo开发的所有REST服务,未来脱离dubbo或者任何特定的REST底层实现一般也可以正常运行。
特别值得指出的是,我们并不需要完全严格遵守REST的原始定义和架构风格。即使著名的Twitter REST API也会根据情况做适度调整,而不是机械的遵守原始的REST风格。
附注:我们将这个功能称之为REST风格的远程调用,即RESTful Remoting(抽象的远程处理或者调用),而不是叫RESTful RPC(具体的远程“过程”调用),是因为REST和RPC本身可以被认为是两种不同的风格。在dubbo的REST实现中,可以说有两个面向,其一是提供或消费正常的REST服务,其二是将REST作为dubbo RPC体系中一种协议实现,而RESTful Remoting同时涵盖了这个面向。
dubbo调用问题之序列化
dubbo的版本是2.5.3,接口调用后,provider方接收不到请求,超时后报错
dubbo测试接口调用:Waiting server-side response timeout by scan timer.详细日志如下
dubbo测试接口调用:
通过dubbo admin查看providers和consumers,可以找到服务,双方状态正常,dubbo版本也一致。 其实如果接口的provider方异常,调用方直接会收到类似于No provider available 或Forbid consumer access service from registry use dubbo version 2.5.3, Please check registry access list (whitelist/blacklist)的错误提示。
然后,查看接口请求参数,发现其实现了java序列化接口,和错误日志中的序列化方式一致。
后来测试时发现,竟然存在部分请求成功,着重分析后发现请求对象数据存在差异,请求对象的类定义中部分自定义域没有实现序列化接口。之前调用成功的请求中,其请求参数中未实现序列化的字段值为null。后来测试当整个请求参数不实现序列化时,发现接收方也可以收到请求。
跨服务调用时,传参必须实现序列化,其内部引用的对象也必须序列化。
1.方法的参数没有实现序列化,或其内部引用的对象没有实现序列化。
2.方法返回值没有序列化。(根据错误日志就能看明确发现)
3.调用双方形参版本不一致。(根据错误日志就能看明确发现)
4.注册中心配置错误导致的异常。(根据错误日志或dubbo admin可以明确发现)
5.网络异常导致的超时。
Dubbo的基本使用
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/examples/loadbalance
如果在消费端和服务端都配置了负载均衡策略,以消费端为准。
在服务提供者和服务消费者上都可以配置服务超时时间,这两者是不一样的。
消费者调用一个服务,分为三步:
1.消费者发送请求(网络传输)
2.服务端执行服务
3.服务端返回响应(网络传输)
如果在服务端和消费端各配置了一个timeout,那就比较复杂了,假设
1.服务执行为5s
2.消费端timeout=3s
3.服务端timeout=6s
那么消费端掉用服务时,消费端会收到超时异常(因为消费端超时了),服务端一切正常(服务端没有超时)。
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/examples/fault-tolerent-strategy/
集群容错表示:服务消费者在掉用某个服务时,这个服务有多个服务提供者,在经过负载均衡后选择其中一个服务提供者之后进行调用,但调用报错后,Dubbo所采取的后续处理策略。
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/example/service-downgrade/
服务降级表示:服务消费者在调用某个服务提供者时,如果该服务提供者报错了,所采取的措施。
集群容错和服务降级的区别在于:
1.集群容错时整个集群范围内的容错
2.服务降级时单个服务提供者的自身容错
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/examples/local-stub/
本地存根:名字很抽象,但实际上不难理解,本地存根就是一段逻辑,这段逻辑是在服务消费端执行的,这段逻辑一般都是由服务提供者提供,服务提供者可以利用这种机制在服务消费者远程调用服务提供者之前或之后再做一些其他事情,比如结果缓存,请求参数验证等等。
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/examples/local-mock
本地伪装就是Mock,Dubbo中的Mock的功能相对于本地存根更简单一点,Mock其实就是Dubbo中的服务容错的解决方案。
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/examples/callback-parameter/
如果当前服务支持参数回调,意思就是对于某个服务接口中的某个方法,如果想支持消费者在调用这个方式时能设置回调逻辑,那么该方法就是需要提供一个入参用来表示回调逻辑
因为Dubbo协议是基于长连接,所以消费者在两次调用同一个方法想指定不同的回调逻辑,那么就需要在调用时在指定一定key进行区分。
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/examples/async-call/
理解起来比较容易,主要要理解CompletableFuture,如果不理解,就直接把它理解为Future
其他异步调用方式: https://mp.weixin.qq.com/s/U3eyBUy6HBVy-xRw3LGbRQ
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/example/generic-reference/
泛化调用可以用来做服务测试。
在Dubbo中,如果某个服务想要支持泛化调用,就可以将该服务的generic属性设置为true,那对于服务消费者来说,就可以不用依赖该服务的接口,直接利用GenericService接口来进行服务调用
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/examples/generic-service/
实现了GenericService接口就是泛化服务
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/rest/
github地址: https://github.com/apache/dubbo-admin
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/examples/config-rule/
注意动态配置修改的是服务参数,并不能修改服务的协议,IP,PORT,VERSION,GROUP,因为这5个信息是服务的标识信息,是服务的身份证号,是不能修改的。
官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/example/routing-rule/
https://zhuanlan.zhihu.com/p/42671353
cmd命令dubbo 消费者 怎么调用 提供者
现在很流行的Dubbo很多朋友都听说过吧,最近我也在看这方面的东西,分享先我的心得笔记。
先说说我们团队要做的项目框架,很简单重在实现基于zookeeper的dubbo注册。
框架:springmvc+spring+zookeeper+dubbo
项目分三层,model存放数据,view页面展示、controller下面具体逻辑实现。通过dubbo消费方和供应方注册,供应方给消费方暴露接口,供消费方调用。
工程部署需要配置文件有:
applicationContext-dubbo.xml
{--
<--
消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样
--
<--
使用zookeeper注册中心暴露服务地址
--
<--
生成远程服务代理,可以像使用本地bean一样使用demoService
--
<dubbo:reference
id="demoService"
interface="com.unj.dubbotest.provider.DemoService"
/
--}
dubbo.properties
{--
<--基于ZooKeeper的Dubbo注册中心直接部署tomcat,修改WEB-INF下文件--
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
--}
zoo_sample.cfg
{--
zookeeper/conf/下,修改zoo_sample.cfg为zoo.cfg,启动bin/下zkServer.cmd
--}
因为引入dubbo,摒弃了原有Web
Service项目的wdls暴露,由于项目依赖关系严重,项目使用maven构建,通过Maven
pom.xml三维坐标引入jar包,调用dubbo暴露接口开发。
性能测试工具:LoadRunner、jmeter
接口测试工具:LoadRunner、jmeter、soapUI、Spotlight
安全测试工具:NStalker-Web、AppScan、TamperIESetup
自动化工具
:BadboyInstaller、QTP
/**
*
@author
wonter
*
<b描述:</b
一天学一个模式
更新中,请关注我的博客!
*
<b博客:</b
http://www.cnblogs.com/javame
*
<b邮件:</b
yiyu1@163.com
关于dubbo测试接口调用和dubbo接口怎么测的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
dubbo测试接口调用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于dubbo接口怎么测、dubbo测试接口调用的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~