1

这是我公司面临的某种设计问题。我们正在构建一个在线教育平台,在这个平台上我们得到了一个有趣的用例。

我们目前有管理站点(一个前端,一个后端,一个mongodb服务器),在这里管理员将创建课程,内容,将学生分成批次。我们有导师,TA的每一个内容、课程、批次的管理都是从这边完成的。

现在我们有另一个静态前端应用程序,供学生使用。现在我们必须为学生设计一个单独的界面来访问由管理员创建的课程、作业和内容。

业务需求,学生站点不应该关闭,它应该每次都可用,并且出于安全原因,他们希望学生和管理员实例是分开的。

架构问题来了,现在我们有三个选择

  1. 分开的前端、后端、管理员和学生的数据库。. 在这里,我们必须从 admin app 获取内容,因为所有内容都将位于 admin 数据库中。如果管理应用服务器关闭,我们将无法获取导致学生应用关闭的数据。这里存在数据冗余。

  2. 学生和管理员的单独应用服务器,但单个 db。我的见解仅在这一点上,因为在这里我们不需要复制数据。但是这里我们依赖管理应用服务器来获取数据,因为所有课程数据都将只存在于管理中,模型仅在管理应用服务器中定义

  3. 单个前端、后端、mongo db 服务器中的所有学生和管理员数据。这里没有冗余,一切都是单体,但是抽象的问题出现在这样的独立安全和通知框架中,因为随着需求的变化,我们如何处理它。我们对臃肿的代码有感觉。

我一直在努力解决这个问题,所以请给我一些关于如何解决这个问题的见解,我是否遗漏了什么,有什么错误,请告诉我。

我们正在使用 MEAN 堆栈

我们可以使用 redis 来管理数据以向学生展示,而不是每次都调用管理站点来获取内容。有很多权衡和选择,我在我必须去哪一边进退两难。

4

0 回答 0