BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

gRPC 1.0发布!

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 Rays 关注 3 他的粉丝 发布于 2016年8月30日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

鉴于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支持多达十种语言,分别是:CC++C#GoJava (包括Java/Android)、 Node.jsObjective-CPHPPythonRuby。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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT