写点什么

微信业务架构 & 学生系统管理系统设计

用户头像
Geek_dae
关注
发布于: 3 小时前

微信业务架构图



学生管理系统设计


背景描述


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

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

② 要求至少 3 人合作完成;

③ 能够支撑管理 1000 个学生;

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

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

① 大家都会 Java,但是有一个是 PHP 高手;

② 大家经济条件一般。


作业要求:

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

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

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


全局分析

  1. 要完成公网域名访问。就需要购买域名和 DNS 解析服务。由于是毕设,可以尽量挑选价格低的冷僻域名

  2. 经济条件一般。由于学生身份,可以提前选择在搞活动的时候,购买云服务器,节约开支。

  3. 学校管理系统,为学习内部使用,1000 人左右。没必要使用微服务等较复杂的架构。

方案一

分析

  1. 大家都会 java,那么大家统一技术栈,都使用 java + jsp 开发,不专门设置前端开发。

  2. 1000 个学生的信息,不能容忍数据全部丢失,所以要配置 mysql 主备。

  3. 只购买一台服务器,nginx,tomcat,mysql 两个实例主备 全都部署在单台服务器上。将来如果真正使用时可按照设计部署多台服务器,达到真正的高可用效果。

  4. nginx 负责 tomcat 负载均衡。


架构设计图



方案二

分析

  1. 前后端分离,php 负责前端开发,两名 java 负责服务端开发。

  2. 买两台服务器,一台服务器部署应用服务器+mysql 主,另一台服务器配置 mysql 从。

  3. nginx 动静分离,负载均衡


架构设计图



架构选择

  1. 方案一采用 java 全栈开发,技术栈统一,方案二前后端分离,方案一相对简单且维护成本低

  2. 部署的话,工作量差不多,但是方案二 web 文件需要单独部署,稍差一点。

  3. 性能的话,方案二会好一点,但是两个方案都满足要求,且因为服务是无状态的,扩展都相对容易

综上,方案一更简单,维护成本低,易扩展,所以选择方案一。


用户头像

Geek_dae

关注

还未添加个人签名 2019.04.22 加入

还未添加个人简介

评论

发布
暂无评论
微信业务架构&学生系统管理系统设计