架构实战营模块一作业
微信业务架构:

学生管理系统
方案一

方案二

方案一将整个系统拆分成 3 个子系统,每个子系统单独部署,子系统通过协作完成整个学生管理系统的业务,优点是将业务拆分之后可以独立部署上线,每次更新范围可控,每个人为自己的子系统的生命周期负责。缺点是微服务架构引入了额外的复杂度,比如说问题定位、子系统之间的协作。
方案二系统没有拆分,只是将系统实例部署了多份,保证系统的高可用性,缺点是修改任何一个模块的功能都会造成系统整体发布,影响范围比较大。
最终选择了方案二,并且是以 java 开发,原因有以下几点
1、所有人都会 java,有一个是 PHP 高手,但是其他两个人没有 PHP 能力,如果选择 PHP 的话,开发成本会很高,需要一个学 PHP 的过程。
2、方案一实现起来有一些复杂度,可能会完不成,而学校要求一个能真正运行的学生管理系统。
3、由于学校要求不能太简单也不能太复杂,所以在单体应用的情况下引入了应用的负载和数据库的主备。
评论