什么是RPC
从网络协议来说,Http协议与Rpc同属于应用层, 他们的底层都是tcp协议。

从概念上来说,RPC是远程过程调用,而其实Http其实也是属于RPC调用的一种。RPC是一种网络编程的模式,是我们程序员将对远程服务器调用的抽象,而且一般需要实现服务注册发现机制、序列化反序列化机制、方法派发机制,这些一般都需要我们使用的RPC框架(比如Thrift)默认实现的。
为什么要使用RPC
http协议其实是属于面向桌面浏览器的一个通信协议,对于缓存,幂等或者Cookies相关的方面做了很多的事情。但是对于服务器之间直接的交互,Rpc就能够体现出来他的优势了。
- 自定义协议,减少数据传输:我们大概看一下http协议。请求行,请求头部,请求数据,空行。很明显对于远程调用场景,我们对于请求行的依赖不是特别的强,那么这一部分在我们应用场景下,将会成为负担,但是http协议又是固定的,我们也不可能随便修改协议的格式。所以,通过rpc协议我们可以精简请求的数据,来尽可能少的传输我们的数据。当前,rpc也可以通过http协议来进行传输。

-
使用长连接:直接基于socket进行连接,不用每个请求都重新走三次握手的流程
-
Thrift默认提供了数据与实体类的转换,不需要我们显示的进行数据与实体类的转换。
-
性能差距:https://cnodejs.org/topic/553a1cad63b7692e48bbb715。我们这里借用一下这篇文章的结论:
图片来源网络,侵删
网友评论