写点什么

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

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

关注

评论

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

全国信安标委杨建军秘书长一行莅临青藤,调研指导网络安全标准和产业工作

青藤云安全

网络安全 青藤云安全

火山引擎DataTester :让字节“跳动”起来的A/B实验平台

字节跳动数据平台

大数据 火山引擎 A/B 测试

人工智能自然语言处理之数据增强去噪类别不平衡模型轻量化

XiaoChao_AI

人工智能 nlp 数据预处理 11月月更

个保法一周年:APP监听?算法为洪水猛兽?看看专家如何解读

科技热闻

为啥不适合,依然有很多人大张旗鼓搞企业内部开源?(下)

laofo

研发效能

vue中的几个高级概念

yyds2026

Vue

Vue虚拟dom是如何被创建的

yyds2026

Vue

webpack配置优化,让你的构建速度飞起

Geek_02d948

webpack

Nodejs相关ORM框架分析

coder2028

node.js

webpack热更新原理(面试大概率会问)

Geek_02d948

webpack

Nodejs+Redis实现简易消息队列

coder2028

node.js

人工智能机器学习之Bagging算法

XiaoChao_AI

人工智能 机器学习 11月月更

人工智能自然语言处理之Transformer阐述

XiaoChao_AI

人工智能 自然语言处理 Transformer 11月月更

蜂巢再获权威认可 | 一个被甲方、乙方都认可的测评

青藤云安全

网络安全

深度理解Redux原理并实现一个redux

夏天的味道123

React

深入分析React-Scheduler原理

xiaofeng

React

升级到React-Router-v6

xiaofeng

React

js作用域、作用域链和它的一些优化

hellocoder2029

JavaScript

深度讲解React Props

夏天的味道123

React

Element UI 省市区数据联动

源字节1号

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

几个你必须知道的React错误实践

xiaofeng

React

vue3实战-完全掌握ref、reactive

yyds2026

Vue

彻底搞懂React-hook链表构建原理

夏天的味道123

React

网易数帆加入星策社区,携手推进企业智能化转型进程

星策开源社区

开源 AI 开源社区 企业转型 数智化转型

Spring框架中都用到了哪些设计模式 ?

千锋IT教育

人工智能机器学习之Boosting算法

XiaoChao_AI

人工智能 机器学习 11月月更

简单两步,使用 cache 加快极狐GitLab CI/CD 构建速度

极狐GitLab

DevOps CI/CD cache runner 极狐GitLab

同事每天早下班,原来是用了这8个开发工具

慕枫技术笔记

后端 开发 11月月更

【鲲鹏BoostKit】OminiRuntime ——高效统一的大数据分析Runtime底座

极客天地

webpack模块化的原理

Geek_02d948

webpack

Nodejs:ESModule和commonjs,傻傻分不清

coder2028

node.js

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