dubbo服务暴露和消费的详细过程
2018-03-20 16:28
363 查看
(1)服务提供者暴露一个服务的详细过程服务提供者暴露服务的主过程:
首先ServiceConfig类拿到对外提供服务的实际类ref(如HelloWorldImpl),然后通过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来实现RMI服务,通讯细节这一块由JDK底层来实现,这就省了不少工作量。
(2)服务消费者消费一个服务的详细过程服务消费的主过程:
首先ReferenceConfig类的init方法调用Protocol的refer方法生成Invoker实例(如上图中的红色部分),这是服务消费的关键。接下来把Invoker转换为客户端需要的接口(如:HelloWorld)。
首先ServiceConfig类拿到对外提供服务的实际类ref(如HelloWorldImpl),然后通过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来实现RMI服务,通讯细节这一块由JDK底层来实现,这就省了不少工作量。
(2)服务消费者消费一个服务的详细过程服务消费的主过程:
首先ReferenceConfig类的init方法调用Protocol的refer方法生成Invoker实例(如上图中的红色部分),这是服务消费的关键。接下来把Invoker转换为客户端需要的接口(如:HelloWorld)。
相关文章推荐
- dubbo服务提供者暴露一个服务的详细过程
- OSPF路由协议的高级设置对各种路由重分发的详细实验过程
- WinPE集成SATA驱动详细图文过程
- 图文一步步详细描述刷机Mobile 6.5 的过程(内涵6700、6750、6800、6900刷机工具及驱动)
- cudaEncode编码详细过程
- BGP 案例专题九篇(配图) + 详细验证过程 推荐
- redhat linux as 5 安装oracle 10g的详细过程(已经做过测试) - radkitty的专栏 - CSDNBlog
- Vim的Python编辑器详细配置过程 (Based on Ubuntu 12.04 LTS)
- vstfp详解及虚拟用户配置配合详细过程
- 初始化Java对象的详细过程
- STM32F0xx_RTC实时时钟配置详细过程
- OK6410开发板启动过程(详细信息)
- 集成SSH框架详细过程
- libpcap丢包原理分析及Fedora 9 内核2.6.25.14下安装PF-RING的详细过程
- Ubuntu 14.04 LTS ssh 详细登录过程
- #UIView详细显示过程
- Android解析XML(PULL方式)和JSON 工作原理和实现过程(详细代码)
- 【java】 类加载详细过程
- 安装LINUX的详细过程图解
- VMware Ubuntu安装详细过程