当前位置:新闻中心行业动态 → 正文

gRPC1.0发布,来自Google的RPC框架

责任编辑:editor004 作者:禚娴静 |来源:企业网D1Net  2016-09-05 12:25:18 本文摘自:INFOQ

一直以来,构建一个高度可扩展且松耦合的系统是很困难的。来自Google的gRPC框架致力于解决这个领域问题。它自去年面世以来收到了社区的大量关注和使用。8月23日Google正式发布了gRPC的1.0版本,并可用于生产。在此次发布中增加了新版本对多语言的支持、API稳定性等,引起了社区广泛的关注。

gRPC是一个高性能、开源、通用的RPC框架,它基于Proto Buffers进行数据序列化,并将移动和HTTP/2作为设计的首要考虑因素。与单一RPC请求方式不同,gPRC使用HTTP/2提供客户和服务器间的单向或双向流,同时可以带来流量控制、头部压缩、单TCP连接上的多复用请求等特性。Google认为gRPC以“利用带宽和CPU效率、低延迟的方式来创建大规模分布式系统,可以应用在数据中心、移动应用程序、实时通信、物联网设备和API等,且有很好的表现。”而微服务是gRPC的主要目标。

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

gRPC是与平台无关的RPC系统。如下图所示,gRPC允许开发人员编写语言无关的服务定义,指定远程调用参数和返回类型。服务器端实现服务定义,并运行一个gRPC服务器来处理客户的调用;而客户端则部署支持客户端调用的服务器端实现存根。这些代码都可由gRPC基于服务定义和自选的开发语言在编译器的帮助下自动生成。这使得客户端应用程序可以像调用本地对象一样调用服务器端应用程序,从而帮助开发人员更容易地创建分布式应用程序和服务。

同时,gRPC也可以帮助处理高效的网络通信、认证和访问控制(如SSL/TLS和OAuth2方式的认证)、分布式跟踪等问题。gRPC与Proto Buffers一起可以帮助实现松耦合、工程化的速度、更高的可靠性以及操作的易用性。这也是在过去的15年中,Google内部采用Stubby和RPC框架解决的问题。Google声称期望通过将这一框架开源给社区,让更多的组织和社区收益。

自2015年至今,我们也看到gRPC项目在很多方面的改进。这次1.0版本中主要包括以下几点:

对多种语言绑定的支持,如C ++、Java、Go、Node、Ruby、Python和C#,并且可以跨Linux、Windows和Mac多种操作系统。 Objective-C和Android的Java库也在迁移到1.0版本,使移动应用能够更有效地连接到后端服务。 在安装方面,gRPC支持以CocoaPods、gem、Gradle、Maven、npm、NuGet、pecl、pip或Docker镜像等方式提供的二进制文件,这大大简化了安装过程。在1.0版本中,增加了绝大多数语言单行安装、向后兼容性等的支持。 gRPC1.0依赖于Protocol Buffers最新版本3.0。

此外,gRPC1.0的核心协议和API在可用性、互操作性、性能等方面都有所提升。相对于文本格式而言,ProtoBuf方式可提供更优的性能。据Google工程师Kelsey Hightower介绍,ProtoBuf编码的消息比JSON格式消息的大小降低了一半,而序列化和反序列化所用的时间仅为后者的三分之一。为了显示各种gRPC实现的通信延迟情况对比,Google给出了在同一数据中心中不同虚拟机实例间的通信性能精要报告。对于单一的同步安全消息,报告显示作为基准的Netperf的延迟大约为100微秒,而C 、Java和C#语言实现的延迟大约在200到300微秒,Ruby、Python和Node.js语言实现的延迟分别在700微秒、900微秒和1,100微秒左右。

不得不说,gRPC1.0版本的发布标志着一个重要里程碑的诞生。与此同时,社区对于gRPC的兴趣迅速提升,同时随着像Netflix、CoreOS、 Square等公司和开源项目的使用,必然能够推动gRPC作为一个通用RPC框架的发展以及相关生态圈的成熟,从而使更多的组织和社区受益。

你可以在这里查阅1.0版本的更多发布细节。如果你感兴趣,不妨开始尝试gRPC并通过邮件列表来给予反馈。

关键字:GooglegRPC

本文摘自:INFOQ

x gRPC1.0发布,来自Google的RPC框架 扫一扫
分享本文到朋友圈
当前位置:新闻中心行业动态 → 正文

gRPC1.0发布,来自Google的RPC框架

责任编辑:editor004 作者:禚娴静 |来源:企业网D1Net  2016-09-05 12:25:18 本文摘自:INFOQ

一直以来,构建一个高度可扩展且松耦合的系统是很困难的。来自Google的gRPC框架致力于解决这个领域问题。它自去年面世以来收到了社区的大量关注和使用。8月23日Google正式发布了gRPC的1.0版本,并可用于生产。在此次发布中增加了新版本对多语言的支持、API稳定性等,引起了社区广泛的关注。

gRPC是一个高性能、开源、通用的RPC框架,它基于Proto Buffers进行数据序列化,并将移动和HTTP/2作为设计的首要考虑因素。与单一RPC请求方式不同,gPRC使用HTTP/2提供客户和服务器间的单向或双向流,同时可以带来流量控制、头部压缩、单TCP连接上的多复用请求等特性。Google认为gRPC以“利用带宽和CPU效率、低延迟的方式来创建大规模分布式系统,可以应用在数据中心、移动应用程序、实时通信、物联网设备和API等,且有很好的表现。”而微服务是gRPC的主要目标。

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

gRPC是与平台无关的RPC系统。如下图所示,gRPC允许开发人员编写语言无关的服务定义,指定远程调用参数和返回类型。服务器端实现服务定义,并运行一个gRPC服务器来处理客户的调用;而客户端则部署支持客户端调用的服务器端实现存根。这些代码都可由gRPC基于服务定义和自选的开发语言在编译器的帮助下自动生成。这使得客户端应用程序可以像调用本地对象一样调用服务器端应用程序,从而帮助开发人员更容易地创建分布式应用程序和服务。

同时,gRPC也可以帮助处理高效的网络通信、认证和访问控制(如SSL/TLS和OAuth2方式的认证)、分布式跟踪等问题。gRPC与Proto Buffers一起可以帮助实现松耦合、工程化的速度、更高的可靠性以及操作的易用性。这也是在过去的15年中,Google内部采用Stubby和RPC框架解决的问题。Google声称期望通过将这一框架开源给社区,让更多的组织和社区收益。

自2015年至今,我们也看到gRPC项目在很多方面的改进。这次1.0版本中主要包括以下几点:

对多种语言绑定的支持,如C ++、Java、Go、Node、Ruby、Python和C#,并且可以跨Linux、Windows和Mac多种操作系统。 Objective-C和Android的Java库也在迁移到1.0版本,使移动应用能够更有效地连接到后端服务。 在安装方面,gRPC支持以CocoaPods、gem、Gradle、Maven、npm、NuGet、pecl、pip或Docker镜像等方式提供的二进制文件,这大大简化了安装过程。在1.0版本中,增加了绝大多数语言单行安装、向后兼容性等的支持。 gRPC1.0依赖于Protocol Buffers最新版本3.0。

此外,gRPC1.0的核心协议和API在可用性、互操作性、性能等方面都有所提升。相对于文本格式而言,ProtoBuf方式可提供更优的性能。据Google工程师Kelsey Hightower介绍,ProtoBuf编码的消息比JSON格式消息的大小降低了一半,而序列化和反序列化所用的时间仅为后者的三分之一。为了显示各种gRPC实现的通信延迟情况对比,Google给出了在同一数据中心中不同虚拟机实例间的通信性能精要报告。对于单一的同步安全消息,报告显示作为基准的Netperf的延迟大约为100微秒,而C 、Java和C#语言实现的延迟大约在200到300微秒,Ruby、Python和Node.js语言实现的延迟分别在700微秒、900微秒和1,100微秒左右。

不得不说,gRPC1.0版本的发布标志着一个重要里程碑的诞生。与此同时,社区对于gRPC的兴趣迅速提升,同时随着像Netflix、CoreOS、 Square等公司和开源项目的使用,必然能够推动gRPC作为一个通用RPC框架的发展以及相关生态圈的成熟,从而使更多的组织和社区受益。

你可以在这里查阅1.0版本的更多发布细节。如果你感兴趣,不妨开始尝试gRPC并通过邮件列表来给予反馈。

关键字:GooglegRPC

本文摘自:INFOQ

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^