产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

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

关注

评论

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

Rust 入门指南 (用 WASM 开发第一个 Web 页面)

王泰

rust Wasm WebAssenbly ​Rust

Jina 实例秀|七夕神器!比你更懂你女友的口红AI

Jina AI

七夕 神经网络架构搜索

开源一夏|ArkUI如何自定义弹窗(eTS)

坚果

开源 HarmonyOS OpenHarmony 8月月更

【黄啊码】MySQL入门—1、SQL 的执行流程

黄啊码

MySQL 8月月更

什么是 DevOps?看这一篇就够了!

胡说云原生

管理 DevOps 运维 开发 签约计划第三季

8月总结高频vue面试题

helloworld1024fd

Vue

SAP 人工智能解决方案的演进史 - 从 SAP Leonardo 到 SAP Data Intelligence

汪子熙

人工智能 机器学习 AI SAP 8月月更

转转测试环境的标签域名实践

转转技术团队

nginx hosts

仿钉钉审批流程后端 PHP 处理(一)

CRMEB

华为开源:聚焦开源基础软件,共建健康繁荣生态

科技热闻

React的理念与V16的架构变化

郭明

React

再次搞定 Ali 云函数计算 FC

小鑫同学

签约计划第三季

mysql进阶(二十六)MySQL 索引类型

No Silver Bullet

MySQL MySQL索引 8月月更

【黄啊码】MySQL入门—2、使用数据定义语言(DDL)操作数据库

黄啊码

MySQL 8月月更

Java 是否应该使用通配符导入( wildcard imports)

HoneyMoose

【LeetCode】分组的最大数量Java题解

Albert

LeetCode 8月月更

Java使用IReport导出复杂报表

源字节1号

微信小程序 软件开发 前端开发 后端开发

开源一夏 | 查询分页不只有limit,这四种分页方法值得掌握

知识浅谈

开源 8月月更

CentOS6搭建nginx+uwsgi+flask

haiger13

签约计划第三季

浅聊偏函数

掘金安东尼

JavaScript 函数式 8月月更

Jina 实例秀|基于神经搜索的网络安全威胁检测(一)

Jina AI

神经网络架构搜索 Python.

C#/VB.NET:在 Word 中设置文本对齐方式

Geek_249eec

C# word VB.NET 文本对齐

关于技术学习的6个观点

郭明

技术人

架构实战营模块三作业

zhihai.tu

MySQL之my.cnf配置文件

TimeFriends

8月月更

《The Google File System》新说

Joseph295

IDEA 自动导入的配置(Auto import)

HoneyMoose

语音社交app源码——具备哪些开发优势?

开源直播系统源码

软件开发 语聊房 直播系统源码 语音聊天系统 语音聊天app

《迁移学习导论》第2版,升级内容抢先看!

博文视点Broadview

STM32+SIM800C采用MQTT协议登录OneNet上传温湿度、MQ2烟雾浓度、GPS数据

DS小龙哥

8月月更

《福格行为模型》:如何养成好习惯?

郭明

读书笔记

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