📅  最后修改于: 2021-01-11 02:31:47             🧑  作者: Mango
API代表应用程序接口。它是用于构建软件应用程序的一组指令,协议和工具。它指定软件组件应如何交互。
API网关是一台服务器。它是系统的单个入口点。 API Gateway封装了内部系统架构。它提供了针对每个客户端量身定制的API。它还具有其他职责,例如身份验证,监视,负载平衡,缓存,请求整形和管理以及静态响应处理。
API网关还负责请求路由,组合和协议转换。客户端发出的所有请求都通过API网关。之后,API网关会将请求路由到适当的微服务。
API网关通过以下两种方式之一处理请求:
API网关可以为每个客户端提供自定义API。它还在内部使用的两种协议(例如HTTP, WebSocket和Web不友好协议)之间转换。
例
API Gateway的流行示例是Netflix API Gateway 。 Netflix流媒体服务可在数百种不同的设备上使用,例如电视,机顶盒,智能手机,平板电脑等。它试图为其流媒体服务提供一种千篇一律的API。
API网关包括:
在微服务中,我们通过API路由所有请求。我们可以在API网关中实现常见功能,例如身份验证,路由,速率限制,审核和日志记录。
考虑一种情况,在这种情况下,我们不希望特定客户端调用微服务超过五次。我们可以将其作为API网关限制的一部分。我们可以在API网关中跨微服务实现通用功能。 Zuul API网关是一种流行的API网关实现。
我们必须在所有微服务中实现以下功能:
假设有一个外部消费者想要在一个流程中调用15种不同的服务。最好汇总这十五种服务,并为外部使用者提供一个服务呼叫。这些是所有微服务之间共有的功能。这些功能是在API级别实现的。
我们将允许通过API网关进行所有调用,而不是允许微服务直接相互调用。 API网关将处理诸如身份验证,容错等常见功能。它还为所有微服务提供聚合服务,因为所有调用都通过API网关进行路由。