写点什么

架构实战营 - 第 4 期 - 模块一作业

作者:Evan
  • 2021 年 12 月 09 日
  • 本文字数:718 字

    阅读完需:约 2 分钟

  1. 微信的业务架构图


  1. "学生管理系统"毕设架构设计

第 1 步,需求分析,找出系统复杂点

  1. 要求公网域名访问,那么需求购买注册域名,可以购买便宜的.top 域名(几十元),需要做域名解析,在公有云上买了域名会赠送域名解析服务。

  2. 3 人共同做这个项目,都会用 java,按合适原则核心业务逻辑代码要使用 java 开发,有 PHP 高手可以在时间紧的情况下使用 PHP 开发前端。

  3. 管理 1000 个学生,并发量业务量不大,不用太考虑高性能。

  4. 不推荐太简单和太复杂的方案。可以从高可用和数据安全角度,保证业务能力的连续性,可扩展方面不用过多考虑。


第 2 步,架构设计

方案 1:

使用单节点架构,快速构建一个业务可用的系统,nginx,应用,DB 都部署在同一个机器上

优点:

结构简单,可以快速部署,成本低

缺点:

单结点可用性差,无数据库备份数据不安全不可靠。


方案 2:

将应用独立部署,DB 使用主备模式,都使用 Java 开发

优点:

架构简单,部署方便,数据库有备份,数据安全

缺点:

应用层不具备高可用



方案 3:

PHP 高手使用 PHP 实现 Web 前端,业务逻辑层使用 Java 实现,核心业务层 AA 方案部署

优点:

充分发挥专家资源实现对用户界面体验更加的前端,核心业务层具备高可用,系统整体高可用提升

缺点:

由于成本有限,前端仍不具备高可用,存在生死节点。

方案 4:

将业务模块拆分为人员管理、课程管理、考试管理、系统管理 4 个模块,为后续微服务化做准备

优化:

将业务模块分步实现,故障也做了物理隔离,提高系统可用性

缺点:

成本高,部署和维护难度增加

第 3 步,方案取舍

选择方案 3 为交付方案。

选择的理由:

1、充分发挥现有资源(人力资源、时间、费用等),符合合适原则;

2、实现逻辑上较为简单,在此场景无高性能、可扩展等要求,不需要使用复杂的微服务架构等;

3、当前的架构已经达到业务需求的业务需求的业务量要求。

用户头像

Evan

关注

还未添加个人签名 2019.06.10 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营-第4期-模块一作业