行文之前,我也有诸多不确定,要是有不对之处,万望斧正
我们一般比较这个会拿springcloud的restful传输和dubbo来进行对比,网上大多数的文章都是,springcloud的restful是基于http,属于应用层协议,dubbo基于rpc,属于传输层协议,前者没有什么异议,但是duboo的rpc协议真的是基于传输层吗?这时候上一手官网:
https://dubbo.apache.org/zh/overview/whatsnew/triple/
看了我们大体可能认为,dubbo3是基于http2的,就是网路层的喽,dubbo是基于grpc,就是传输层的喽,在往下挖,grpc是基于http2,这可尬住了,就是说都是应用层的了,那大家说的rpc基于运输层是怎么来的?
我认为是这样的,其实我们忽略了一个事,就是实现技术的出现,是以某个或者某些大佬的论文为指导,我认为可能是在某个大神出关于rpc的论文的时候的确是把这种协议定义为运输层的协议,但是在后来的实现中,大神们在设计dubbo这个基于rpc的实现的时候,使用了现有的应用层的基础,也就是说,dubbo的确是rpc的实现,是运输层的技术,因为它只是方法的调用,但是,dubbo的底层实现,确实基于http2这项应用层技术。
不对之处,望请斧正。