微服务设计模式 - API 网关
问题说明
微服务架构将应用程序构建为一组松散耦合的微服务,每个服务都可以以敏捷的方式独立开发,以实现持续交付/部署。 当使用微服务架构构建大型、复杂的应用程序时,微服务可以使用不同的协议。 例如,一些微服务使用 REST,一些微服务遵循 AMQP。 现在的问题是如何让客户端无缝地访问每个微服务,而无需担心协议和其他复杂问题。
解决方案
我们可以定义一个 API 网关,它将充当所有类型客户端的单一入口点。 以下是 API Gateway 的其他优势 −
简单代理 − API网关可以作为一些请求的简单代理,将它们重定向到相关服务。
多个服务 − API网关可以将调用重定向到多个服务。
客户端特定 API − API Gateway 还可以提供客户端特定的 API,例如桌面版本的 API 与移动应用程序不同的 API。
协议处理 − API网关在内部处理每个服务调用的通信协议,客户端只关心请求/响应。
安全和身份验证 − API Gateway可以实现每个请求都经过身份验证和授权后才进入服务的安全性。
示例
考虑一个在线书店的示例。 API网关允许在多个设备上无缝地使用在线图书商店API。
优点
客户端隔离 − 客户端不知道微服务的位置或如何调用它们。
多次服务调用 − API网关可以处理多个服务并将结果作为一个结果,从而可以减少往返并提高性能。
标准接口 − API网关为客户端提供标准接口以获取微服务的响应。