鉴于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跨平台或扫描二维码关注

Google高性能RPC框架gRPC 1.0.0发布相关推荐

  1. 高性能RPC框架gRPC竟恐怖如斯~

    RPC.gRPC.Thrift.HTTP,大家知道它们之间的联系和区别么?这些都是面试常考的问题,今天带大家先搞懂 RPC 和 gRPC. 在讲述 gRPC 之前,我们需要先搞懂什么是 RPC. 不 ...

  2. 基于Protobuf的分布式高性能RPC框架——Navi-Pbrpc

    基于Protobuf的分布式高性能RPC框架--Navi-Pbrpc 二月 8, 2016 1 简介 Navi-pbrpc框架是一个高性能的远程调用RPC框架,使用netty4技术提供非阻塞.异步.全 ...

  3. TARS-PHP:PHP构建高性能RPC框架

    内容来源:2018 年 5 月 19 日,阅文集团高级开发工程师梁晨在"PHPCon China 2018 技术峰会"进行<TARS-PHP:PHP构建高性能RPC框架> ...

  4. 高性能Web框架FastAPI v0.62.0

    介绍: FastAPI是一个高性能Web框架,用于构建API. 主要特性: 1.快速:非常高的性能,与NodeJS和Go相当 2.快速编码:将功能开发速度提高约200%至300% 3.更少的错误:减少 ...

  5. python rpc框架-python使用rpc框架gRPC的方法

    概述 gRPC 是谷歌开源的一个rpc(远程程序调用)框架,可以轻松实现跨语言,跨平台编程,其采用gRPC协议(基于HTTP2). rpc: remote procedure call, 翻译过来就是 ...

  6. 高性能RPC框架—----------------------Dubbo一站式快速入门

    https://blog.csdn.net/tangyang8941/article/details/88025412 一.Web应用架构的演变 ​    随着互联网的发展,网站应用的规模不断扩大,W ...

  7. C++框架学习一:朴实无华的高性能RPC框架推荐

    一个高性能的RPC框架: 介绍: 框架特性 操作系统:Linux 编程语言:C++14 完全独立:不依赖任何第三方库 高性能:微秒级响应 高并发:单机百万连接 IO多路复用:epoll 连接池 线程池 ...

  8. tars框架 php,框架简介 - tars-server - 《TarsPHP - PHP构建高性能RPC框架》 - 书栈网 · BookStack...

    tars-server说明文档 简介 tars-server是用php语言实现tars服务的基础框架包.主要包含服务启停.路由解析.协议处理.事件上报等. 如何使用 tars-server使用comp ...

  9. gRPC:Google开源的基于HTTP/2和ProtoBuf的通用RPC框架

    gRPC:Google开源的基于HTTP/2和ProtoBuf的通用RPC框架 gRPC:Google开源的基于HTTP/2和ProtoBuf的通用RPC框架 Google Guava官方教程(中文版 ...

最新文章

  1. vue 心跳监控_【笔记】vue中websocket心跳机制
  2. 来看看CDN网络安全防护的方案
  3. 动态代理源码分析,实现自己的动态代理
  4. Python2 常见问题
  5. .NET测试用例写的好不好?让变种来测试一下!
  6. 51Nod.1766.树上最远点对(树的直径 RMQ 线段树/ST表)
  7. Linux(CentOS)安装apache(httpd),其他电脑无法访问的原因 【iptables打开某端口】
  8. sed很强大的文本操作命令
  9. JavaScript输入输出
  10. 总有人黑 JavaScript?那是不知道它有多好用吧!
  11. CSS3渐变——线性渐变
  12. 记错严格管理时间---记一次老师讲的学习方法
  13. 语音识别怎么最终识别出字?
  14. mysql 官方docker_用docker安装官方mysql
  15. eclipse里maven install时,报错提示jdk为无效的目标版本:1.7
  16. 修改VSCode中.exe文件的生成位置(亲测有效)
  17. MEMS传感器工作原理总结
  18. 海康/大华/宇视等网络摄像头云台控制功能探测方法解析
  19. SolidEdge完整安装教程-亲测
  20. 如何看懂财务报表:(一)如何下载财报

热门文章

  1. 测试你的Python 水平----6
  2. java加载dll UnsatisfiedLinkError: no mydll in java.library.path
  3. 2015年网页设计最佳颜色搭配的9种选择
  4. json_encode ajaxReturn getJSON
  5. Oracle 常用sql场景应用(未完待续......)
  6. Blazor University (6)组件 — 组件事件
  7. 使用.Net6中的System.Text.Json遇到几个常见问题及解决方案
  8. Avalonia跨平台入门第八篇之控件的拖放
  9. 一起来庆祝 .NET 20 周年!
  10. 如何让 Timer 在特定时间点触发?