远程调用细节:

服务提供者暴露一个服务的详细过程:

dubbo服务提供者暴露一个服务的详细过程

上图是服务提供者暴露服务的主过程: 
首先ServiceConfig类拿到对外提供服务的实际类ref,然后将ProxyFactory类的getInvoker方法使用ref生成一个AbstractProxyInvoker实例,到这一步就完成具体服务到invoker的转化。接下来就是Invoker转换到Exporter的过程。
Dubbo处理服务暴露的关键就在Invoker转换到Exporter的过程,下面我们以Dubbo和rmi这两种典型协议的实现来进行说明: 
Dubbo的实现: 
Dubbo协议的Invoker转为Exporter发生在DubboProtocol类的export方法,它主要是打开socket侦听服务,并接收客户端发来的各种请求,通讯细节由dubbo自己实现。
Rmi的实现: 
RMI协议的Invoker转为Exporter发生在RmiProtocol类的export方法,他通过Spring或Dubbo或JDK来实现服务,通讯细节由JDK底层来实现。

服务消费者消费一个服务的详细过程

dubbo服务提供者暴露一个服务的详细过程

上图是服务消费的主过程: 
首先ReferenceConfig类的init方法调用Protocol的refer方法生成Invoker实例。接下来把Invoker转为客户端需要的接口

相关文章:

  • 2022-12-23
  • 2021-09-29
  • 2021-10-15
  • 2021-04-22
  • 2022-02-24
  • 2020-03-21
  • 2021-10-30
猜你喜欢
  • 2021-05-19
  • 2021-12-03
  • 2022-01-26
  • 2021-11-10
  • 2021-10-03
相关资源
相似解决方案