架构实战营 - 模块一作业
微信业务架构图
思路:
1. 梳理出微信各个业务功能
2.相似业务功能归类,删除太细的业务功能
3.如果类别太多,继续归类,形成更大范围的类别
4.对于不好分类或者功能单一的业务功能放到“其他”类别
5.判断各个业务功能的主要区别,例如可以分为核心业务和非核心业务
学生管理系统
面向复杂度分析:
1、高可用:数据高可用,数据不能大量丢失。考虑大学课程必修 MySQL(假设),可以使用 MySQL 主备
2、高性能:基本无要求
3、高扩展:基本无要求
4、成本:预算较低,每人最多 1~2 台服务器
5、安全:部署在公网,考虑统一入口、数据加密传输,防 DDos 攻击
方案一:
方案 1 描述:
1、考虑安全,使用 Nginx 做流量入口,Nginx 暴露到公网,其余服务器都在内网
2、不拆分子系统,考虑 3 人协作开发,模块最好划分成 3 个,每人负责一个
3、考虑成本,实际部署中,业务子系统 1 和 MySQL(主)可以部署在一起,业务子系统 2 和 MySQL(备)可以部署在一起,加 Nginx,总计 3 台服务器
方案二:
方案 2 描述:
1、考虑安全,使用 Nginx 做流量入口,Nginx 暴露到公网,其余服务器都在内网
2、拆分子系统,考虑 3 人协作开发,子系统最好划分成 3 个,每个子系统可以使用不同技术栈(Java or PHP)
3、考虑成本,实际部署中,MySQL 可以和子系统混部到两台机器,加 Nginx,总计 3 台服务器
方案选型:
经过对比,方案一的优势明显高于方案二,最终选择方案一
版权声明: 本文为 InfoQ 作者【满心】的原创文章。
原文链接:【http://xie.infoq.cn/article/357cf9a8793094a8dc640046a】。文章转载请联系作者。
评论