架构实战营模块一作业
1.微信业务架构
2.“学生管理系统”毕设架构设计
2.1 复杂度考虑
1.高可用: 通过服务器集群保障高可用
2.高性能: 1000 个学生,数量级不大,并发度理论最高 1000,不是复杂度关键点
3.可扩展: 毕业设计交付后,后期不再升级维护,扩展性可在落地前考虑完毕,单体架构通过模块切分,若采用微服务了拆分为不同服务
4.成本:学生经济实力有限,在满足可用性同时尽量减少复杂度降低费用成本
5.安全: 数据安全需要考虑,考虑权限管理,数据备份
2.2.方案一
优点:
1.DNS 服务可使用学校目前已经使用的 DNS 服务器,增加配置,成本低
2.单体架构,简单,成本低,将角色管理、权限管理、学生管理、考试管理、通过不同模块集成在同一服务中,3 名学生分别开发其中一个或多个模块
3.引入 Mysql 开源数据库作为数据存储,成本低,资料多利于落地,Mysql 自带复制功能无需额外开发
缺点:
1.DNS 服务器无故障识别能力,且有缓存,无自动故障转移,需要人工接入
2.数据库主备,无故障发现机制,数据库故障时需要人工介入,手工切换数据库
2.3 方案二:
优点:
1.采用服务拆分,系统功能职责明确边界清晰,利于扩展
2.增加 Nginx 作为负载均衡
务中,3 名学生分别开发其中一个或多个模块
3.引入 Mysql 开源数据库作为数据存储,成本低,资料多利于落地,Mysql 自带复制功能无需额外开发
缺点:
1.多个服务需要部署维护,资金成本高,维护成本高
2.数据库主备,无故障发现机制,数据库故障时需要人工介入,手工切换数据库
评论