API网关简介

2025年3月17日 | 阅读 3 分钟

什么是API网关?

API代表应用程序编程接口。它是一组用于构建软件应用程序的指令、协议和工具。它指定了软件组件应该如何交互。

API网关是一个服务器。它是进入系统的单一入口点。API网关封装了内部系统架构。它提供一个为每个客户端量身定制的API。它还具有其他职责,例如身份验证、监控、负载均衡、缓存、请求整形和管理,以及静态响应处理

API网关还负责请求路由、组合协议转换。客户端发出的所有请求都通过API网关。之后,API网关将请求路由到相应的微服务。

API网关以两种方式之一处理请求

  • 它将请求路由或代理到相应的服务。
  • 将一个请求分散(扩展)到多个服务。

API网关可以为每个客户端提供自定义API。它还可以在两种协议之间进行转换,例如HTTP、WebSockets和内部使用的Web-Unfriendly协议。

示例

API网关的流行例子是Netflix API网关。Netflix流媒体服务可在数百种不同类型的设备上使用,例如电视、机顶盒、智能手机、平板电脑等。它试图为其流媒体服务提供一站式API。

Introduction to API Gateways

API网关包括

  • 安全性
  • 缓存
  • API组合和处理
  • 管理访问配额
  • API健康监控
  • 版本控制
  • 路由

API网关的优点

  • API网关最重要的优点是它封装了应用程序的内部结构。
  • 客户端直接与API网关对话,而不是调用特定的服务。
  • 它减少了客户端和应用程序之间的往返次数。
  • 它简化了客户端代码。
  • 它减少了编码工作量,使应用程序更有效,同时减少了错误。
  • 它为每种客户端提供一个特定的API。

缺点

  • 它需要路由规则。
  • 存在单点故障的可能性。
  • 由于所有API规则都在一个地方,因此存在复杂性的风险。

API网关的工作原理

在微服务中,我们通过API路由所有请求。我们可以在API网关中实现通用功能,如身份验证、路由、速率限制、审计日志记录

考虑一种情况,我们不希望特定客户端调用微服务的次数超过五次。我们可以在API网关中将其作为限制的一部分来实现。我们可以在API网关中实现跨微服务的通用功能。Zuul API网关是一种流行的API网关实现。

我们必须在所有微服务中实现以下功能

  • 服务聚合
  • 身份验证、授权和安全
  • 速率限制
  • 容错性

假设有一个外部使用者希望作为单个流程的一部分调用十五个不同的服务。最好聚合这十五个服务,并为外部使用者提供一个服务调用。这些是所有微服务通用的功能类型。这些功能在API级别实现。

我们通过API网关进行所有调用,而不是允许微服务直接相互调用。API网关将处理通用功能,如身份验证、容错等。它还提供围绕所有微服务的聚合服务,因为所有调用都通过API网关路由。


下一话题Zuul API网关