微服务 API 网关模式

Posted

技术标签:

【中文标题】微服务 API 网关模式【英文标题】:microsevice apigateway pattern 【发布时间】:2018-01-25 12:40:52 【问题描述】:

我正在一个新项目的用户网站上工作,我需要为每个请求保持良好的响应时间。我想知道我应该使用哪些微服务模式。

我一直在阅读“api-gateway”模式,其中网关是服务编排器。据我了解,API 应该同步调用服务,以便授予业务的逻辑流程。这确实减少了reactive 提供的一些优势。

另一种方法是使api网关异步,然后需要为每个请求维护状态,以便在收到服务回复时,可以将其映射到正确的请求并继续流程。

我一直在搜索这个主题,但找不到太多有用的文章。您能否分享您的想法或指出一些讨论该主题的文章。

谢谢!

【问题讨论】:

您能详细说明“响应时间短”吗?在某些情况下这意味着 它是一个标准的网络应用程序。可接受的响应时间为 1-2.5 秒。我也编辑了原始问题。 检查编舞模式这可能也很有趣,或者你只是想去编排模式? 【参考方案1】:

您应该进行的第一个优化应该始终是最有效的。看看你最昂贵的手术。对我来说,我相信这对大多数开发人员来说都是正确的,它是服务之间的通信。无论是从 API 网关到数据服务,还是从数据服务到数据库,目标都应该是尽量减少这种情况。所以是的,您应该做的第一件事是让您的 API-Gateway 请求在与该服务对话时并行发生。否则,您将进行 N 次调用,而不是(基本上)对服务进行 1 次调用(因为它们同时发生),其中 N 是服务的数量。在那里浪费了很多时间。

【讨论】:

【参考方案2】:

使调用同步并不意味着它不能是响应式的,响应式表示您的应用服务器将使用线程池(这是一种有限的资源)与使用响应式方法来处理请求的方式,您可以按照您的方式分派响应然后。第二种方法仍然可以为您的客户(网络或移动应用程序)提供同步响应

【讨论】:

以上是关于微服务 API 网关模式的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud分布式微服务搭建

SpringCloud系列SpringCloud微服务网关概述

分布式微服务Spring Cloud框架搭建详细流程

微服务 六:服务网关

API网关,让您和Serverless再近一步

SIA-GateWay之API网关安装部署指南