微服务设计模式 - API 网关


问题陈述

微服务架构将应用程序构建为一组松散耦合的微服务,每个服务都可以以敏捷的方式独立开发,以实现持续交付/部署。当使用微服务架构构建大型、复杂的应用程序时,微服务可以使用不同的协议。例如,一些微服务使用 REST,一些微服务遵循 AMQP。现在的问题是如何让客户端无缝地访问每个微服务,而无需担心协议和其他复杂问题。

解决方案

我们可以定义一个 API 网关,它将充当所有类型客户端的单一入口点。以下是 API 网关的其他好处 -

  • 简单代理- API 网关可以充当某些请求的简单代理,将它们重定向到相关服务。

  • 多个服务- API 网关可以将调用重定向到多个服务。

  • 客户端特定的 API - API 网关也可以提供客户端特定的 API,例如桌面版本的 API 与移动应用程序不同的 API。

  • 协议处理- API 网关在内部处理每个服务调用的通信协议,客户端只关心请求/响应。

  • 安全性和身份验证- API网关可以实现安全性,即每个请求只有在身份验证和授权后才进入服务。

例子

考虑一个在线书店的例子。API网关允许在多个设备上无缝地使用在线图书商店API。

API网关设计模式

优点

  • 客户端隔离- 客户端不知道微服务的位置或如何调用它们。

  • 多个服务调用- API网关可以处理多个服务并将结果作为一个给出,因此可以减少往返并提高性能。

  • 标准接口- API 网关为客户端提供标准接口以获取微服务的响应。