先看下Protocol
的类结构
Dubbo
默认使用DubboProtocol
,但也可以使用Http
,Rest
,Hessian
,WebService
这几种协议来发布和引入服务。这几种协议都基于HTTP
。所以必然要发布HTTP
接口。
在dubbo的exchange层这篇文章中介绍到。Exchange
层最主要的功能是构建了Request
和Response
的抽象,因为它要在TCP
协议上做自定报文结构。所以不得不自己实现Request
和Response
。如果直接使用HTTP
协议就没这问题,因为Servlet
容器已经把HttpRequest
和HttpResponse
的实现都做好了。
Dubbo
为了适配各种Http
服务器(Tomcat
,Jetty
)抽象出了一个HttpServer
的接口。这个思想与文章dub