架构实战营 - 模块一作业
1.微信业务架构图
时间仓促,只能粗略的写一点了
2.学生管理系统
业务架构:
架构 1:
数据库采用双机主被模式,保证数据不会丢失,考虑到学生上传的文件以及教师的课件文件比较多而且丢失了会很麻烦因此采用 OSS 的存储方式并且直接使用 CDN 进行下载。
应用部分采用 SpringBoot+模版引擎的方式开发,使用容器部署在一台服务器上,在并且部署 nginx 做代理进行访问。
优点足够的简单但又保证了数据不会丢失,成本也相对较低,缺点是如果应用服务器宕机那么需要较长的时间进行修复。
架构 2:
就是在架构 1 的基础上进行了一定的扩展,提升了可用性和性能,mysql 改为主从模式提高性能,增加一台 redis 用于数据缓存以及选课时的队列处理防止超选。应用的开发架构也改为前后端分离的模式采用 SpringBoot+VUE,
优点是性能、可用性明显增强,但无论开发成本还是运维成本都会直线上升
我选择方案 1 理由如下
1.这个系统的管理的学生才 1000 人,如果算上老师 100 人,那么整个系统的用户数才 1100 人,正常情况下并发是很低的。因此方案 1 的性能足够达标
2.学生系统其实宕机几个小时乃至几天都不会影响教务工作的进行因此没有高可用需求
3.团队的配备只有 3 个 java 开发,并且从给的条件里看都不是高手,因此系统做的越简单越不容易失控。
4.团队成员条件都一般因此大家合伙出钱再找个前端是几乎不可能的,因此选择做模版而不是 vue,因为 vue 相对来说还是需要专业的前端去做工作量也会增加。
版权声明: 本文为 InfoQ 作者【Alex.Wu】的原创文章。
原文链接:【http://xie.infoq.cn/article/30d1cbbbd134153ca3fcda2db】。未经作者许可,禁止转载。
评论