模块一作业
微信架构图
学生管理系统架构设计
架构方案 1
思路描述
复杂度分析
只管理 1000 人的系统,不太需要考虑太强的高可用特性。对数据库,网络,并发,吞吐量的资源需求不会很大。由于团队过小,也不会采取微服务架构,只会部署 apache 跟 Tomcat 两个服务解决问题。
技术选型分析
团队中有成员是 PHP 高手,视图渲染部分选用 PHP,无需引入 Thymleaf 等视图渲染技术,让其它成员可以专注于后端开发。
资金方面
开发资金有限,开发阶段可以利用免费的内网穿透工具在自己的电脑上部署开源 Centos,部署开发用的数据库以及集成测试环境方便开发人员进行真实环境调试。
CI/CD
使用 Gitee 搭建私有项目,在目标服务器上搭建开源 Jenkins 解决部署问题
数据管理
数据敏感,数据不能丢失,使用 mysql 主备设计。
架构图
架构方案 2
思路描述
复杂度简化
大体思路与架构方案 1 相同,但是考虑后期如果项目可以正式运行,由于架构一采取前端后端分离设计,在部署上可能增加一定的复杂度,并且当逻辑复杂后,PHP 代码不易维护,因为所有成员都会使用 java,所以可以使用其他 Java 视图渲染技术,如 Thymleaf 等,不采取前后端分离的结构。
系统稳定方面
由于只有一台 Server 在运行服务,当出现难以短时间解决的单点故障时,容易长时间导致系统崩溃不可用。采取服务器一用一备的设置。不做 load banlance,因为引入额外的(比如 Redis)基础设施进行 session 管理等。增加日常维护难度与开发复杂度。
架构图
版权声明: 本文为 InfoQ 作者【Geek_35a345】的原创文章。
原文链接:【http://xie.infoq.cn/article/d9ea143ad62ad1ccca5c8fbec】。文章转载请联系作者。
评论