我的架构学习之始
复杂度分析
✅高性能:支撑管理 1000 个学生
✅高可用:保持日常可用性,数据存储可靠性。
✅可扩展:能够扩展一定的需求增加的功能
✅成本: 需要降低成本
✅安全: 需要登录才能查看使用功能,学生,老师和教务人员需要不同的权限
✅架构要求:适中的复杂度设计
✅开发资源:三个人都会 Java,有一个 PHP 高手
架构
学生管理系统架构备选方案一
说明:
1、由于开发团队人员较少,不做微服务拆分(拆分会增加系统复杂度),开发时做业务模块拆分即可
2、由于只需要管理 1000 个学生,因此这里只需要两台 web 服务器即可,为了防止数据丢失,数据库做了主备
学生管理系统架构备选方案二
说明:
1、由于开发团队人员较少,不做微服务拆分(拆分会增加系统复杂度),开发时做业务模块拆分即可
2、由于只需要管理 1000 个学生,因此这里只需要两台 web 服务器即可,为了防止数据丢失,数据库做了主备
优缺点对比
方案一
优点:
1、PostgreSQL 在写查询 SQL 时比 MySQL 方便
缺点:
1、团队开发人员对 MySQL 比较熟悉
2、需要搭建 Nginx,需要占用额外资源
方案二
优点:
1、充分利用学校已有 DNS 资源
2、使用开发人员比较熟悉的数据库 MySQL
缺点:
1、MySQL 在写查询 SQL 时不如 PostgreSQL 方便
方案选择及理由
这里我选择备选方案二
因为可以充分利用现有资源,以及利用开发团队比较熟悉的数据库进行开发。
评论