写点什么

模块一作业

用户头像
俊杰
关注
发布于: 6 小时前

1 微信业务架构图



2 学生管理系统毕设架构设计

2.1 需求分析

复杂度分析:

  • 高性能:能够支撑管理 1000 个学生,这对于一般系统来说没什么压力,基本不需要考虑性能问题。

  • 高可用:数据高可用,不要全部丢失。

  • 可扩展:业务需求比较复杂。

  • 安全:公网域名可访问,要考虑数据安全问题。

  • 成本:团队规模较小(3 人),经济条件一般。


总结:

  1. 数据高可用,不要全部丢失

  2. 可扩展

  3. 控制成本

  4. 要有一定复杂度,以满足答辩要求


2.2 备选方案



方案一的优点:

  • 资源成本低,使用学校已有 DNS 节约资源;应用和存储可以最低占用两台机器。

  • 架构简单,采用单体服务


缺点:

  • 过于简单,答辩不占优势



优点:

  • 资源成本低,使用已有的 DNS 节约资源;应用和存储可以最低占用两台机器。

  • 垂直拆分,提高可扩展性;同时也符合毕业设计有一定复杂度的要求,容易通过答辩

  • 拆分微服务,可复用性和扩展性增强

缺点:

  • 架构略为复杂

  • 开发难度稍高,开发周期长

  • 运维难度大


2.3 最终方案


团队中仅有 1 人会 PHP,为保证团队协作,全员参与,因此两种方案都不考虑使用 PHP.


以上两种方案最终评估,选择方案二。分析如下:

  • 合适原则:符合团队技术水平,也符合答辩要求。方案一虽然可以快速开发上线,但作为毕业设计,并不适合答辩,因为它过于简单。

  • 简单原则:拆分为 3 个服务,且不需要其他基础设施,相对简单。

  • 可演进:方案二可扩展性更强,即使将来面临更高的性能需求或更复杂的业务需求增长都可以应付。如果有更高性能需求,则不同微服务可以灵活伸缩;如果有其他更多业务需求,也可以在此基础上增加微服务。当然,方案一如果代码模块拆分得当(例如按业务分包,领域驱动等最佳实践)后期做垂直拆分微服务也并不是困难的事情。


用户头像

俊杰

关注

还未添加个人签名 2017.08.27 加入

还未添加个人简介

评论

发布
暂无评论
模块一作业