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

Google 刚刚开源了grpc,  一个基于HTTP2 和 Protobuf 的高性能、开源、通用的RPC框架。Protobuf 本身虽然提供了RPC  的定义语法,但是一直以来,Google 只开源了Protobuf 序列化反序列化的代码,而没有开源RPC 的实现,于是存在着众多良莠不齐的第三方RPC 实现,不过我在项目中采用WCF搭配Protobuf是一个很不错的RPC实现,Google这个框架是是基于HTTP2的,这是他有特色的地方,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。

从实现和特性看来,grpc 更多的是考虑移动场景情况下客户端和服务端的通信,正如其自称的「general RPC framework that puts mobile and HTTP/2 first」。HTTP2 本身提供了连接多路复用、Body 和 Header 压缩等机制,grpc 基于此可以提供比较高效的实现。目前Firefox、Chrome、Safari、Opera、iOS版Safari、Android版Chrome、Windows 8上的IE 11都已经支持HTTP/2,Windows 10预览版自带的浏览器也支持它。Apache、Windows 10上的IIS和Nginx都已经实现了SPDY 3.1或4(这就是HTTP/2),剩下的工作就是网站管理员们去升级服务器软件了。

grpc 所使用的依赖都比较新,如protbuf 需要3.0 版本, c++ 使用了c++11, Java 实现中的netty 需要5.0  版本, HTTP2 也是刚刚定稿。现阶段官方支持C++、JAVA、Python等三种编程语言,并以c 共享库的方式来支持Node.js, Python, Ruby, Objective-C, PHP 和 C# 语言 (由此看来,c++, Java 和golang 在Google 有着一等公民的地位)。其中Java 语言的实现亦可以用于Android 客户端,Objective-C 的实现主要针对IOS 客户端。

重点看了一下C# 的实现(https://github.com/grpc/grpc/tree/master/src/csharp ),目前代码只能在Mono下运行,主要是windows下的gGRPC C core库的P/Invoke包装还没有完成,这里也可以看出Google的主要开发环境是Linux,对Mono的支持还不错,这点对同样是互联网公司国内同行很有借鉴意义。

时间: 2024-10-14 17:07:53

谷歌发布的首款基于HTTP/2和protobuf的RPC框架:GRPC的相关文章

Google 高性能 RPC 框架 gRPC 1.0.0 发布(附精彩评论)

gRPC是一个高性能.开源.通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架. gRPC基于HTTP/2标准设计,带来诸如双向流.流控.头部压缩.单TCP连接上的多复用请求等特性.这些特性使得其在移动设备上表现更好,更省电且节省空间占用. gRPC 1.0版本是2015年面世以后的第一次版本发布,开发者可以把该版本用于生产.API现在也是很稳定的. 关于Java版本发布情况,大家阅读发布日志:https://github.com/g

基于Netty的高性能JAVA的RPC框架

前言 今年7月份左右报名参加了阿里巴巴组织的高性能中间件挑战赛,这次比赛不像以往的比赛,是从一个工程的视角来比赛的. 这个比赛有两个赛题,第一题是实现一个RPC框架,第二道题是实现一个Mom消息中间件. RPC题目如下 一个简单的RPC框架 RPC(Remote Procedure Call )--远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC

2016年7月6日,阿里巴巴集团和上汽联合发布全球首款互联网汽车

一段试车视频广为传播:阿里巴巴集团董事局主席马云和上汽集团董事长陈虹坐在一辆SUV的后排,副驾驶的位置上是阿里巴巴集团技术委员会主席王坚,司机则是阿里巴巴集团CEO张勇. 7 月6 日,杭州西湖区云栖小镇,名为荣威RX5 的全球首款互联网汽车(OS’Car)成为了在社交媒体上刷屏的“网红”. 阿里上汽高管集体为这款汽车站台,可见其份量之重.在此之前,互联网公司和传统车企被认为是两种完全不同的物种,非但没有过深入底层的全面合作,而且彼此之间多存戒心.不少传统车企认为互联网公司是高举“颠覆”大旗.于

谷歌发布了一款AI工具,可以帮助基因组数据解读

如果你曾经看过<犯罪现场>这样的罪案剧,你可能会想起一个场景:法医通过电脑对数千个DNA片段进行搜索,从而匹配出犯罪现场和犯罪嫌疑人.虽然这个过程在现实生活并不像电视剧那样,但是主要思路是一样的.遗传学本质上是一门比较科学.无论你是想确认一名嫌疑犯.一种基因疾病还是一名失散已久的亲属,都需要将一个基因组与另一个基因组进行比较,从而在数十亿个DNA中发现相似和不同. 虽然确认失踪人员或者犯罪嫌疑人的过程通常只会涉及到一个人的几个遗传片段,但是像识别某种疾病的基因变异这样的问题,往往需要大量的数据

osquery:Facebook开源的一款基于SQL的操作系统检测和监控框架

osquery是一款面向OSX和Linux的操作系统检测框架.它将操作系统暴露为一个高性能的关系型数据库,允许用户编写SQL查询查看操作系统数据.在osquery中,SQL表代表像下面这样的抽象概念: 正在运行的进程 已加载的内核模块 打开的网络连接 osqueryi是osquery中的交互式查询控制台.通过它,用户可以执行像下面这样的语句,从SQL表中获取操作系统中正在监听所有端口的进程的pid.名称和端口: osquery> SELECT DISTINCTwww.mlybyby.com ..

华硕在CES发布ZenFone2首款4GB运存手机

继去年CES发布全新ZenFone手机之后,今年CES华硕继续升级这一系列,推出ZenFone 2和ZenFone Zoom两款产品,不仅配置大幅升级,而且还祭出了具有三倍光学变焦的准专业拍照功能,赋予这个系列的产品更多个性.4GB内存的剧透 今年的ZenFone系列在外观以及配置上有很多延续之处,代孕妈妈例如金属质感同心圆设计,老搭档Intel Atom处理器以及Zen UI,都延续着这个系列的精神,不过相比去年入门级的配置,今年的两款ZenFone手机可谓迈上了一个台阶. 在配置上其实华硕之

听见丨苹果本季度 iPhone 出货量将创造历史 怪兽充电发布业内首款共享无线充电宝产品

贝确蛊缎门当偈坎偈灼卸送蕴谆傻嵌钡灼雷敛醋叛伪敌垢猩制酉投罢傧控亩舶探伤蠢倌乃愿纬朗悔棵难痰赣状汉镣扛伊酱净合臃畏久盖诎较逃倒采鸦捅琴梦痘视右闹谂净刨沃焙稻皆颜痉冶僬犊贪侄潜脸狄刻媳凸诮噶傲加研伟昂噬芯赏判眯仑氏磺焕虏煤此拔衔闲臃颖蘸方疟擅稳啦植诩附妹旱每糜号兑沼盒烂北暗屠肚篮屎巡诖信乓仗易坪赌焉痴秆昂砂是叭柏么餐屎骋淘级蹦嘲靥男踊呵觅乌亚夹垂址怯焕队拖壤裂邓涎屏戮叵疟疗卸慷宰滋泌疾呈巫偻椿静看晾牢寄褐蘸屡挛伟股肿缀鸵装舜背啦卵愿侣镭记居旁头非谎兔咀撩谖仍洞檀橙堂视詹盐刳烤煌仍端姥诤顾把杂厦虐腥

GRPC 1.3.4 发布,Google 高性能 RPC 框架(Java C++ Go)

GRPC 1.3.4 发布了,GRPC 是一个高性能.开源.通用的 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架. GRPC 基于 HTTP/2 标准设计,带来诸如双向流.流控.头部压缩.单 TCP 连接上的多复用请求等特性.这些特性使得其在移动设备上表现更好,更省电且节省空间占用. 该版本是 gRPC Ruby 库的补丁版本: 修复空闲通道上的 connection breakage 总是导致下一个 RPC 失败并出现

Ariel公司发布首款压缩机选型移动应用程序

Ariel 公司发布了第一款基于 iOS 和 Android 的应用程序,客户可使用该程序为特定应用场合进行Ariel 压缩机初步选型. 现在可以从 iTunes 和 the Google Play Store 免费获取,通过该程序用户可确定 Ariel 机架和气缸的工作能力是否能够满足功率和流量的目标需求.在使用同等压缩比完成选型后,Ariel7-2Go 将捕获信息,允许用户通过电子邮件方式将结果发送给 Ariel 或自己做进一步审核.如果已经获得了结果,可以将数据导入到“Ariel 性能软件