SpringCloud API网关

什么是API网关?

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

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

API网关是还负责 请求路由,组成协议翻译。客户端发出的所有请求都通过API网关。之后,API网关将请求路由到适当的微服务。

API网关通过以下两种方式之一处理请求:

  • 它已将请求路由或代理到适当的服务。
  • 资助(传播)对多个服务的请求。

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

示例

API网关的流行示例是 Netflix API网关。 Netflix流媒体服务可在数百种设备上使用,例如 电视机顶盒,智能手机,平板电脑等。它试图提供 为其流服务提供全尺寸的 API。

API网关简介

API网关包括:

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

 

API网关的优点

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

缺点

  • 它需要路由规则。
  • 有可能出现单点故障。
  • 由于所有API规则导致的复杂性风险都集中在一个地方。

API网关的工作

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

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

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

  • 服务聚合
  • 身份验证,授权和安全性
  • 限流
  • 容错

假设有一个外部消费者希望在一个流程中调用 15 个不同的服务。最好汇总这十五种服务,并为外部使用者提供一个服务呼叫。这些是所有微服务之间共有的功能。这些功能是在API级别实现的。

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

什么是Zuul?Zuul Server是API网关应用程序。它处理所有请求并执行微服务应用程序的动态路由。它充当所有请求的前门。它也称为 边缘服务器。Zuul旨在实现 动态路由,监视,弹性,和 ...