IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> API 网关与反向代理 -> 正文阅读

[网络协议]API 网关与反向代理

API 已经成为成功数字产品的必备要素之一,因此正确管理API成为重要内容。本文带你了解管理API的两个常用组件:API 网关与反向代理。

架构

我们首先看典型的网络拓扑图。虽然API 网关与反向代理位于相同位置,但两者提供的功能有差异。

在这里插入图片描述

下面我们分别进行解释。

反向代理

反向代理主要作为客户端与一个或多个后端服务之间的协调者。在微服务架构中,随着应用规模增大微服务会随之变多。必要时需要隐藏异构AP服务带来的复杂性,这时反向代理可以重写URL,客户端仅和反向代理交互,反向代理负责将请求转发到后端服务实例。

典型反向代理使用场景包括:

负载均衡

它负责分发请求至多个后端服务器,防止单个服务负荷过重导致响应失败。如果因错误一个后端不能提供正常服务,负载均衡重新分发请求至其他服务器。

防范攻击

它提供了安装控制系统的可能性,如防病毒或包过滤功能,通过将自己定位在Internet和私有网络之间,进一步保护后端。

缓存

对于重复请求,可以自动部分或全部从反向代理缓存中给予响应。因此传入值后端数据更少,客户端获得响应更快。

SSL加密

可以配置反向代理实现对传入请求解密、对传出响应加密,从而避免占用后端资源。

我们看到反向代理提供的这些能力是不够的,还需要网关提供更多的功能。下面我们继续了解网关提供的功能。

API 网关

API网关可理解为反向代理的超集,下面讨论它提供的额外功能。

首先,API网关对客户端隐藏后端的体系结构划分情况。不仅通过转发请求,还可能执行编排/聚合。这简化了客户机代码,减少了API请求/往返的数量。此外,客户端不会调用多个后端,而是只与API网关通信。

另一个与处理请求/响应相关的特性是协议转换。换句话说,API Gateway可以执行协议到协议的转换(例如,XML到JSON, gRPC到JSON),以促进客户端和服务器之间的集成。

API Gateway提供常见功能有 全性、可靠性、可伸缩性、可观察性和可跟踪性。下面分别进行说明。

1)安全相关功能

认证与授权:在边缘集中提供认证服务。

IP白名单:可以授予特定IP访问API能力。

2)性能相关功能

速率限制、节流和配额:我们可以根据在某一单位时间内可以处理多少请求/数据服务来设置限制。此外,从商业的角度来看,它提供了根据API消费者情况来控制流量。

重试策略和断路器:管理瞬时异常。例如,客户端重新执行请求或保护服务端免受请求泛滥,用于提高后端的弹性和可靠性。

3)观察、跟踪相关功能

日志记录、跟踪、相关性:收集每个特定请求的所有日志,了解它所涉及的后端及相关指标。

两者差异

反向代理API 网关
URL重新YY
负载均衡YY
防范攻击YY
缓存YY
SSL加密YY
服务编排NY
协议转换NY
认证授权NY
IP白名单NY
速率限制、节流和配额NY
重试策略和断路器NY
日志记录、跟踪、相关性NY

总结

本文详细解释了反向代理及API网关的责任及功能,我们可根据需求的简单程度及要解决的问题的要求来选择。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 10:15:37  更:2021-11-27 10:17:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:16:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码