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重新 Y Y
负载均衡 Y Y
防范攻击 Y Y
缓存 Y Y
SSL加密 Y Y
服务编排 N Y
协议转换 N Y
认证授权 N Y
IP白名单 N Y
速率限制、节流和配额 N Y
重试策略和断路器 N Y
日志记录、跟踪、相关性 N Y

总结

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

API 网关与反向代理相关推荐

  1. .NET微服务体系结构中为什么使用Ocelot实现API网关

    为什么要使用API网关而不是直接通信? 在微服务架构中,客户端应用程序通常需要使用来自多个微服务的功能.如果直接执行该消费,则客户端需要处理多个微服务端点以进行呼叫.当应用程序发展并引入新的微服务或更 ...

  2. 万字讲解API网关的来龙去脉

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 本文 ...

  3. 开源API网关Kong基本介绍和安装验证

    本文将介绍开源API网关Kong.在GitHub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选项的时候基本也会选择Kong网 ...

  4. 开源syslog服务器_开源API网关Kong基本介绍和安装验证

    今天准备介绍下开源API网关Kong,在Gtihub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选型的时候基本也会选择Kon ...

  5. 一文详细讲解API网关核心功能和API管理扩展

    本文将详细讲解API网关的基础概念,使用场景和核心功能,以及基于API网关核心引擎做的API全生命周期管理功能扩展等,最后介绍当前主流的开源API网关引擎. API网关概述 在微服务架构体系里面,我们 ...

  6. Express engine 学习笔记 - 工作在反向代理背后的 Express 设置

    第22行的 express,返回的是一个 express Application 实例. 再看该实例的 set 方法: app.set(name, value) 将设置名称分配给值. 您可以存储您想要 ...

  7. 亚马逊,应用网关_Amazon API网关

    亚马逊,应用网关 API stands for "Application Programming Interface". Amazon API gateway is the fro ...

  8. 【网站架构】Nginx 4层、7层代理配置,正向代理、反向代理详解

    大家好,欢迎来到停止重构的频道. 本期我们讨论网络代理. 在往期<大型网站 安全性>介绍过,出于网络安全的考虑,一般大型网站都需要做网络区域隔离,以防止攻击者直接操控服务器. 网站系统的应 ...

  9. 04Nginx反向代理

    目录 反向代理 网关.代理与反向代理 正向代理​ 特点: 反向代理 特点: 网关 网关的特点 ​反向代理在系统架构中的应用场景 传统服务器 中小型互联网项目 负载均衡 负载均衡的主要作用如下: Ngi ...

最新文章

  1. java对文本文件进行操作:读取、修改、添加、删除、重命名等
  2. ubuntu下安装nagios
  3. mvc与三层结构终极区别
  4. Codeu_576_问题 D: 查找
  5. docker build no such file or directory
  6. modem(2)---Android modem log查看
  7. 共建信创生态,助力组织国产化进程
  8. C11 标准下的 C 语言编程
  9. Google地图开发总结
  10. 在ESC云服务器中部署KodCloud云盘系统(四)
  11. C++标准模板库(STL)(3) 之 vector map容器快速学习 (自学笔记)
  12. 微信小程序:上传的图片显示旋转问题
  13. C语言字母升序排列,C语言改错题,题目:实现n个字符串的升序排列
  14. WEB前端面试2014阿里旺旺
  15. HTML身份证号校验及根据身份证号获取出生日期/性别
  16. qbo julius增加自己的grammar方法
  17. [论文阅读]:PP-YOLO: An Effective and Efficient Implementation of Object Detector
  18. 幕客网html视屏压缩包,使用自动化工具gulp打包压缩项目
  19. 《BIGEMAP地图软件》荣登2017、2018年度论坛《最受欢迎谷歌地图软件》
  20. 缤纷多彩的404页面(404.html)

热门文章

  1. spring boot+vue个人博客七:打包部署,多节点部署方案
  2. java计算机毕业设计乌托邦宿舍管理系统源代码+数据库+系统+lw文档
  3. MyBatis第十一章:项目案例——update配置及set动态语句操作
  4. 前台页面优化全攻略(一)
  5. 持续盈利背后,水滴“新增长”难寻?
  6. 鸟哥的Linux私房菜——第十章
  7. linux如何修改机器名,简单修改Linux主机名
  8. 使用OpenSSL生成自己服务器的证书
  9. Prometheus 导致 Jaeger API 请求超时 timeout 的故障
  10. getevent 获取报点