RPC API将使用带有{{id":1}主体的POST / deleteResource之类的东西,而不是REST方法,即DELETE / resource / 1 。
RPC在IoT设备和其他需要针对低功率设备进行自定义合约通信的解决方案中非常受欢迎,因为许多计算操作可以转移到另一设备 。传统上,RPC可以实现为RPC-XML和RPC-JSON 。
gRPC是要在RPC协议上创建的最新框架 。它利用其优势,并试图纠正传统RPC的问题 。
什么是gRPC?根据目前为止所读的内容,我们可以重新定义gRPC 。它是对传统RPC框架的改编 。那么,它与现有的RPC框架有何不同?
最重要的区别是gRPC使用protobuf 协议缓冲区作为接口定义语言进行序列化和通信,而不是JSON / XML 。协议缓冲区可以描述数据的结构,并且可以从该描述中生成代码,以生成或解析表示结构化数据的字节流 。这就是为什么gRPC首选多语言(使用不同技术实现)的Web应用程序的原因 。二进制数据格式使通信更轻松 。gRPC也可以与其他数据格式一起使用,但是首选的是protobuf 。
同样,gRPC建立在HTTP / 2之上,它支持双向通信以及传统的请求/响应 。gRPC允许服务器和客户端之间的松散耦合 。在实践中,客户端打开与gRPC服务器的长期连接,并且将为每个RPC调用打开一个新的HTTP / 2流 。
REST与gRPC与使用JSON(主要是JSON)的REST不同,gRPC使用协议缓冲区,这是编码数据的更好方法 。由于JSON是基于文本的格式,因此它比protobuf格式的压缩数据要重得多 。
与REST相比,gRPC的另一个显着改进是它使用HTTP 2作为其传输协议 。REST使用的HTTP 1.1基本上是一个请求-响应模型 。gRPC利用HTTP 2的双向通信功能以及传统的响应请求结构 。在HTTP 1.1中,当多个请求来自多个客户端时,它们将被一一处理 。这会降低系统速度 。HTTP 2允许多路复用,因此可以同时处理多个请求和响应 。
从这些观点出发,我们可以得出结论,当用例涉及使用惯用API的多语言通信或大规模微服务通信时,gRPC是一个不错的选择 。
(本文翻译自Arun Mathew Kurian的文章《Understanding gRPC》,参考:https://medium.com/better-programming/understanding-grpc-60737b23e79e)
【gRPC入门知识】
推荐阅读
- 新手淘宝店铺每天应该做些什么 淘宝开店必备的知识技能
- 怎么开网店新手入门 新手开网店之后怎么做
- 淘宝教程新手入门视频 淘宝大学免费课程视频教程
- UPS不间断电源的基本知识,介绍非常全面,建议收藏
- 九大凤凰单丛的茶叶知识
- 不干胶印刷设备知识大全
- Linux操作系统基础的网络管理知识
- 黑客入门必修课:端口扫描
- 钢琴入门年龄与常见问题
- 身为开发人员,这些数据库合知识不掌握不合适