We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remote Procedure Call Protocol aka. RPC aka. 远程过程调用协议
定义:一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员就像调用本地程序一样,无需关注细节。
根据RPC概念提出者的说法,RPC有以下特点:
通俗一点说,就是一般程序员对于本地的过程调用很熟悉,那么我们把 RPC 作成和本地调用完全类似,那么就更容易被接受,使用起来毫无障碍。
本节参考博客
RPC的程序包括以下5个部分:
关系如图:
流程如下:
本节参考掘金博客
严格意义上两者并不在同一层级上,更有甚者,gRPC已经是建立在HTTP协议上实现的RPC框架。但两者都作为远程数据交互的实现协议,故经常一起对比。
接口调用通常包含两个部分:序列化协议和通信协议
RESTful,全称 Representational State Transfer aka. 表述性状态传递,是一种软件架构风格,典型应用是HTTP,所以一般都认为RESTful就是HTTP协议。
RPC也是基于TCP/IP协议簇实现的通信协议。gRPC是基于HTTP2.0协议实现。
序列化和反序列化更多介绍,参考美团技术博客
常用的序列化协议包括:json / xml / protobuf / thrift / bytes等
RESTful面向资源;RPC面向方法。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
RPC
Remote Procedure Call Protocol aka. RPC aka. 远程过程调用协议
定义:一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员就像调用本地程序一样,无需关注细节。
WHY RPC?
根据RPC概念提出者的说法,RPC有以下特点:
通俗一点说,就是一般程序员对于本地的过程调用很熟悉,那么我们把 RPC 作成和本地调用完全类似,那么就更容易被接受,使用起来毫无障碍。
RPC结构
RPC的程序包括以下5个部分:
关系如图:
流程如下:
RESTful / HTTP vs RPC
严格意义上两者并不在同一层级上,更有甚者,gRPC已经是建立在HTTP协议上实现的RPC框架。但两者都作为远程数据交互的实现协议,故经常一起对比。
接口调用通常包含两个部分:序列化协议和通信协议
通信协议
RESTful,全称 Representational State Transfer aka. 表述性状态传递,是一种软件架构风格,典型应用是HTTP,所以一般都认为RESTful就是HTTP协议。
RPC也是基于TCP/IP协议簇实现的通信协议。gRPC是基于HTTP2.0协议实现。
序列化协议
常用的序列化协议包括:json / xml / protobuf / thrift / bytes等
使用方法
面向对象
RESTful面向资源;RPC面向方法。
The text was updated successfully, but these errors were encountered: