您的位置:首页 > 其它

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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dubbo