nginx 从 1.13.10 版本开始支持 gRPC

nginx gRPC 特性链接

什么是 gRPC

gRPC 是由 Google 主导开发的 RPC 框架,使用 HTTP/2 协议并用 ProtoBuf 作为序列化工具。

其客户端提供 Objective-C、Java 接口,服务器侧则有 Java、Golang、C++ 等接口,从而为移动端(iOS/Androi)到服务器端通讯提供了一种解决方案。 当然在当下的环境下,这种解决方案更热门的方式是 RESTFull API 接口。该方式需要自己去选择编码方式、服务器架构、自己搭建框架(JSON-RPC)。gRPC 官方对 REST 的声音是:

  • 和 REST 一样遵循 HTTP 协议 (明确的说是 HTTP/2),但是 gRPC 提供了全双工流
  • 和传统的 REST 不同的是 gRPC 使用了静态路径,从而提高性能
  • 用一些格式化的错误码代替了 HTTP 的状态码更好的标示错误

gRPC 用例

gRPC 用于解决移动客户端和 WEB 客户端最后一公里问题,因为它可以生成安卓和 iOS 库,并且用标准的基于 http/2 作为传输层以便穿越代理和防火墙。关于开发用在浏览器端的 JS 库的工作也在进行中了。除此之外,它也是理想的微服务互联工具,不仅因为它的核心协议是非常高效的,还因为框架具有可插拔的认证方式、负载均衡机制等。谷歌自身也正在过渡用它来连接微服务。