写点什么

架构实战训练营 模块一作业

作者:Chong Liu
  • 2023-08-30
    陕西
  • 本文字数:771 字

    阅读完需:约 3 分钟


1. 微信业务架构图:


2. 学生管理系统毕设

方案一


  • 前台使用单页面 Web 程序, 也就是 SPA

  • 在虚拟机内部署包含所有模块的 Java App

  • DB 有两台, 其中一台为备份



方案二


  • 前台使用传统 PHP Web 页面

  • 每个虚拟机内部运行两个 container, PHP server 和 Java server

  • PHP 的服务端将业务 CRUD 动作转发到 Java 内

  • ‍ Java App 负责具体的数据操作

  • ‍DB 有两台, 其中一台为备份



方案取舍


针对方案一:

  1. 团队技术水平: 前端需要使用 PHP 的同学学习 SPA 的开发, 需要一段时间. 但是由于其基础好在一周左右能掌握初步的技能而开始工作.

  2. 方案成本: 需要两台 VM, 一个 Nginx, 两个 DB, 本地彻底隔离需要至少五台 VM 机器, 若是将 DB 容器化且合并到 Java 所在的 VM, 只要三台 VM

  3. 开发周期: 两个同学专注 Java 端业务, 前台同学只负责调用 REST API, 开始的时候需要 SPA 的学习, 但后期可以明确分工并行工作.

  4. 对方认可度: 支持 1000+ 的并发访问量对于 Java 应用程序服务器来说没太大问题


针对方案二:

  1. ‍团队技术水平: 前端完全使用 PHP 的技术栈, 但是 CRUD 操作要转发给 Java 代码来完成.

  2. ‍方案成本: 需要两台 VM 运行相互独立的 container 群, 一个 Nginx, 两个 DB, 本地彻底隔离需要至少五台 VM 机器, 若是将 DB 容器化且合并到 Java 所在的 VM, 只要三台 VM. 但是考虑到 PHP 的性能, 三台 VM 对并发处理有挑战

  3. ‍开发周期: 两个同学专注 Java 端业务, 前台 PHP 同学除了负责 Web 页面开发还要定义 PHP 调用 Java 的接口. 这个 PHP 与 Java 的调用有一定的性能损失.

  4. ‍对方认可度: 这个方案基于开发团队的现成技术栈, 开始会很快, 但是 PHP 与 Java 的调用关系增加了额外的工作量, 同时 PHP 对于并发的支持会导致资源消耗大


结论:

选择方案一, 当 PHP 的同学学习 SPA 的时候后台 Java 的业务代码可以并行启动, 开发周期并不会太大影响. 而且系统主要逻辑都在 Java 内, 更易于 TDD 的应用提供质量.

用户头像

Chong Liu

关注

还未添加个人签名 2019-08-29 加入

还未添加个人简介

评论

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