写点什么

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:005028
用户头像

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

关注

评论

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

低代码行业浅析

凹凸实验室

前端 低代码

计划被打乱怎么办?

Tiger

28天写作

如何使用Kubernetes里的NetworkPolicy

汪子熙

Kubernetes k8s 28天写作 docker build 12月日更

大型软件交付项目注意事项53条

IT民工大叔

项目管理 SaaS

科技令生活“焕然一新”|年末清洁黑科技:美菱洗地机!

联营汇聚

美菱洗地机

Linux之find常用命令汇总

入门小站

Flink 实践教程-进阶(5):排序(乱序调整)

腾讯云大数据

流计算 Oceanus

我的2021之感谢有你们(上篇)

坚果

年终总结 28天写作 12月日更 盘点2021

给弟弟的信第27封|学会说不,别让面子害了你

大菠萝

28天写作

探索 Design Token

凹凸实验室

前端 设计

智汇华云 | ArSDN给VMware带来了什么

华云数据

28《重学JAVA》--注解

杨鹏Geek

Java25周年 28天写作 12月日更

AI实战分享 | 基于CANN的辅助驾驶应用案例

华为云开发者联盟

目标检测算法 CANN 昇腾 辅助驾驶 AscendCL

参加过 4 届 TiDB Hackathon 是一种什么体验? | TiDB Hackathon 选手访谈

PingCAP

实战大数据,HBase 性能调优指南

编程江湖

HBase

走访数年,编撰3年:你能看到的互联网企业案例最多的一本书

博文视点Broadview

行业分析| 实时音视频的未来

anyRTC开发者

音视频 WebRTC 实时通信 语音通话 视频通话

用户文章转载:P4 Rmdir 会自动删除空目录?不,没那么简单

龙智—DevSecOps解决方案

perforce P4 P4 Rmdir

直播预告|智能运维管理平台OMP核心特性及落地场景介绍

云智慧AIOps社区

DevOps 运维 AIOPS 智能运维 运维管理

【转】java开发之批处理框架 Spring Batch

@零度

JAVA开发 spring batch

拍乐云解析融合语音通话技术实践

拍乐云Pano

音视频 RTC 拍乐云 技术干货 融合语音通话

从翻硬币游戏看敏捷开发

华为云开发者联盟

敏捷 敏捷开发 软件开发 团队 开发

seata入门介绍与seata-service部署与验证(一)

恒生LIGHT云社区

架构 分布式 seata

Java序列化与反序列化

编程江湖

智汇华云 | 使用Kubeadm进行Kubernetes集群版本升级

华云数据

观点 | NoSQL 产品的 SaaS 化之路

RadonDB

数据库 nosql NoSQL 数据库

资料分享|kafka学习推荐书籍

Kafka中文社区

netty系列之:好马配好鞍,为channel选择配套的selector

程序那些事

Java Netty 程序那些事 12月日更

智汇华云 | 桌面云卓越体验下的协议技术解析

华云数据

带你详细了解 Node.js 中的事件循环

编程江湖

前端开发 node,js

【转】前端开发之React Native SDK 升级问题

@零度

前端 React Native

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