Jump to section

API 网关有哪些作用?

复制 URL

API 网关是位于客户端与后端服务集之间的 API 管理工具。在这种情况下,客户端是指用户设备上的应用,后端服务则是指企业服务器上的服务。API 是应用编程接口的缩写,其包含构建和集成应用软件所用的一系列定义和协议。

API 网关是应用交付(向用户提供应用的一系列服务)的一部分,充当反向代理的角色,接受所有应用编程接口(API)调用,整合完成调用所需的各种服务,并返回相应的结果。简单来说,API 网关是一种软件,它拦截来自用户的 API 调用并将其路由到相应的后端服务。

大多数企业 API 都是通过 API 网关部署的。API 网关通常用于处理 API 服务系统中的常见任务,例如用户身份验证、速率限制和统计信息。

API 服务最基本的作用是接受远程请求并返回响应。但是,现实却并非如此简单。不妨想一下您在托管大型 API 时经历的种种顾虑。

  • 您希望保护 API 免受过度使用和滥用,因此选择了身份验证服务和速率限制。 
  • 您想了解他人如何使用您的 API,因此添加了分析和监控工具。
  • 如果您已有货币化 API,则还要连接到计费系统。
  • 您可能采用了微服务架构,因此,单个请求可能需要调用数十个不同的应用。
  • 随着时间推移,您会添加一些新的 API 服务并淘汰另外一些服务,但您的客户仍希望像原来一样地获得所有服务。

面对这些复杂局面,如何为客户提供简单而可靠的体验就成了一大挑战。API 网关是一种将客户端接口与后端实现分离的方式。当客户端发出请求时,API 网关会将其分解为多个请求,然后将它们路由到正确的位置,生成响应,并跟踪所有内容。

API 网关是 API 管理系统的一部分。API 网关会拦截所有传入的请求,然后通过 API 管理系统(该系统负责处理各种必要的功能)将其发送出去。

API 网关的作用因实施而异。一些常见的功能包括:身份验证、路由、速率限制、计费、监控、分析、策略、警报和安全防护。API 网关的优势如下:

低延迟

通过分发传入请求以及卸载 SSL 终止和缓存等常见任务,API 网关可优化后端服务的流量路由和负载平衡,确保实现最佳的性能和资源利用率。这样,API 网关就能最大限度地减少服务器负载和带宽使用量,从而减少对额外的服务器容量和网络带宽的需求并改善用户体验。

流量管理

API 网关通过各种机制来控制传入请求的速率和数量,从而限制和管理流量,并确保最佳的性能和资源利用率。

  • 速率限制策略用于指定允许每个客户端或 API 密钥在特定时间段内发出的最大请求数(例如每秒、每分钟、每小时的请求数),从而对后端服务实施过载保护。
  • 限制请求策略用于定义调节请求流量的规则和限制,例如最大请求速率、突发限额和配额。
  • 并发控制策略用于指定后端服务器可同时处理的最大并发连接数或请求数。
  • 熔断策略用于监控后端服务器的运行状况和响应速度,并暂时阻止或重定向来自出现故障或速度较慢的服务的流量,防止出现级联故障并保持系统的整体稳定性。
  • 动态负载平衡会持续监控服务器运行状况并实时调节流量路由,以应对需求高峰,最大限度地缩短响应时间并最大限度地提高吞吐量。

利用全球网络基础架构

API 网关可根据不断变化的流量模式和工作负载需求动态扩展基础架构资源。通过这种方式,API 网关可以帮助企业优化资源利用率并最大限度地降低基础架构成本,确保企业只需为实际的资源使用量付费。

成本效益

API 网关在管理应用交付和 API 集成的成本效益方面发挥着重要作用,通过提供集中式平台来处理 API 流量、执行安全策略、实施流量管理规则并促进与后端服务的集成。API 网关还支持分级消费服务,从而在满足需求的同时有效控制成本。不同类型的 API 会从若干方面影响应用的成本效益。

  1. 灵活性。HTTP API 更为通用,可以使用任何 HTTP 方法,为开发过程带来简便性和灵活性,具有降低开发成本的潜力。REST API 遵循特定的架构原则和惯例,可能需要额外的精力和专业知识才能恰当地设计和实施,因此,可能会导致开发成本增加。
  2. 基础架构。得益于 HTTP API 的灵活性,基础架构成本可能会较低。REST API 可能需要额外的基础架构组件或服务来支持这些功能,因此,可能会导致基础架构成本增加。
  3. 可扩展性。HTTP API 支持通过添加更多服务器或实例进行横向扩展,可提供更具成本效益的扩展选项,尤其是在具有自动扩展功能的云环境中。由于无状态、缓存和分布式架构方面的考虑,REST API 可能会具有更复杂的扩展需求,且可能需要额外的基础架构资源或服务来实现水平扩展,因此,可能会导致成本增加。

API 网关如何与 Kubernetes 协作

红帽 OpenShift 等基于 Kubernetes 的解决方案是将应用容器化并编排应用的最有效方式,因此,API 网关成为管理流量并将其路由到 Kubernetes 集群上服务的关键组件。它通过完成以下任务来做到这一点:

  • 充当 Ingress 控制器的角色,拦截传入集群的 HTTP 流量,然后根据定义的规则和配置将其路由到相应的服务。
  • 利用 Kubernetes 基于 DNS 的服务发现功能,无需手动配置即可发现流量并将其路由到后端服务。该过程可实现与 Kubernetes 原生服务的无缝集成,并促进集群内的动态扩展、服务发现和故障转移。
  • 实施高级流量管理策略,以控制流向 Kubernetes 上所部署服务的流量。
  • 执行身份验证、访问控制、授权和加密等安全防护策略,以保护 Kubernetes 上所部署服务免受未经授权的访问和网络威胁。
  • 通过为 Kubernetes 上所部署服务创建对流量模式、性能指标和错误率的可见性,提供观测和监控功能,如记录请求日志、收集指标以及分布式跟踪功能。
  • 与 Istio 和 Linkerd 等服务网格集成,以扩展其功能并提供外部入口、边缘安全防护和全局流量管理等附加功能,确保 Kubernetes 服务与外部客户端之间实现无缝互操作性。

在采用 DevOps 方法的企业中,开发人员会使用微服务以快速、迭代的方式构建和部署应用。API 是最常见的微服务通信方式之一。

此外,包括无服务器模型在内的现代云开发都要依靠 API 来置备基础架构。您可以部署无服务器功能并使用 API 网关进行管理。

总之,随着集成和互联变得愈加重要,API 的重要性也在提升。随着 API 复杂性的提高和使用量的增长,API 网关的价值也日益得到体现。

红帽模块化、轻量级且全面的 API 管理解决方案的独特之处在于:开源,采用开放标准,且支持在本地、云或混合环境中使用。得益于红帽专注于开源技术以及独特的开发模式,我们的产品组合都会经过多元化社区的广泛测试,其中包括红帽工程师、客户、独立的软件和硬件供应商以及合作伙伴。我们有两款 API 管理解决方案:

  • 红帽 OpenShift API 管理是一项托管式 API 管理服务,是红帽 OpenShift 专业版(企业 Kubernetes 平台红帽 OpenShift 的完全托管服务)的附加组件。
  • 红帽® 3scale API 管理是一款 API 管理平台,能让您轻松实现 API 共享、保护、分发、控制和盈利。3scale API 管理可用于扩展和支持混合架构(支持本地、云中或二者的任意组合形式)。

扩展阅读

文章

什么是 API?

应用编程接口(API)是一组用于构建和集成应用软件的定义和协议。

文章

API 网关能做什么?

API 网关是位于客户端与后端服务集之间的应用编程接口(API)管理工具。

文章

为何选择红帽 API?

我们的 API 解决方案重点关注可复用性、IT 敏捷性以及有助于测量、监控和扩展的管理接口。