首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >后端微服务设计

后端微服务设计
EN

Software Engineering用户
提问于 2021-11-03 21:36:39
回答 1查看 94关注 0票数 -2

我目前正在设计一个新的在线平台,它的前端将是棱角通用的,后端将是一种Node.js集群微服务。

问题本身是,微型服务的最佳方法是什么:

  1. 一个带有REST端点的集群NestJS API网关,通过与所有微服务进行内部连接。
  2. 几个NestJS微服务,每个服务都提供自己的REST,nginx作为负载均衡器&反向代理服务于前端的一切。

谢谢!H

EN

回答 1

Software Engineering用户

发布于 2021-11-03 23:30:45

在工程中没有所谓的“最佳方法”:每个选择都考虑到需求、环境、组织方面的关注。在一般情况下,这个问题需要做一些more...but的阐述:

  • API网关充当平台内部的外观:它允许客户端通过consitent接口(简单地说,是一个单一的基URL)使用您的服务,并管理交叉API管理问题,如身份验证、组合、速率限制等。
  • 负载均衡器/反向代理可以被看作是“早期API网关”,因为它提供了将入口路由映射到后端服务的功能,但是afaik不提供API网关的相同灵活性,API网关旨在代表核心微服务操纵请求和响应。
  • 负载均衡器/反向代理并不总是作为API网关的替代:后者仍然需要水平扩展,因此当请求负载变化时,您将引导或关闭副本,因此负载均衡器可以将请求路由到每个副本
  • 当API网关可以为第三方应用程序(公共API)或客户端呈现的用户界面(SPAs、移动应用程序、桌面应用程序)提供服务时,它尤其有用。
  • 服务器端呈现的UI更适合直接使用来自核心微服务的数据,因为它们不在平台边界之外公开。此外,客户端呈现的UI可能需要比API网关更复杂的东西(API网关基本上只执行输入/输出调用之间的映射并应用处理管道),因为某些应用程序需要执行复杂的表示逻辑。在这种情况下,应用了后端对前端模式。

因此,这个问题的答案包括对客户端的组成、基础结构体系以及开发过程进行一些评估,因为平台核心API中的每一个更改都可能涉及边缘层的更改。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/433271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档