授权协议: Apache-2.0
操作系统: 跨平台
收录时间: 2018-10-26
提 交 者: 局长

gRPC-Web 即 gRPC for Web Clients。顾名思义,gRPC-Web 是一个 JavaScript 库,使 Web 应用程序能够直接与后端 gRPC 服务通信,不需要 HTTP 服务器充当中介。

gRPC-Web GA 正式版已发布,稳定性也已足够,并可在生产环境中使用。

目前 gRPC-Web 通过特殊网关代理连接到 gRPC 服务:默认情况下,当前版本的库使用了 Envoy 代理,它内置了对 gRPC-Web 的支持。

开发团队表示,希望将来 gRPC-Web 在特定于某一语言的 Web 框架中得到支持,例如 Python,Java 和 Node。可查看官方的开发路线图了解更多。

gRPC-Web 简介

gRPC-Web 让你能够使用.proto 来定义客户端 Web 应用程序和后端 gRPC 服务器之间的服务“契约”,并自动生成客户端 JavaScript(你可以选择 Closure 编译器或使用更为广泛的 CommonJS)。你可以不用再为这些事情操心:创建自定义 JSON 序列化和反序列化逻辑、处理 HTTP 状态代码(可能因REST API 而异)、Content-Type 协商等。

从更广泛的架构角度来看,gRPC-Web 让端到端的 gRPC 成为可能。如下图所示:

在左侧,一个客户端应用程序通过 Protocol Buffers 与一个 gRPC 后端服务器通信,然后这个服务器也通过 Protocol Buffers 与其他的 gRPC 后端服务器通信。在右侧,Web 应用程序通过 HTTP 与后端 REST API 服务器通信,然后这个服务器又通过 Protocol Buffers 与其他后端服务通信。

需要明确指出的是,右侧的 REST 应用程序本身没有任何问题。已经有大量非常成功的应用程序是基于 REST API 服务器而构建的,这些服务器使用非 HTTP 协议与后端服务进行通信。但如果这些应用程序的开发过程只围绕一个协议和一组.proto 接口(以及一组服务契约)进行,那么就可以节省无数个小时的时间以及避免那些令人头疼的问题。

gRPC-Web 的好处不仅仅体现在“技术”方面,还体现在对组织的影响上。图中的亮橙色线不仅仅是一个协议——它代表的是独立的工作和认知负荷来源,而现在,你完全可以把它变成亮绿色。

部分内容来自 前端之巅

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

gRPC-Web 的相关博客

使用gRPC-Web从浏览器调用.NET gRPC服务

我很高兴宣布通过.NET对gRPC-Web进行实验性支持。gRPC-Web允许从基于浏览器的应用程序(例如JavaScript SPA或Blazor WebAssem...

gRPC

gRPC https://grpc.io/ http://grpc.github.io/ https://github.com/grpc/grpc https://github.com/grpc/grpc-java protobuf ...

grpc

更多请参考:https://grpc.io/docs/quickstart 一、准备工作 1. grpc编译安装 >yum install -y gcc-c++ autoconf libtool >yu...

Grpc

Channel-stub-method调用 ClinetCallImpl:客户端调用类,主要是start()方法; 其中包含了CallOptions对象,设置相关参数; Grp...

grpc-gateway--支持grpc和restful

The grpc-gateway is a plugin of the Google protocol buffers compiler protoc. It reads protobuf service definitions an...

gRPC-Web正式发布

前言: gRPC-Web是一个JavaScript客户端库,可以使Web应用程序直接与后端gRPC服务进行通信,而无需HTTP服务器充当中介。 这意...

Go gRPC进阶-gRPC转换HTTP(十)

前言 我们通常把RPC用作内部通信,而使用Restful Api进行外部通信。为了避免写两套应用,我们使用grpc-gateway把gRPC转成HTT...

grpc实践-学会grpc就是这么简单

前言 内容描述 hello,我是asong,这是我的第七篇原创文章。上一篇我们使用go的标准库rpc进行实践,使用起来还是很方便的,这...

gRPC-Web 的相关问答

还没有任何问答,马上提问

评论 (1)

加载中
目前来看,还不具备生产环境使用的成熟度
2018/11/05 09:13
回复
举报
更多评论
1 评论
36 收藏
分享
在线直播报名
返回顶部
顶部