写点什么

gRPC 1.0 发布!

  • 2016-08-29
  • 本文字数:931 字

    阅读完需:约 3 分钟

鉴于 gRPC 已进入稳定版分支,并对应用于生产中准备就绪,Google 发布了 gRPC 1.0

gRPC 源于被称为 Stubby 的 Google 内部项目,早期是用于一些 Google 内部服务间的通信。 18 个月前 Google 开源了 gRPC 框架,希望借此 gRPC 能被更广泛地采纳,并在调用 Google 所提供的服务时、通过互联网与其它服务通信时或在自身产品内部应用 gRPC。

gRPC 是与平台无关的 RPC 系统,它使用 Protocol Buffers (ProtoBuf) IDL 定义终端服务和所传输的消息负载,进而可为多种语言生成存根进程(stub)。当前在 Linux、Mac 和 Windows 平台上,gRPC 支持多达十种语言,分别是: C C++ C# Go Java (包括 Java/Android )、 Node.js Objective-C PHP Python Ruby 。gRPC 原生地使用 C、Go 和 Java 语言编程实现,通过包装 C 函数库提供给其它语言使用。为了显示各种 gRPC 实现的通信延迟情况对比,Google 给出了在同一数据中心中不同虚拟机实例间的通信性能精要报告。对于单一的同步安全消息,报告显示作为基准的 Netperf 的延迟大约为 100 微秒,而 C++、Java 和 C#语言实现的延迟大约在 200 到 300 微秒,Ruby、Python 和 Node.js 语言实现的延迟分别在 700 微秒、900 微秒和 1,100 微秒左右。

gRPC 将需传输的消息使用 Protocol Buffers 3.0 序列化为二进制格式。相对于文本格式而言,ProtoBuf 方式可提供更优的性能。据 Google 工程师 Kelsey Hightower 介绍,ProtoBuf 编码的消息比 JSON 格式消息的大小降低了一半,而序列化和反序列化所用的时间仅为后者的三分之一。

与单一 RPC 中一个请求紧跟着一个响应的方式不同,gPRC 使用 HTTP/2 提供客户和服务器间的单向或双向流。gRPC 支持同步通信和异步通信,及 SSL/TLS 和 OAuth2(使用 Google API)方式的认证。

gRPC 支持以 CocoaPods、gem、Gradle、Maven、npm、NuGet、pecl、pip 或 Docker 镜像等方式提供二进制文件,这简化了安装过程。

据Google 宣称,Cisco、CoreOS、Juniper、Netflix 和Square 等企业内部正在使用gRPC。

查看英文原文: gRPC 1.0 is Ready for Production


感谢百占辉对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-08-29 19:004516
用户头像

发布了 227 篇内容, 共 76.7 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

Git进阶(七): 打标签

No Silver Bullet

git 学习 12月日更

音视频学习合集

Fenngton

内容合集 签约计划第二季

JVM性能调优之内存优化与GC优化实战

Ayue、

JVM jvm调优 技术专题合集

Flink 实践教程-入门(9):Jar 作业开发

腾讯云大数据

flink 流计算 Oceanus

面试官说:你来设计一个短链接生成系统吧

秦怀杂货店

Java 系统架构 系统 短链接

「架构实战营」模块一作业

Vincent

「架构实战营」

自定义 View:绘制垂直正弦函数

Changing Lin

12月日更

了解 JVM 的方法调用

Ayue、

JVM 技术专题合集

乔布斯家app下架上架杂记

张老蔫

28天写作

浅谈Linux内存管理

lecury

Linux 内存管理 经验分享、

浅谈Linux虚拟文件系统

lecury

Linux 文件系统 经验分享、

Arthas阿里开源的Java诊断工具

Ayue、

JVM 技术专题合集

眼耳鼻舌身意,严肃地聊一聊元宇宙的“技术拼图”

脑极体

浅谈Linux Cgroups机制

lecury

Linux Cgroups 经验分享、

JVM 性能诊断工具

Ayue、

JVM 技术专题合集

浅谈Linux线程模型

lecury

Linux 线程 经验分享、

纯css实现117个Loading效果(下)

德育处主任

css3 大前端 纯CSS css特效

程序员写作模版献给懵逼的你

jerry

浅谈Linux进程模型

lecury

Linux 进程 经验

域控安全之域渗透

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

【Redis集群原理专题】分析一下相关的Redis集群模式下的脑裂问题!

洛神灬殇

redis 分布式系统脑裂 集群 脑裂 12月日更

音视频实战(1)- 音频质量关键指标之QoE

liuzhen007

签约计划第二季

给弟弟的信第2封|关于时间管理这件事

大菠萝

28天写作

Linux内核技术分享

lecury

内容合集 签约计划第二季

升级【爸爸程序员】了?用Python给自己的宝贝下载200+绘本动画吧!

梦想橡皮擦

12月日更

操作系统:Linux下的防火墙

程序员架构进阶

Linux 操作系统 防火墙 Firewalld 12月日更

如何在 ASP.NET Core 中重写 URL

喵叔

28天写作 12月日更

全方位认识 JVM

Ayue、

内容合集 技术专题合集

流处理引擎Flink:编程 - 程序结构

正向成长

MySQL探秘(四):InnoDB的磁盘文件及落盘机制

程序员历小冰

MySQL 文件读写 28天写作 12月日更

25个带有酷炫动画的创意404错误页面,快给你的网站换上吧(持续更新)

海拥(haiyong.site)

大前端 28天写作 404 签约计划第二季 12月日更

gRPC 1.0发布!_开源_Abel Avram_InfoQ精选文章