首页 > 其他 > 详细

dubbo-RPC学习(二) http protocol

时间:2014-04-26 09:37:53      阅读:373      评论:0      收藏:0      [点我收藏+]

dubbo中的协议默认支持很多种,从简单的开始,先解读HttpProtocol吧。

dubbo中的http-RPC基于spring web支持的http invoker,web容器默认使用jetty。

因为调用不是基于dubbo协议,在这里,存在一个抽象代理AbstractProxyProtocol,像http、RMI、webservice、hessian等等协议都继承自该代理类。该代理主要负责在发布服务的时候将服务代理发布出去,在引用服务的时候,转换为dubbo内部的执行体invoker。

在HttpProtocol中,有一个关键的内部类InternalHandler,该类用于将http请求接入http invoker中,而且,默认只支持POST的http请求。

先简单说说spring的http invoker。

Spring HTTP Invoker是spring框架中的一个远程调用模型,执行基于HTTP的远程调用,也就是说,可以通过防火墙,并使用java的序列化机制在网络间传递对象。客户端可以很轻松的像调用本地对象一样调用远程服务器上的对象,要注意的一点是,服务端、客户端都是使用Spring框架。

客户端

  1. 向服务器发送远程调用请求
    远程调用信息-->封装为远程调用对象-->序列化写入到远程调用http请求中-->向服务器端发送
  2. 接收服务器端返回的远程调用结果
    服务器端返回的远程调用结果HTTP响应——>反序列化为远程调用结果对象

服务端

  1. 接收客户端发送的远程调用请求
    客户端发送的远程调用HTTP请求——>反序列化为远程调用对象——>调用服务器端目标对象的目标方法处理
  2. 向客户端返回远程调用结果
    服务器端目标对象方法的处理结果——>序列化写入远程调用结果HTTP响应中——>返回给客户端。

在dubbo中,是采用API的形式使用HTTP invoker的,针对HTTP invoker,还可以通过spring的xml进行配置来进行操作。在这里就不细说了。

dubbo-RPC学习(二) http protocol,布布扣,bubuko.com

dubbo-RPC学习(二) http protocol

原文:http://www.cnblogs.com/asfeixue/p/3689250.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!