[TOC]
gRPC- HTTP 网关 I
gRPC
是什么?咱们再来回顾一下
gRPC
是 Google 开发的基于 HTTP/2
规范设计的一个 通用的,高性能的 RPC 框架 ,有如下3 个最显著的特点:
- 反对支流的编程语言,
C++,Java,Python,Go,Ruby
等,基于ProtoBuf
生成相应的服务端和客户端代码。 - 基于 HTTP/ 2 协定,且提供了更强的利用性能 — 节俭带宽,缩小 TCP 申请连接数
- 基于
ProtoBuf
定义服务,面向接口对服务进行设计
具体的,这篇文章都有介绍到 — gRPC 的介绍
HTTP 网关是什么?
分享 gRPC 的 HTTP 网关之前,先来大抵说说 HTTP 网关是什么
网关是啥?
网关(Gateway)就是一个网络连接到另一个网络的
关口
。网关他是一个设施,将两个应用不同传输协定的网络段连贯在一起,网关个别用作网络的入口和进口点,因为所有数据必须在路由之前通过或与网关通信。
网关所有网络都有一个边界,限度与间接连贯到它的设施的通信。如果网络想要与该边界之外的设施,节点或网络通信,则它们须要网关的性能。网关通常被表征为路由器和调制解调器的组合。
HTTP 网关那就不难理解,是基于 HTTP 申请
的网络关口
HTTP 网关都有哪些嘞?
- HTTP/*,服务器端 Web 网关
例如,客户端在网络上下载资源,客户端通过 http 协定拜访到 web 网关,web 网关辨认到申请之后,转成 ftp 协定,申请 ftp 服务器,进行文件的上传和下载
- HTTP/HTTPS,服务器端平安网关
平安网关,应该就能想到加密
网关对所有的输出 Web 申请加密,以提供额定的隐衷和安全性爱护。哪怕客户端能够用一般的 HTTP 浏览 Web 内容,但网关会主动加密用户的对话,保障安全性
- HTTPS/HTTP 客户端平安加速器网关
在 HTTP 申请前加上 HTTPS 进行拦挡,保障流量的平安
将 HTTPS/HTTP 网关作为平安加速器,这些 HTTPS/HTTP 网关个别是在放 Web 服务器之前,通常作为不可见的拦挡网关或反向代理应用。它们接管平安的 HTTPS 解决过的流量,对平安流量进行解密,并向 Web 服务器发送一般的 HTTP 申请
也就是说失常状况下,若流量能到 web,阐明流量是平安的
- 其余资源网关
例如拜访某些应用程序的外部数据,这是通过网络连接客户端和服务器的网关。
即网关就在 应用程序对应的服务器上,与客户端通过 HTTP / HTTPS 进行通信,并与本身服务器端的应用程序相连
gRPC-Gateway
Golang 开发程序的时候,个别 gRPC
对内,用于微服务之间的外部通信,HTTP
接口裸露进去,提供给前端,或者是客户端。
咱们的微服务中既要有外部通信的 gRPC
,又要写对外裸露的HTTP
接口,仿佛无形中减少了不少工作量,保护两个版本的服务,这种做法是不是很 low。那么有没有一种方法能够将 2 种形式联合,或者说是简化呢?
当然是有的,gRPC
为咱们提供了一个很不便的 gRPC-Gateway
插件
gRPC-Gateway 是什么?
是 protoc
的一个优良的插件
gRPC-Gateway
提供了基于 proto
文件中的服务接口定义生成 HTTP
的反向代理的能力。对于同一个规范的 gRPC
服务定义,除了根本的 gRPC 客户端
以外还能生成相应的 HTTP JSON
的接口实现代码
它能够通过 google 提供的标准接口google/api/annotations.proto
,咱们可能对原有Protobuf 服务,形容成其相应的 HTTP 接口模式
具体是这样的构造
gRPC-Gateway 有啥劣势呢?
是啊,咱们写微服务,对内用 gRPC,对外用 HTTP,一个服务外面写 2 套接口,累是累了点,可是 gRPC-Gateway
仅仅就是写 gRPC
服务同时也能够用于 HTTP
接口吗?
当然不是
应用 gRPC-Gateway 的劣势如下:
- 能够放弃 Restful 的简略性
gRPC-Gateway
工具,让咱们能够很疾速的基于 proto 接口定义,在应用 RPC 的同时对外提供 Restful
应用 gRPC
的原有 Protobuf 服务 一样能够感触到 Restful 的简略性,犹如间接写的 HTTP 接口,简略易用
- 同时还能够充沛晋升利用外部的性能以及可靠性
这是 RPC
框架的自身劣势,RPC
专为分布式应用的高性能和高生产率设计而设计的
应用 gRPC 提供 HTTP 接口有啥注意事项?
- gRPC 提供的 HTTP 接口是基于
HTTP 2.0
的 - 别太爽就行
总结
- 回顾
gRPC
根本要点 - HTTP 网关的介绍
- 引出
gRPC-gateway
,以及其根本构造
好了,本次就到这里,下一次分享 gRPC-gateway
的理论环境搭建,案例编码,调试技巧,以及成果输入
技术是凋谢的,咱们的心态,更应是凋谢的。拥抱变动,背阴而生,致力向前行。
我是 小魔童哪吒,欢送点赞关注珍藏,下次见~