Dubbo之服务消费原理

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Dubbo之服务消费原理

ytao丨杨滔   2020-03-23 我要评论
![](https://img2020.cnblogs.com/other/1850167/202003/1850167-20200323114857120-253140754.png) # 前言 上篇文章[《Dubbo之服务暴露》](https://ytao.top/2020/03/08/17-dubbo-reference/)分析 Dubbo 服务是如何暴露的,本文接着分析 Dubbo 服务的消费流程。主要从以下几个方面进行分析:**注册中心的暴露**;**通过注册中心进行服务消费通知**;**直连服务进行消费**。 服务消费端启动时,将自身的信息注册到注册中心的目录,同时还订阅服务提供方的目录,当服务提供方的 URL 发生更改时,实时获取新的数据。 # 服务消费端流程 下面是一个服务消费的流程图: ![](https://img2020.cnblogs.com/other/1850167/202003/1850167-20200323114857677-1387916966.jpg) 上图中可以看到,服务消费的流程与服务暴露的流程有点类似逆向的。同样,Dubbo 服务也是分为两个大步骤:第一步就是将远程服务通过`Protocol`转换成`Invoker`(概念在上篇文章中有解释)。第二步通过动态代理将`Invoker`转换成消费服务需要的接口。 `org.apache.dubbo.config.ReferenceConfig `类是`ReferenceBean`的父类,与生产端服务的`ServiceBean`一样,存放着解析出来的 XML 和注解信息。类关系如下: ![](https://img2020.cnblogs.com/other/1850167/202003/1850167-20200323114857926-1384778753.png) # 服务初始化中转换的入口 当我们消费端调用本地接口就能实现远程服务的调用,这是怎么实现的呢?根据上面的流程图,来分析消费原理。 在消费端进行初始化时`ReferenceConfig#init`,会执行`ReferenceConfig#createProxy`来完成这一系列操作。以下为`ReferenceConfig#createProxy`主要的代码部分: ```java private T createProxy(Map

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们