首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将三层体系结构分解为多层体系结构

将三层体系结构分解为多层体系结构
EN

Software Engineering用户
提问于 2019-01-26 05:32:51
回答 1查看 508关注 0票数 1

最近,我一直在为单个页面应用程序(SPA)和后端的API开发一个相当大的Vue.js系统。客户关心的是安全性、性能和可维护性。

因此,我认为API分成了三个独立的部分:

  1. 安全api用于验证/授权、发布/撤销带有用户角色/权限和帐户的令牌。它将有一个单独的数据库
  2. 具有业务功能的业务api,只能通过安全API发出的令牌访问。它将有一个单独的数据库
  3. 发送实时通知和电子邮件或文本警报的通知api。又是一个单独的分局。

前面将有单独的应用程序:一个用于管理角色用户帐户、监视日志等的安全api,另一个用于复杂业务功能的业务应用程序。

我想知道:

  1. 与单个前端和单个webapi相比,这种架构(2个前端应用程序和3个webapi)有哪些优点和不便?
  2. 考虑到安全性、性能和可维护性的三重约束,哪一个是推荐的?
EN

回答 1

Software Engineering用户

发布于 2019-01-26 11:47:39

在前端

您的需求似乎涵盖了两个非常不同的需求和功能:

  • 一是应用程序及其安全性(授权、帐户、日志)的管理。
  • 另一个是核心业务功能。

将两者结合在一个应用程序中会使应用程序的维护变得更加复杂,这可能还会导致更复杂的用户界面。如果大多数用户同时使用这两种功能,则采用这种方法(例如,如果业务用户为其他用户管理自己的权限,以及业务用户需要查看日志以进行验证或审核)。在所有其他情况下,为两个不同的用户群体设置两个前端比使用不便有更多的优势。

API上的

和后端端

API、后端和数据库是不同但相互关联的主题.虽然你的问题很广泛,但这里有一些评论,可以帮助你找到最优的解决方案。

如果您所识别的3个API子部分的功能非常独立/封装(情况似乎是这样),那么您可能会受到启发,选择一种基于微服务的体系结构,其中每个微服务都有自己的API和它自己的数据库

然而,微观服务需要范式的转变和重大的重新设计,这可能并不总是可取的,甚至是不可行的。您可以很好地实现高可维护性,方法是仍然拥有一个完整的第二层后端,但是使用干净的体系结构和可靠的设计。可以通过运行几个二级(负载平衡)来实现可伸缩性。但在这种情况下,在我看来,一个数据库似乎是更实用的方法。我假设数据库将在第三层上,第三层只能从第二层访问,而第二层本身使用的是经过消毒的API。

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

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

复制
相关文章

相似问题

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