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网关的责任及功能,我们可根据需求的简单程度及要解决的问题的要求来选择。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值