七叶笔记 » golang编程 » gRPC 基本概念(HTTP/2+ProtoBuf)

gRPC 基本概念(HTTP/2+ProtoBuf)

What is gRPC?

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

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

gRPC官方对 REST 的声音是:

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

至于是否要选择用gRPC。对于已经有一套方案的团队,可以参考下。如果是从头来做,可以考虑下gRPC提供的从客户端到服务器的整套解决方案,这样不用客户端去实现http的请求会话,JSON等的解析,服务器端也有现成的框架用。从15年3月到现在gRPC也发展了好长时间,慢慢趋于成熟。

gRPC具有以下重要特征:

  • 强大的 IDL 特性。RPC使用ProtoBuf来定义服务,ProtoBuf是由Google开发的一种数据序列化协议,性能出众,得到了广泛的应用。
  • 支持多种语言。支持C++、Java、Go、 Python 、Ruby、C#、Node.js、Android Java、Objective-C、PHP等 编程语言
  • 基于HTTP/2标准设计。

相关文章