Dubbo学习系列(四--1)服务的暴露--本地暴露

整体流程里面其实已经分析过一遍了,这一篇对此加强一下个人理解,首先将流程图整理如下:


1. 这里注意下步骤2中的调用顺序

因为作为ProxyFactory借口的实现类JavassistProxyFactory,它被包装过,一般这种包装类是用来实现IOC和AOP的过程的,因此在真正调用实现类之前,会有代码增强功能。因此此处的调用链是:

ProxyFactory$Adaptive -> StubProxyFactoryWrapper -> JavassistProxyFactory


2.另一个注意的是步骤6的调用

Protocol的实现类InjvmProtocol也被增强了,它的调用链是如下:

ProxyFactory$Adaptive -> ProtocolListenerWrapper -> ProtocolFilterWrapper -> InjvmProtocol

3.图中可以看见Invoker到Exporter的转化,后续由Exporter负责Invoker的生命周期,下面贴一下Invoker知识。

Invoker:可执行的对象,执行具体的远程调用,能够根据方法名称,参数得到相应的执行结果。

那么对于本地Invoker来说的话,如果是本地调用的时候,只需要通过反射进行调用,就能获取到结果。

猜你喜欢

转载自blog.csdn.net/qq_32924343/article/details/80364501