+1 to promote 'jsonrpc' as the default 'http' extension. It is far better than the original 'http' implementation, and it has much better support for foreign language client.
Regards, -Ian. On Wed, Jul 17, 2019 at 5:55 PM 徐靖峰 <[email protected]> wrote: > Hi folks > > There are many protocols in dubbo using HTTP in the remoting layer, for > example > > - > > hessain > - > > http > - > > jsonrpc > - > > rest > - > > webservice > > Among them, protocol="http" use the HttpInvoker designed by Spring > Framework(ref: > > https://docs.spring.io/spring/docs/4.3.24.RELEASE/spring-framework-reference/htmlsingle/#remoting-httpinvoker-server > ), > and its default serialize type is origin Java Serialize, such design > determines that nowadays protocol="http" is not a cross-language & > high-performance protocol. > > But the protocol="jsonrpc" is a saver of the cross-language feature. Almost > every programing language supports json schema. For the above reasons, I > suggest that dubbo should repalce replace the current protocol="http" with > protocol="jsonrpc", and recommend people who want to use the cross-language > feature or develop web-site applications in dubbo to use > protocol="http".(waste the origin implementation of http protocol using > Spring HttpInvoker) > > WHY NOT replace protocol="http" with protocol="rest"? > > Dubbo has made an attempt on the RESTful interface, but there is some > difference between the REST architecture and the original RPC architecture > of Dubbo. The difference is that the REST architecture needs the definition > of resources and we should operate the resources using the basic HTTP > methods —— GET, POST, PUT, DELETE. Dubbo needs to redefine the properties > of the interface, which is a big burden on the original interface migration > of Dubbo. In contrast, RESTful is more appropriate for calls between > Internet systems, and RPC is more appropriate for calls within a system, so > we used protcol="jsonrpc" which is more consistent with the Dubbo concept. > > How do you think about the migration > > - > > protocol="jsonrpc" => protocol="http" > > > - > > origin protocol="http" => waste or rename to > protocol="spring-httpinvoker" >
