写点什么

架构训练营 - 模块一作业

作者:Sam
  • 2022-12-17
    江苏
  • 本文字数:612 字

    阅读完需:约 2 分钟

一、微信业务架构

二、“学生管理系统”毕设架构设计

2.1 复杂度分析

2.1.1 高性能

  1. 要支撑管理 1000 个学生,学生登录与权限验证,需要使用缓存来解决

2.1.2 可扩展

1.毕设不用太注重扩展性,由于 3 人组团开发,协调好模块责任人,以及相互之间的接口即可

2.1.3 安全

1.公网访问,需要对关键接口做权限验证

2.接口要做限流处理,防止 ddos 攻击

2.1.4 成本

1.购置两台云服务器,服务拆分部署

2.域名通过《本地配置解析 DNS》实现

2.2 业务架构图


2.3 备选架构

说明:备选架构,是我在看了《作业指导》后修改过的,第一版本《作业指导》反馈的问题我都踩了坑。

2.3.1 备选架构一:拆分部署

说明
  1. 拆分为两个子系统

  2. 利用《本地配置 DNS》来解析到对应服务器,访问对应的 tomcat

  3. 数据库:两个子系统配置自己的数据库

  4. 学生信息、登录信息采用 内存缓存

  5. 选课/考试子系统+Mysql 部署一台;Mysql+学生子系统部署一台

优点
  1. 可扩展性好,子系统内部可自形演变

  2. 可分布式部署,良好的高性能、可用性

缺点
  1. 比《备选架构二》部署复杂

2.3.2 备选架构二:单体部署

说明
  1. 所有功能都集成在一个 App,减少模块依赖外部复杂度

  2. Web 服务使用 tomcat

  3. 数据库采用 Mysql

  4. 所有程序部署在一台计算机上

优点
  1. 易部署

  2. 调试成本低

缺点
  1. 无高可用、高性能保障

  2. 由于是一个 App,扩展性没有分布式的好

2.4 最终方案

最终选择《备选架构一:拆分部署》,理由如下:

  1. 满足答辩,架构不推荐太简单和太复杂的要求,所以拆分为两个服务,达到分布式部署的效果

  2. 2 人 Java,1 人 PHP 高手,为了降低跨语言的复杂,所以放弃 PHP

发布于: 刚刚阅读数: 6
用户头像

Sam

关注

还未添加个人签名 2018-11-19 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营-模块一作业_架构实战营_Sam_InfoQ写作社区