dubbo理解

Dubbo服务的调用基本上都是出现在分布式项目中,最常见的电商网站、涉及买卖的APP等。

比如某个购物APP,目前最常见的架构就是做成分布式架构,拆分成很多个系统,比如用户模块、短信模块、产品模块、订单模块、支付模块等等,这样的架构里面就会涉及到dubbo接口的调用。

场景1:

比如苏宁易购上我的易购,你点击进去后能查看到订单信息,我的易购这部分代码在开发时按道理会写在用户模块里面,但是现在需要看到订单信息,用户模块就需要调用订单模块的接口,这里就涉及到了dubbo接口的调用。此处用户模块就是消费者,订单模块就是生产者。

dubbo调用涉及到的配置文件:

 

<!--生产者-->
<dubbo:service ref="orderService" interface="com.nyd.pay.api.service.orderService" protocol="dubbo" />

<!--消费者-->
<dubbo:reference  id="userServiceContract" interface="com.nyd.user.api.userServiceContract" timeout="10000" />


详细解释:
当A服务器上的应用发起远程调用时,方法中的请求参数需要通过底层的网络协议(TCP)传送到B服务器,但由于网络协议是基于二进制,方法中的请求参数需要序列化成二进制存到内存里面,然后再通过寻址和传输将序列化的二进制
发送到B服务器;

服务器B接收到请求后,将会进行反序列化,恢复为内存中的表达方式,然后找到对应的方法进行本地调用并返回,返回值序列化并发送到A服务器,A服务器接收到B服务器的返回值后,进行反序列化,恢复为内存中的表达方式,然后
A服务器上的应用进行相应处理。


 

 

posted @ 2018-09-08 14:46  小柴胡颗粒  阅读(331)  评论(0编辑  收藏  举报