架构训练模块 1
1.微信业务架构
2.学生管理系统
1. 画出微信的业务架构图。
2. “学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
① 要求可以通过公网域名访问;
② 要求至少 3 人合作完成;
③ 能够支撑管理 1000 个学生;
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
备选方案一
方案一基于一下几个方面考虑
1.根据需求系统复杂度不算高,管理要求不高,单体架构能够满足
2.数据较为重要,使用数据库主备、服务双实例保证可用性。
3.开发人员只有三个,单点实例也有利于协同开发;3 人均熟悉 java 语言,选用 java 进行服务开发。
优点:单点系统简单,便于维护
4.经济薄弱,尽量使用开源技术
备选方案二
方案二基于一下几个方面考虑
1.根据需求系统复杂度不算高,管理要求不高,单体架构能够满足
2.数据较为重要,使用数据库主备、服务双实例保证可用性。
3.开发人员只有三个,一人是 PHP 高手,使用 PHP 作为 web 层服务,java 语言进行后面的业务服务开发,web 层调用 java 开发的业务服务。
4.经济薄弱,尽量使用开源技术
有点:进行系统拆分,充分使用擅长技术吗
缺点:增加了复杂度
最终方案选择:
使用方案一比较适合毕设要求。
从系统复杂度和开发能力上来说,其实基本上已经确定了单体架构较为合适,无论是横向还是纵向拆分都提高了复杂度,且经济条件有限,微服务、docker 多服务部署就更不适合了。
评论