访问 gRPC 服务的 Web 客户端 gRPC-Web

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

部分内容来自 前端之巅

的码云指数为
超过 的项目
加载中

评论(1)

parselife
parselife
目前来看,还不具备生产环境使用的成熟度

暂无资讯

暂无问答

caddy & grpc(3) 为 caddy 添加一个 反向代理插件

caddy-grpc 为 caddy 添加一个 反向代理插件 项目地址:https://github.com/yhyddr/caddy-grpc <a name="A17eq"></a> 前言 上一次我们学习了如何在 Caddy 中扩展自己想要的插件。博客中只提供...

08/10 17:08
13
0
Grpc介绍 — Go-Service To PHP-Client

笔者现在公司项目大部分是PHP进行开发,要完成整体微服务化必须要考虑PHP使用上的可行性,Grpc也是支持PHP作为client端发起Grpc请求,但是依赖的扩展等都相对复杂(毕竟不是亲儿子),那么本...

03/06 11:58
200
1
go grpc 初步笔记

GRPC 像许多RPC系统一样,gRPC基于定义服务的思想,指定可以使用其参数和返回类型远程调用的方法。 特点 基于 HTTP/2, 继而提供了连接多路复用、Body 和 Header 压缩等机制。可以节省带宽、...

2017/03/30 14:18
244
1
GRPC-java的简单使用

GRPC的简介 (1)在gRPC中客户端可以直接调用运行在不同机器上服务器端的方法,与其它RPC(远程方法调用)一样,定义一个方法,可以被远程使用参数调用,然后通过返回值进行响应。 (2)服务器...

2018/12/14 11:55
68
0
Nginx 宣布从 1.13.10 开始正式支持 gRPC

最近,NGINX在其博客宣布,Nginx 宣布从 1.13.10 开始正式支持 gRPC 如下是正文翻译: 今天,我们很高兴在NGINX 1.13.10上分享gRPC流量的第一个本地支持。下一个NGINX Plus版本R15将包含对g...

2018/05/29 10:39
422
0
远程通信协议:从 CORBA 到 gRPC

- 一、远程调用技术简史 - 二、gRPC 简介 - 三、gRPC 示例代码

2017/10/31 16:10
117
0
Grpc-Gateway - Grpc兼容HTTP协议文档自动生成网关

因为之前的测试结果让笔者对PHP使用GRPC很失望,如果使用HTTP的方式Guzzle还可以提供并发能力来降低接口消耗,Grpc只能阻塞,但是如果使用HTTP的话对于调用限制和GO调用GO来说不太友好,有没...

03/18 11:21
320
0
gRPC Windows编译应用

## gRPC Windows编译 从github上clone出来后进行cmake的编译,参考上面的文档,需要注意的点: - 必须安装所有的依赖,包括Perl,Go,YASM,Git,CMake - 不要使用--recursive来递归clone,因...

2018/06/20 09:15
510
0
gRPC 小记

创建一个maven项目demo-grpc 包含三个子模块: grpc-common:公共模块定义proto及生成java代码; grpc-server:grpc 服务端; grpc-client:grpc客户端。 其中grpc-server、grpc-client 为s...

2018/09/04 11:48
159
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部