美文网首页
架构训练营模块一作业

架构训练营模块一作业

作者: 冬天里的懒喵 | 来源:发表于2021-12-09 18:21 被阅读0次
  1. 画出微信的业务架构图。
微信业务架构
  1. “学生管理系统”毕设架构设计
    假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
    ① 要求可以通过公网域名访问;
    ② 要求至少3 人合作完成;
    ③ 能够支撑管理1000 个学生;
    ④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
    你找了2 个好朋友一起来做这个项目,你们的基本情况如下:
    ① 大家都会Java,但是有一个是PHP 高手;
    ② 大家经济条件一般。
    作业要求:
    ① 对照面向复杂度架构设计方法论,构思2 个以上的备选架构方案。
    ② 使用PPT 来画出你的备选架构方案,并说明方案的优缺点。
    ③ 给出你选择的最终方案以及选择理由。

学生管理系统业务架构图:

学生管理系统业务架构图

架构方案:

考虑到有一个人是php高手,结合php的特点,以及目前的人员配备情况,最简单的办法就是将项目分离,用php来实现静态的页面和无状态的数据展示。
将php实现的部分放置在最前端。之后将业务逻辑,以及对数据的处理,采用java开放,通过接口的形式,提供给php的web端调用。应用架构图如下:

学生管理系统应用架构图

在部署过程中,可以有多种方案来部署。

方案一:
这是最简单的一种部署方案,考虑到现有资源的情况,以及当前的经济条件,可以采用云主机的方案来进行,模块之间都采用单点。

方案一

方案二:
采用云主机,需要考虑到学生数据的安全性,因此需要通过mysql主从,主库进行写入和修改操作,从库也能分担读的压力。

方案二

方案三:
在考虑到数据安全性的基础之上,由于有1000学生,并发的峰值可能达到1000.因此,需要使得系统具备可扩展性。
可以充分利用nginx的loadbalace功能,在最开始,请求到前端的请求通过nginx负载到多个前端的节点。之后再访问后端的时候,再次通过nginx来负载。
负载到后端之后,java后端具备多个服务,这样初步实现看可扩展。

方案三

方案四:
可以考虑将java的后端进一步升级为springcloud微服务。这样除了loadbalance之外,还能更好的支持failover,也支持系统的水平扩容,增加系统的高可用。

方案四

方案五:
同样,在方案四的基础上也可采用dubbo,通过rpc的方式,来提升java后端的高可用能力。

方案五

方案选择:

  • 方案一,过于简单,不支持负载均衡,也没有failover的能力,性能太差。还有可能造成数据丢失,因此放弃。
  • 方案二,考虑到的数据的安全性问题,但是在应用上依然不具备高可用能力。
  • 方案三,具备的初步的负载均衡和初步的failover能力,但是并不完美。
  • 方案四、方案五在高可用上考虑得比较完美了,但是需要额外的注册中心节点。成本较高。而且当前的用户量还没有到需要支持水平扩展的要求。
    因此综合选择方案三。

相关文章

  • 架构训练营模块一作业

    画出微信的业务架构图。 “学生管理系统”毕设架构设计假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,...

  • 架构训练营模块二作业

    分析一下微信朋友圈的高性能复杂度【作业要求】 对照模块2讲述的复杂度分析方法,分析微信朋友圈的复杂度。 针对各个复...

  • 架构师训练营第四周学习总结

    本周的课程内容是互联网应用架构的总览,也是架构师训练营真正进入到“架构”这一模块的开端,可以说是干货满满。周四的课...

  • 订单整理设计

    架构 业务架构——根据业务需求设计业务模块及其关系 系统架构——设计系统和子系统的模块 技术架构——决定采用的技术...

  • 微服务囧途之BFF层登场

    从单体架构演化为微服务架构后,架构者的期望是“模块A”+“模块B” = “后端服务”。 场景一 Web端和Mobi...

  • DJango 简介

    软件架构 软件架构:是由其中的各个模块组成的,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发。 目的...

  • django 框架介绍

    软件架构:软件框架是由其中的各个模块组成的,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发。软件架构...

  • Android#15 -- MyDay App (1)

    文章目录一、 项目架构功能模块原型设计架构设计代码编写测试二、团队分工 [1] 功能模块 设想的功能模块图 [2]...

  • python 模块和包

    模块和包 目标 模块 包 发布模块 01. 模块 1.1 模块的概念 模块是 Python 程序架构的一个核心概念...

  • SPRING源码解析之概述

    SPRING框架架构图 Spring 框架是一个分层架构,由 几个定义良好的模块组成。Spring 模块构建在核心...

网友评论

      本文标题:架构训练营模块一作业

      本文链接:https://www.haomeiwen.com/subject/hznffrtx.html