dubbo负载均衡源码解读

https://dubbo.gitbooks.io/dubbo-user-book/preface/architacture.html

首先连接一下概念

整个Dubbo的RPC框架建立在Protocol、Exporter和Invoker这三个接口上,Protocol扩展点定义了一种RPC协议的实现,即如何发布和引用服务,Exporter代表了一个对外暴露的服务,Invoker执行远程调用并返回结果,实现一个协议要同时实现这三个接口。下面先看一下这三个接口,稍微有点抽象。

1. Protocol

Protocol的源码如下,代码的注释已讲的比较清楚,这里可以看到,Dubbo默认使用的协议是dubbo。

 展开原码

 

2. Exporter

Exporter代表了一个对外暴露的服务,其源码如下,getInvoker返回调用服务的Invoker,unexport取消该服务的暴露。

 展开原码

 

3. Invoker

Invoker用于执行一个RPC调用,其代码如下,getInterface返回它是哪个服务的Invoker,invoker方法用于执行远程调用,并返回执行结果。

 展开原码

 

 

Invoker接口扩展自Node接口,Node代表了一个具有URL地址的节点,其源码如下,getUrl返回该节点的URL地址,isAvailable返回该节点当前是否可用,destory用于销毁该节点。

 展开原码

 

下面看一下Result接口,Result接口代表了RPC调用的执行结果,其源码如下,getValue返回执行结果的值,如果没有执行结果则返回null,getException返回执行过程中发生的异常,如果没有发生异常,则返回null,hasException用于返回是否发生了异常,recreate方法用于重建执行结果,重建的意思就是,模拟执行,然后获取结果,如果执行正常,则返回值,否则抛出异常。三个attachment用于获取执行中的其他附加信息。

 展开原码

 

Invocation表示执行的上下文,其源码如下,getMethodName返回调用的是哪个方法,getParameterTypes返回所要调用的方法的参数类,getArguments返回调用方法时使用的参数,三个attachment方法同样是用于获取一些附加信息,getInvoker返回当前上下文是属于哪个Invoker。

 展开原码

URL

http://www.hiwzc.com/dubbo-url.html

http://youaremoon.iteye.com/blog/2279787

 

调用关系

http://blog.csdn.net/quhongwei_zhanqiu/article/details/41701689

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值