模块一作业 - 架构训练营
一、微信业务架构图

二、学生管理系统业务架构
整体说明:
根据需求描述,整体功能可以分为 4 个核心模块;
学生人数为 1000 人,整体的技术复杂度和业务复杂度都较低,不涉及高可用、高性能;
数据要求一定的高可用,采用 MySQL 主备方案;
基于个人经济,计划购买云主机,申请域名绑定 Nginx 主机,另再购买应用服务器和数据库服务器。应用服务器中采用 docker 方式部署个应用
方案一:单体服务多实例


方案一优劣说明:
单体架构,开发及运维相对都比较简单
方案二:拆分子系统

方案二优劣说明:
方案一的调整,按功能模块进行拆分,外部复杂度相对会增加;
但结合还有 2 个开发同学,可以各自负责一个模块,能有效提高开发效率,内部复杂度也会相应降低
另外后续某个子系统访问较多,可以单独针对此子系统进行多实例横向扩展
方案三:拆分微服务

方案三优劣说明:
方案二的调整,对照子系统进行微服务拆分;
对微服务基础设施有要求
综合考虑:
最终考虑使用方案二,拆分子系统,3 人可以各自负责进行独立开发提高开发效率。
评论