写点什么

微信业务架构,学生管理系统架构设计

作者:泋清
  • 2022 年 5 月 18 日
  • 本文字数:699 字

    阅读完需:约 2 分钟

微信业务架构


学生管理系统设计

系统根据以下原则进行设计:

  1. 使用学校已有的 DNS 获得公网域名。

  2. 1000 个学生,学生总数量也不会增加太多,因此无需太高性能。

  3. 但为防止数据丢失,需要数据备份,系统有可用性需求。

  4. 以后可能需要扩展系统功能,同时需要拆分系统模块实现协作,系统有可扩展性需求。

  5. 大部分学生信息是可公开的(比如注册课程,考试信息,学生基本信息),没有安全性需求。但系统需要管理权限,保证只有管理员可以修改学生信息,而学生登陆只可读和可选课。


设计方案一

  1. 一台业务服务器足够支撑 1000 人的访问量(也容许短暂系统不可访问,不影响学校教学)

  2. 拆分子系统,统一使用 Java 开发所有子系统,放在同一台业务服务器。即便于协作,也节约成本。

  3. 数据库使用免费开源 MySQL,使用主备架构,保证数据不丢失。


设计方案二

  1. 用 DNS 绑定单一服务器 IP 地址,节约成本。

  2. 分拆两个子系统协作,分别放在两台服务。学生管理子系统放在业务服务器 1,由组内 PHP 高手独立开发。课程考试子系统放在业务服务器 2,使用 Java 开发。业务服务器 1 需要把课程和考试相关的请求转发给业务服务器 2 处理。

  3. 两台服务器子系统间通过 HTTP/RESTful 协议通信协作

  4. 数据库仍然使用免费开源的 MySQL,主备架构,保证数据不丢失。


设计选择

选择“设计方案二”,有以下几点原因,

  1. 方案二有两台业务服务器,系统复杂度会稍微增加,但优点是能充分利用组内 PHP 高手的能力,提升完成率和可扩展性,符合合适原则。两台服务器,无需过多系统拆分(符合简单原则)。

  2. 方案二另一个缺点是多一台业务服务器带来的成本增加,但两台服务器也带来性能提升,同时方便扩展,比如升级课程考试子系统时,学生管理仍可以在线服务,减少系统不可用时间(有利于系统演化)。


用户头像

泋清

关注

还未添加个人签名 2019.03.24 加入

还未添加个人简介

评论

发布
暂无评论
微信业务架构,学生管理系统架构设计_#架构实战营_泋清_InfoQ写作社区