微信业务架构 & 学生管理系统架构选型
一:微信业务架构
这边划分了四个业务模块:社交、金融、公众(商家)、账号四个模块
二:学生管理系统
需求背景:实现一个学生管理系统,可支持 1000 学生。
业务背景:3 个研发,都会 Java,一个 php 高手,资金紧张。
复杂度分析:
1)性能:服务的用户很少,无高并发场景。
2)可用性:对可用性要求,对系统可用性不敏感,尽量保证数据不丢失,其实 1000 个学生即便补其实也不是非常麻烦,在资金紧张的前提下,可不选择备用服务器,可考虑多备一个磁盘即可(拷贝数据用即可)。
3)可扩展:因做系统,而非平台,且学校学生人数每年相对稳定,故系统无可扩展性性要求。
4)技术栈:Java 会的比较多,从人力利用及语言生态上来说,选择 Java
架构方案:
1)简单
2)复杂
介于以上两种架构方案,综合具体业务背景选择第一种,
理由如下:
1)架构设计因满足合适、简单、演进三个原则,从合适及简单两个原则的角度上来说,1000 个人的学生管理系统,无需设计的很复杂,特别在没有平台话需求且预算有限的前提下,那么第一种方案既满足合适也满足简单,相对而言第二种就过于复杂了,并不符合上述两个原则。从演进的角度讲,第一种架构在编写代码的时候,注意抽象和预留扩展点,可以抽成相对独立的 module 即可,将来即便需要做成微服务,也可以比较容易剥离出来,第二种架构直接做成微服务,其实在上述的业务背景下是不合适的。
评论