模块一作业
作业一:微信业务架构图
作业二:学生管理-架构设计
学生管理-备选架构一
备选架构一说明:
1、采用 Nginx 做反向代理,保障内部服务器的安全性
2、采用单个业务服务器支撑学生管理系统
3、采用 Mysql 主备,符合数据高可用
学生管理-备选架构二
备选架构二说明
1、采用 Nginx 做负载均衡和反向代理,保障内部服务器的安全性
2、采用两个业务服务器支撑学生管理系统,满足业务服务高可用
3、采用 Mysql 主备,符合数据高可用
学生管理-备选架构三
学生管理-备选架构三说明:
1、采用 Nginx 做负载均衡和反向代理,保障内部服务器的安全性
2、采用两个业务服务器支撑学生管理系统,满足服务的高可用
3、采用 MongoDB 主备,符合数据高可用
具体采用哪种数据库,要考虑业务特性和团队成员的技术储备。
面向复杂度架构设计-方案取舍
利用架构设计三原则对三个备选架构进行衡量,最终选择备选架构一。理由如下:
1、要求可以通过公网域名访问,基于安全性考虑,使用 Nginx 做反向代理(满足合适原则)
2、经济条件一般,以及学生管理系统对服务的高可用、实时性要求不是特别高,采用一个服务器来部署业务系统,升级运维简单,后续要求高可用时可以采用备选架构二(满足简单以及演化原则)
3、基于至少三个学生参与开发、大家都会 java 和一个是 PHP 高手,将业务功能拆分为四个模块:学生管理、课程管理、考试管理、权限管理。其中,学生管理和课程管理访问频繁且对并发有一定要求,可由两位 java 程序员开发;而考试管理、权限管理相对并发小且大多数由静态页面构成,可由擅长 PHP 语言的同学完成开发。(满足合适原则)
4R
Rank:
Role:
Relation:
Rule:
架构核心场景 - 创建学校
架构核心场景 - 学生注册
架构核心场景 - 学生选课
、
版权声明: 本文为 InfoQ 作者【unique】的原创文章。
原文链接:【http://xie.infoq.cn/article/b2df4c8b0baf5ae696823cbea】。未经作者许可,禁止转载。
评论