摘要:
五Dubbo服务引用源码分析--2创建远程调用的代理-2.1ReferenceBean.getObject 5.1 创建远程调用的代理--getBean(DemoService.class)->getObject 在5.0消费端启动部分,已经分析了代理对象创建的时机: getBean(DemoSer 阅读全文
摘要:
五Dubbo服务引用源码分析--1消费端启动 在消费端consumer引用服务进行分析时,首先看Dubbo的开发者手册,把握分析的切入点,并全局把握大致的流程。 1 服务消费的过程中,首先是引用配置的初始化--即ReferenceConfig初始化,需要加载consumer.xml配置信息,将ref 阅读全文
摘要:
四Dubbo中Zookeeper注册中心 4.1 zk连接 4.2 zk创建节点 4.3 zk订阅 4.4 ZKClient使用 4.5 注册和订阅、通知解析--todo?? 阅读全文
摘要:
三Dubbo服务暴露源码分析--3远程暴露-下 //PTC2.2.2 DubboProtocol.serverMap.put(key, createServer(url)) DubboProtocol private final Map<String, ExchangeServer> serverM 阅读全文
摘要:
三Dubbo服务暴露源码分析--3远程暴露-中 紧接上文,分析PTC2.2.1.1 Exchangers.bind(url, requestHandler)-BIND的绑定操作: BIND1 ExchangeHandlerAdapter--处理client请求invoker.invoke(invoc 阅读全文
摘要:
三Dubbo服务暴露源码分析--3远程暴露-上 3.2 远程暴露 在Dubbo开发者手册中,给出了服务调用的流程图如上。其中,圈住部分为provider端的远程服务暴露部分的主流程。后续的分析,可以对照流程图,把握执行方向。 ServiceConfig private void doExportUr 阅读全文
摘要:
三Dubbo服务暴露源码分析--2本地暴露 3.1 本地暴露(exportLocal) ServiceConfig private void exportLocal(URL url) { //url中protocol如果不为injvm,重新设置URL为injvm://的协议头 if (!Consta 阅读全文
摘要:
三Dubbo服务暴露源码分析--1服务端启动 分析provider端暴露原理,首先从官方文档找到总体的逻辑,在把握全局逻辑后,找到源码研究切入点,并顺藤摸瓜,后面的细节也就呼之欲出。 上述过程可知,provider端服务暴露的起点,是serviceConfig类。 服务暴露逻辑: 1 service 阅读全文
摘要:
二Dubbo设计基础--6设计模式 2.6 设计模式 2.3.1 责任链模式 在[wrapper机制](#2.2 Wrapper机制)中使用到该模式。 1 责任链原型 (1)抽象出接口AbstractHandler 有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递, 阅读全文
摘要:
二Dubbo设计基础--5Dubbo与Spring的融合 2.5.1 标签解析原理 spring使用过程会遇到各种标签元素进行解析,该功能与spring核心组件有关。而核心组件中springAOP、springBean、springContext都包含spring.handlers文件,文件内容表明 阅读全文
摘要:
二Dubbo设计基础--4Dubbo-URL 2.4.1 Dubbo中的URL 一个标准的 URL 格式至多可以包含如下的几个部分 protocol://username:password@host:port/path?key=value&key=value 在 dubbo 中,也使用了类似的 UR 阅读全文
摘要:
二Dubbo设计基础--3Mock机制和Stub机制 2.3.1 Mock机制 (https://maimai.cn/article/detail?fid=1414002536&efid=1ClnCEtvvjXp5j1knp2Trw) Cluster是一个通用代理类,会根据URL中的cluster参 阅读全文
摘要:
二Dubbo设计基础--2Wrapper 2.2 Dubbo中Wrapper 注意,区别Dubbo中Wrapper.getWrapper和wrapper机制。前者用在provider端构造invoker时,javassist字节码方式,构建字节码——>>class对象——>>反射创建实例,构造目标服 阅读全文
摘要:
二Dubbo设计基础--1扩展点加载 2.1 扩展点加载 2.1.1 java的SPI SPI是Service Provider Interfaces的简称。根据Java的SPI规范,我们可以定义一个服务接口,具体的实现由对应的实现者去提供,即Service Provider(服务提供者)。然后在使 阅读全文
摘要:
一Dubbo架构设计 1.1结构设计 官网用户手册的介绍如下: https://dubbo.gitbooks.io/dubbo-user-book/content/demos/fault-tolerent-strategy.html 上述过程是服务调用call过程,consumer端invoker. 阅读全文