既然有http请求,为什么还要用rpc调用

更新时间:02-01 教程 由 囚人 分享

在程序开发中,我们经常会调用第三方API,而这类API一般提供多种方式供我们调用,比如:基于HTTP协议的、还有RPC方式调用的,以致于很多人会有这种质疑:既然有了HTTP这种请求方式,为什么还有RPC的存在?

HTTP和RPC是完全不同的概念

在这里我们需要搞清楚一点的是,HTTP和RPC在概念上就是不同的,两种是不能相提并论的。

HTTP是超文本传输协议;

RPC是指远程过程调用,它是对不同系统间相互调用方式的一种描述,RPC不是协议也不是一种新技术,严格意义上应该称它是一种解决方案(概念)或技术实现的框架。RPC框架底层一般支持多种协议,比如:HTTP、TCP、自定协议等。
所以说RPC也是可以通过HTTP来实现的!

RPC与HTTP调用的应用场景

RPC框架提供的是面向服务的封装,它针对服务的性能效率、可用性等都做了优化(比如提供了:注册中心、服务治理、负载均衡、二进制传输、熔断、服务降级等功能),是一套完整的解决方案;而HTTP调用缺少这些高级特性,它只是简单的数据通信,另外HTTPAPI受限于HTTP协议(要带HTTP请求头),传输效率及安全性不如RPC。

为什么使用RPC而不是简单的HTTPAPI?

HTTPAPI一般在接口数量不多的情况下采用的,因为它使用起来简单快捷,直接利用现成的HTTP协议就可以进行数据传输。

但对于一个大型项目,内部模块子系统众多,接口也变得很多了,在这种情况下如果再使用一个个零散的HTTPAPI,维护成本极高。所以RPC框架优点就显示出来了,比如说:

支持长链接,减少了网络开销;

拥有注册中心,服务治理起来更方便;

有监控功能,易于定位问题;

对调用方来说是无感知、统一化的。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流~我是科技领域创作者,十年互联网从业经验,我了解更多科技知识!
声明:关于《既然有http请求,为什么还要用rpc调用》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2162258.html