【问题标题】:System architecture : MVC app with microservices [closed]系统架构:带有微服务的 MVC 应用程序 [关闭]
【发布时间】:2021-05-19 08:55:19
【问题描述】:

我们正在尝试设计我们的新系统架构,它将成为一个前端应用程序和多个服务。显而易见的方法是遵循微服务架构。

但是,我们不希望选择前端 javascript 框架,主要原因有两个:

  • 需要学习和掌握前端框架
  • 必须在前端处理安全/令牌层

所以我们提出了如下架构(微服务架构减去前端框架)

例如:当用户提交表单时。后端控制器将请求 REST 服务,然后返回具有适当模型的视图

现在的问题是:与单体应用相比,这种架构值得吗?当其中一项服务过载时,是否有助于减少主应用程序的过载?

【问题讨论】:

  • 通常,从单体应用程序到微服务基础设施的过渡是在当前的流量模式显示出将应用程序的部分分离为微服务以减少主服务的负载并允许独立扩展的明显优势之后所以我真的认为这取决于你的实际使用情况。
  • 同意大卫的回答...除非需要,否则不要使用微服务...一个关键因素是微服务之间的通信...如果您需要它们之间的通信,那么它将增加开销

标签: laravel model-view-controller architecture microservices


【解决方案1】:

除非绝对必要,否则不要过度设计您的系统并选择单体。在以下情况下确实需要微服务:

  • 有多个有界上下文,每个有一个或多个聚合根
  • 写入/读取模式完全不同,可能需要不同的持久性存储机制

但即使在这些情况下,也绝对有可能设计一个好的单体并在之后对其进行重构。

我的建议是对领域有一个很好的了解,编写一个 MVP 并然后重构。

【讨论】:

  • 其实我们有多个独立的数据库。有些很重且很关键(数十亿条记录),而有些则或多或少是轻量级的。我想知道当主应用程序请求单独的 REST 服务或直接请求数据库时是否更好。
猜你喜欢
  • 2011-11-29
  • 2020-05-09
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 2020-12-16
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多