美文网首页dubbo
dubbo mock/local/stub 功能

dubbo mock/local/stub 功能

作者: 钟mh | 来源:发表于2018-12-04 16:00 被阅读0次

stub=true or default

设为true/default,表示使用缺省代理类名,即:接口名 + Local后缀,服务接口客户端本地代理类名,用于在客户端执行本地逻辑,如本地缓存等,该本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService)

mock=true or default 

设为true/default,表示使用缺省Mock类名,即:接口名 + Mock后缀,服务接口调用失败Mock实现类,该Mock类必须有一个无参构造函数,与Local的区别在于,Local总是被执行,而Mock只在出现非业务异常(比如超时,网络异常等)时执行,Local在远程调用之前执行,Mock在远程调用后执行。

源码里还有一个local参数,和 stub等价,但是被 deprecated 了

StubProxyFactoryWrapper 

处理  stub/local , 以下代码不清楚意图,难道只是为了改个变量名

String stub = invoker.getUrl().getParameter(Constants.STUB_KEY, invoker.getUrl().getParameter(Constants.LOCAL_KEY));

StubProxyFactoryWrapper 是 proxyFactory的 wrapper类,所以 stub类总是被执行. 

 MockClusterInvoker

 处理 mock ,  MockClusterWrapper 里调用了 MockClusterInvoker,MockClusterWrapper 是Cluster 的 wrapper类,理解 ExtensionLoader 的 cachedWrapperClasses 很重要。

Cluster的配置只在consumer端生效,所以mock、stub、local参数也只在consumer端生效,可以跟踪下 RegistryDirectory.mergeUrl。 但是 service 和 consumer端都会做检查。checkStubAndMock(interfaceClass); 

参考 : read: https://www.jianshu.com/p/ce8de35986cf

相关文章

  • dubbo mock/local/stub 功能

    stub=true or default 设为true/default,表示使用缺省代理类名,即:接口名 + Lo...

  • Dubbo优雅服务降级之Stub和回声服务

    上篇Dubbo优雅服务降级之mock描述了关于mock的细节。此篇就详述一下关于Stub的实现。 在dubbo的官...

  • Dubbo Stub与Mock

    前言 大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo Stub和Mock。在前一个章节中我们介绍了...

  • Dubbo服务之Stub和Mock

    Dubbo服务中包含两个功能,感觉还是蛮有意思的,一个是本地存根,一个是本地伪装。学习了文末的参考文章,感觉说的很...

  • Dubbo优雅服务降级之mock

    [Dubbo优雅服务降级之Stub][Dubbo_Stub] dubbo作为国内互联网最常用的Java开源服务治理...

  • Mock and Stub

    description: We have a dojo about Mock and Stub.But first...

  • 【JAVA UT】15、mock与stub的比较

    文|码术张 本节通过比较stub与mock,加深对stub、mock的认识。 1、相同点 都是在ut中消除依赖的一...

  • Java单元测试

    概念 Stub和Mock 为什么使用Stub或者Mock? 因为要测试的对象通常会依赖于其他对象,而我们并不需要测...

  • Mock与Stub

    Mock验证行为,Stub验证状态。但需要细分一下场景: 1. 需要test double提供输入时,state也...

  • php单元测试进阶(13)- 核心技术 - mock对象 - 同

    php单元测试进阶(13)- 核心技术 - mock对象 - 同时使用mock和stub 本系列文章主要代码与文字...

网友评论

    本文标题:dubbo mock/local/stub 功能

    本文链接:https://www.haomeiwen.com/subject/tctvcqtx.html