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框架。
客户端
服务端
在dubbo中,是采用API的形式使用HTTP invoker的,针对HTTP invoker,还可以通过spring的xml进行配置来进行操作。在这里就不细说了。
dubbo-RPC学习(二) http protocol,布布扣,bubuko.com
原文:http://www.cnblogs.com/asfeixue/p/3689250.html