关于后端:gRPC-HTTP网关-I

43次阅读

共计 1920 个字符,预计需要花费 5 分钟才能阅读完成。

[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 的理论环境搭建,案例编码,调试技巧,以及成果输入

技术是凋谢的,咱们的心态,更应是凋谢的。拥抱变动,背阴而生,致力向前行。

我是 小魔童哪吒,欢送点赞关注珍藏,下次见~

正文完
 0