架构实战营 - 第 4 期 - 模块一作业
微信的业务架构图
"学生管理系统"毕设架构设计
第 1 步,需求分析,找出系统复杂点
要求公网域名访问,那么需求购买注册域名,可以购买便宜的.top 域名(几十元),需要做域名解析,在公有云上买了域名会赠送域名解析服务。
3 人共同做这个项目,都会用 java,按合适原则核心业务逻辑代码要使用 java 开发,有 PHP 高手可以在时间紧的情况下使用 PHP 开发前端。
管理 1000 个学生,并发量业务量不大,不用太考虑高性能。
不推荐太简单和太复杂的方案。可以从高可用和数据安全角度,保证业务能力的连续性,可扩展方面不用过多考虑。
第 2 步,架构设计
方案 1:
使用单节点架构,快速构建一个业务可用的系统,nginx,应用,DB 都部署在同一个机器上
优点:
结构简单,可以快速部署,成本低
缺点:
单结点可用性差,无数据库备份数据不安全不可靠。
方案 2:
将应用独立部署,DB 使用主备模式,都使用 Java 开发
优点:
架构简单,部署方便,数据库有备份,数据安全
缺点:
应用层不具备高可用
方案 3:
PHP 高手使用 PHP 实现 Web 前端,业务逻辑层使用 Java 实现,核心业务层 AA 方案部署
优点:
充分发挥专家资源实现对用户界面体验更加的前端,核心业务层具备高可用,系统整体高可用提升
缺点:
由于成本有限,前端仍不具备高可用,存在生死节点。
方案 4:
将业务模块拆分为人员管理、课程管理、考试管理、系统管理 4 个模块,为后续微服务化做准备
优化:
将业务模块分步实现,故障也做了物理隔离,提高系统可用性
缺点:
成本高,部署和维护难度增加
第 3 步,方案取舍
选择方案 3 为交付方案。
选择的理由:
1、充分发挥现有资源(人力资源、时间、费用等),符合合适原则;
2、实现逻辑上较为简单,在此场景无高性能、可扩展等要求,不需要使用复杂的微服务架构等;
3、当前的架构已经达到业务需求的业务需求的业务量要求。
评论