专业的编程技术博客社区

网站首页 > 博客文章 正文

gRPC 基本概念(HTTP/2+ProtoBuf)(grpc和http2的关系)

baijin 2024-10-16 07:44:05 博客文章 7 ℃ 0 评论

What is gRPC?

gRPC是由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标准设计。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表