RPC服务和HTTP服务的区别

2019年6月21日 15:30

391

1·RPC是一种API,RPC主要是基于TCP/ IP 协议,HTTP是一种无状态的网络协议,HTTP服务主要是基于HTTP协议。RPC可以基于HTTP协议实现,也可以直接在TCP协议上实现。使用HTTP协议实现RPC:JSON与XML成为通用的格式标准,开源解析工具成熟很多成熟的开源web容器已经处理好,如tomcat,jboss,apache等但由于上层协议,发送同等内容需传输字节数更多,效率较TCP差。

2· RPC,使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减少报文的体积,提高传输效率。HTTP,如果是基于HTTP1.1的协议,请求中会包含很多无用的内容,如果是基于HTTP2.0,那么简单的封装以下是可以作为一个RPC来使用的,这时标准RPC框架更多的是服务治理。

3·RPC服务主要是用在大型网站里面,一般来说,RPC服务主要是针对大型企业的,因为大型网站里面系统繁多,业务线复杂,而且效率优势非常重要的一块,这个时候RPC服务的优势就比较明显了,而HTTP服务主要是针对小企业的,HTTP服务主要是用在中小网站里面,业务线没那么繁多。RPC服务效率更高,而HTTP服务开发迭代会更快。RPC服务主要用于公司内部的服务调用,性能消耗低,传输效率高,服务治理方便。HTTP服务主要用于对外的异构环境,浏览器接口调用,APP接口调用,第三方接口调用等。

4· HTTP协议与RPC协议存在重大不同的是:请求是使用具有标准语义的通用的接口定向到资源的,这些语义能够被中间组件和提供服务的来源机器进行解释。结果是使得一个应用支持分层的转换(layers of transformation)和间接层(indirection),并且独立于消息的来源,这对于一个Internet规模、多个组织、无法控制的可伸缩性的信息系统来说,是非常有用的。与之相比较,RPC协议的机制是根据语言的API(language API)来定义的,而不是根据基于网络的应用来定义的。

HTTP 协议调用其实也是一种特殊的 RPCHTTP1.0 协议时,HTTP 协议调用还只能是短链接调用,一个请求来回之后连接就会关闭。HTTP1.1 协议在 HTTP1.0 协议的基础上进行了改进,引入了 KeepAlive 特性可以保持 HTTP 连接长时间不断开,以便在同一个连接之上进行多次连续的请求,进一步拉近了 HTTP 协议和 RPC 协议之间的距离。

RPC服务和HTTP服务还是存在很多的不同点的,总之,选用什么样的框架不是按照市场上流行什么而决定的,而是要对整个项目进行完整地评估,从而在仔细比较两种开发框架对于整个项目的影响,最后再决定什么才是最适合这个项目的。一定不要为了使用RPC服务而每个项目都用RPC服务,而是要因地制宜,具体情况具体分析。


相关文章


@ 2016 - 2020.神鸡IP代理,
All rights reserved.
鄂ICP备18017015号-4

禁止利用本站资源从事任何违反本国(地区)法律法规的活动
神鸡代理ip专业提供http代理ip地址,动态ip代理服务器实时更新