RPC 和 Protobuf:解析和使用

在本文中,我们将了解 RPC 和 Protobuf 的工作原理,并介绍如何使用它们。如果您想深入了解这两个技术,那么这篇文章一定不要错过。

用 Apifox,节省研发团队的每一分钟

RPC 和 Protobuf:解析和使用

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

protobuf

定义

是与 json,XML 功能相似的一种结构化数据格式,是一种 google 定义的结构化数据格式,用于在网络通讯间的数据序列化和反序列化,以用于网络传输。序列化:将数据结构或对象转换成二进制串的过程;反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。

特点

相对于其他格式,protobuf解析速度快(即序列化反序列化速度快),占用空间小,以及兼容性好,很适合做数据存储或网络通讯间的数据传输。

RPC

RPC 的全称是 Remote Procedure Call Protocol,中文名是远程过程调用协议

现在越来越多团队已经使用到了 RPC 的接口,但是,当你写了 RPC 接口后,你需要做一下接口测试,保证这些接口的稳定性~

gRPC

是什么

你可以理解为,gRPC 是基于 RPC 封装的一个开源框架,是基于 HTTP2 设计的~所以 gRPC 的优点自然也包含了 HTTP2 的优点:

  • 数据传输二进制分帧
  • 多路复用
  • 服务端推送
  • 头部压缩

是怎么传输的?

传输示例图

从上图和文档中可以看出,用 gRPC 来进行远程调用服务,客户端 (client) 仅仅需要 gRPC Stub(为啥叫存根?) ,通过 Proto Request 向 gRPC Server 发起服务调用,然后 gRPC Server通过Proto Response(s) 将调用结果返回给调用的 client。

小结

RPC 是一种远程程序调用,可以像在本地一样去调用远程的方法。

gRPC 是谷歌的一套 rpc 框架。grpc 的 rpc 服务是基于 http2 协议的。

protobuf 以一种结构化数据,编写 protobuf 文件,然后通过 protoc 编译器编译成多种语言的 rpc 服务文件。

JSON-RPC 接口

JSON-RPC 是一种轻量级的 RPC (远程过程调用)协议,可以使用 HTTP 协议进行通信,并以 JSON 格式传输数据。Postman 是一个流行的 API 开发工具,可以轻松地使用它来测试和调用 JSON-RPC 接口。

使用 Apifox 发送 JSON-RPC 接口

使用 Apifox 也能发送 JSON-RPC 接口,Apifox支持中文显示,非常方便上手~

Apifox

关于 Apifox

  • 集成了 API 文档、API 调试、API Mock、API 自动化测试 API 一体化协作平台
  • 拥有更先进的 API 设计/开发/测试工具
  • Apifox = Postman + Swagger + Mock + JMeter