微服务设计模式 - API 网关



问题陈述

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

解决方案

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

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

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

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

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

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

示例

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

API Gateway Design Pattern

优势

  • 客户端隔离 - 客户端无需了解微服务的位置或如何调用它们。

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

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

广告