写点什么

模块一作业 (微信业务架构图 & 学生管理系统方案)

用户头像
缘分呐
关注
发布于: 5 小时前

1. 微信业务架构图

2. 学生管理系统方案

题目:

假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:

1.要求可以通过公网域名访问;

2.要求至少 3 人合作完成;

3.能够支撑管理 1000 个学生;

4.答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案


你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:

1.大家都会 Java,但是有一个是 PHP 高手

2.大家经济条件一般


作业要求:

1. 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。

2.使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。

3.给出你选择的最终方案以及选择理由。

2.1 方案一

本方案学生管理系统整体作为一个部署单元部署在两台服务器上,前面采用 nginx 做为反向代理两台应用服务器,存储采用 mysql 一主一备,保证存储安全可靠。

2.1.1 优点

  • 所有功能模块在一个工程里,业务复杂度不高时,开发效率高,部署简单

  • 整体架构简单,便于理解

  • 数据存储一主一备,能保证存储安全可靠

2.1.2 缺点

  • 横向扩展时需要更多的应用服务器,成本较高

2.2 方案二

此方案还是用 nginx 作方向代理,存储依然采用 mysql 一主一备,保证存储安全可靠。与方案一不同点时,将用户管理、权限管理、课程管理、考试管理独立成单独的服务,部署在不同的应用服务器上。

2.2.1 优点

  • 各个独立的服务能更灵活的横向扩展,能支撑更多的流量;

  • 如果人力充足将人员按小组划分,每个小组负责各个服务,互不影响,有利于快速迭代;

  • 数据存储一主一备,能保证存储安全可靠

2.2.2 缺点

  • 需要更多的应用服务器,成本高;

  • 各个服务互相调用,外部复杂度较高;

2.3 方案三

此方案还是用 nginx 作方向代理,存储依然采用 mysql 一主一备,保证存储安全可靠。所有的功能模块还是存在于一个项目中。此方案中采用了容器技术,可在一台物理服务器上通过容器技术部署多个学生管理系统。

2.3.1 优点

  • 所有功能模块在一个工程里,业务复杂度不高时,开发效率高;

  • 整体架构简单,便于理解;

  • 数据存储一主一备,能保证存储安全可靠;

  • 通过容器技术充分利用服务器资源,横向扩展时,无需更多服务器,节约成本;

2.3.2 缺点

  • 引入容器技术需要开发人员学习了解;

  • 部署发布较麻烦;


2.4 结论

基于以下几点:

  1. 能够支撑管理 1000 个学生;

  2. 方案不能过于简单也不宜过于复杂;

  3. 团队成员 3 人左右且都会 java;

  4. 经济条件一般;

再结合课程所学到的架构设计三原则:合适、简单、演进,最后选定"方案三"为最终方案。理由如下所示:

  1. 整体架构简单,少数几人合作即可完成开发,部署发布;

  2. 学生管理系统最主要是数据存储安全,采用存储一主一备,能保证存储安全可靠;

  3. 容器技术可以在使用两台物理服务器的前提下,达成部署多台应用服务器的目的,控制了成本;

发布于: 5 小时前阅读数: 4
用户头像

缘分呐

关注

还未添加个人签名 2017.12.12 加入

还未添加个人简介

评论

发布
暂无评论
模块一作业(微信业务架构图 & 学生管理系统方案)