Google高性能RPC框架gRPC 1.0.0发布

鉴于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。

相关文章: 

  • 谷歌发布的首款基于HTTP/2和protobuf的RPC框架:GRPC

  • C#中使用gRPC

  • Google高性能RPC框架gRPC 1.0.0发布

原文地址:http://www.infoq.com/cn/news/2016/08/grpc-1-0


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java打开文件(Windows exe,应用文件exe,以及其他任何格式的文件)

转载自 java打开文件(Windows exe,应用文件exe,以及其他任何格式的文件) 使用java代码打开任何格式的文件 public static void main(String[] args) throws IOException { openWindowsExe(); openExe(); openFile(); } //用 Java 调用win…

新闻发布项目——接口类(commentDao)

package bdqn.newsMange.Dao;import java.util.List;import bdqn.newsMange.entity.comment;/*** 新闻评论的接口* author Administrator**/ public interface commentDao {//查询public List<comment>getCommentAll();//根据id查询新闻信息public List<comment> g…

delphi7存取配置文件与sqlserver数据库连接_SQL Server基础知识概念要点详细讲解

SQL Server基础知识概念要点详细讲解目录基础概念1、网状模型数据库2、层次模型数据库3、关系模型数据库知识点实例总结基础概念SQL语言中&#xff0c;between and表示包括两边参数。%取余&#xff0c;/取商模式&#xff1a;在数据库三级模式结构中&#xff0c;对数据库中全部的…

.Net Core 中的包、元包与框架(Packages, Metapackages and Frameworks)

包&#xff0c;元包与框架 本文翻译自 Packages, Metapackages and Frameworks。 .Net Core 是一种由 NuGet 包组成的平台。一些产品体验受益于代码包的细粒度定义&#xff0c;而另一些受益于粗粒度的定义&#xff0c;这两种定义都是有用的&#xff0c;不能绝对地说哪个好与不好…

面试项目 java-服务端2 18h58

idea2017对mybatis plugin支持不是很好 标准的meaven项目用谁都一样 archetype是官网提供的模板项目 .gitignore文件非常的重要配置 Meven的pom文件 项目的包结构 Mybatis三剑客

Java剪切板操作大全

转载自 Java剪切板操作大全1. 概述提起剪切板&#xff0c;一般都是在桌面系统或工具中使用。目前&#xff0c;操作Java剪切板有两种形式&#xff0c;这也对应着两种不同的技术Swing和JavaFX。而剪切板有可以分为系统剪切板和自定义剪切板。顾名思义&#xff0c;系统剪切板可以…

君威u0073故障码解决_顽疾修复过程,君威没倒挡的变速箱故障就是这样修好

君威没倒挡的变速箱故障表现&#xff1a;开了18万公里的君威有没有倒挡的故障发生。每当这时&#xff0c;要重新启动能恢复。但是&#xff0c;出现的没倒挡的次数逐渐增多。没检查出故障码。顽疾修复过程&#xff0c;君威没倒挡的变速箱故障就是这样修好&#xff1a;检查君威变…

idea创建标准的meaven项目

若没有jdk 则这样配置 就是下拉框默认没有jdk1.7 初始化完成了

新闻发布项目——接口类(categoryTBDao)

package bdqn.newsMange.Dao;import java.util.List;import bdqn.newsMange.entity.categoryTB;/*** 新闻类别的接口* author Administrator**/ public interface categoryTBDao {//查询所有的类别public List<categoryTB> getCategoryTBAll();//添加新闻类别public int …

controller属于哪一层_别急着换5G,4G手机同样值得考虑!哪几款安卓手机称得上4G机皇?...

今年已经进入了5G手机大战&#xff0c;目前有不少厂商都推出了自家的5G旗舰。虽说5G是以后的主流&#xff0c;但目前入手5G手机还为时尚早&#xff0c;毕竟距离5G全面普及还有至少2年时间&#xff0c;5G的套餐费用也高出许多。当前一些4G旗舰机型价格下降幅度不小&#xff0c;马…

基于.NET SingalR,LayIM2.0实现的web聊天室

LayIM官网 http://www.layui.com/doc/layim.html 博客教程&#xff1a;http://www.cnblogs.com/panzi/p/5767095.html 项目说明&#xff1a;基于.NET SingalR,LayIM2.0实现的web聊天室&#xff0c;功能如下&#xff1a; 注册登录 好友聊天&#xff0c;发送图片、文件 群组聊天&…

java验证身份证号码是否有效源代码

转载自 java验证身份证号码是否有效源代码1、描述 用java语言判断身份证号码是否有效&#xff0c;地区码、出身年月、校验码等验证算法2、源代码package test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import …

idea初始化git 初始化git仓库

git status 查看变化 主干发布 分支开发 git 初始化 和git的分支完成了

互换性与技术测量教材pdf_【检验】临床生物化学检验技术(第6版)人民卫生出版社【电子教材PDF】【人卫教材电子版】...

内容简介为了顺应医学教育综合改革的发展趋势&#xff0c;推动我国医学检验技术专业的发展和学科建设&#xff0c;针对四年制医学检验技术专业人才的培养目标和培养模式&#xff0c;贯彻四年制教育思想&#xff0c;体现适合四年制教学需求的课程体系建设&#xff0c;教育部高等…

MyEclipse生成Javadoc帮助文档

转载自 MyEclipse生成Javadoc帮助文档 Javadoc是Sun公司提供的一个技术&#xff0c;它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说&#xff0c;只要在编写程序时以一套特定的标签作注释&#xff0c;在程序编写完成后&#xff0c;通过…

Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件

对于redis-sentinel我在之前的文章中Redis集群~StackExchange.redis连接Twemproxy代理服务器 已经说过&#xff0c;它是一个仲裁者&#xff0c;当主master挂了后&#xff0c;它将在所有slave服务器中进行选举&#xff0c;选举的原则当然可以看它的官方文章&#xff0c;这与我们…

新闻发布项目——接口类(BaseDao)

package bdqn.newsMange.Dao; /*** 公共类* author Administrator**/ import java.sql.*; import java.util.List; public class BaseDao {Connection connnull;PreparedStatement psnull;ResultSet rsnull;public Connection getConnection() throws ClassNotFoundException, …

docker容器的标准使用过程_phpStorm中使用xdebug工具调试docker容器中的程序

最近使用了docker容器来构建项目&#xff0c;这种方式虽然极大的加快了构建的项目速度&#xff0c;但是也会对之前的本地开发带来一些挑战&#xff0c;比如今天讲到的调试程序&#xff0c;大家对于xdebug一定不会陌生&#xff0c;但是如果php-fpm放到了容器里面&#xff0c;又该…

Meaven的pom文件配置

archtype自动生成的 直接复制讲解一下好了 https://search.maven.org/ maven中央仓库 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.or…

Google 的开源方法论

没有开源&#xff0c;Google 不会有今天的成功。在本周举行的北美 Linux 大会上&#xff0c;Google 工程师 Merlin 从一个第三方视角概括了 Google 是如何使用和为开源做出贡献。自 2002 年以来&#xff0c;Marc Merlin 一直担任 Google 的工程师&#xff0c;期间做过许多开源项…