微服务设计模式 - API 网关

问题说明

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

解决方案

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

  • 简单代理 − API网关可以作为一些请求的简单代理,将它们重定向到相关服务。

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

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

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

  • 安全和身份验证 − API Gateway可以实现每个请求都经过身份验证和授权后才进入服务的安全性。

示例

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

API 网关设计模式

优点

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

  • 多次服务调用 − API网关可以处理多个服务并将结果作为一个结果,从而可以减少往返并提高性能。

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