學生信息管理系統架構設計
阿新 • • 發佈:2018-06-20
系統 text 接受 目的 shadow 情況 sha 機房 數據庫 近期學習架構設計,首先從最基本的學生信息管理系統進行分析。
?
目的:學生信息管理系統架構設計
思考第一步:識別系統復雜度
??架構設計的真正目的是為了解決軟件復雜度帶來的問題,故應首先識別本系統復雜度在何處,後文分析完整個系統見分曉。
思考第二步:基本功能
- 登錄
- 註冊
- 信息查詢
- 成績管理
- 課程管理
思考第三步:性能
??一般學校學生約1~5萬人,學生信息管理系統訪問頻率不高,平均每天單個學生的訪問次數不到1次,因此性能這部分要求並不復雜,存儲使用常規的MySQL數據庫既能勝任,緩存可以不用,Web服務器使用Nginx綽綽有余。
思考第四步:可擴展性
??學生信息管理系統功能比較穩定,可擴展空間並不大,因此可擴展性也不復雜。
思考第五步:高可用
??學生信息管理系統即使宕機2小時,對學生管理工作影響並不大,因此可以不用做負載均衡,更不用考慮異地多活這類復雜的方案。但是,如果學生的數據全部丟失,修復是非常麻煩的,只能靠人工逐條修復,這個很難接受,因此需要考慮存儲高可靠,這裏就有點復雜了。我們需要考慮多種異常情況:機器故障、機房故障等。針對機器故障,我們需要設計MySQL的同機房主備方案;針對機房故障,我們需要設計MySQL的跨機房同步方案。
思考第六步:成本
??由於系統很簡單,基本上幾臺服務器就能搞定,對於一所大學來說完全不是問題,故無需關註太多。
結論
??至此,可以看出本系統設計方案的主要復雜性體現在存儲可靠性上,需要保證異常的時候,不要丟失所有數據即可(丟失幾個或幾十個學生的信息問題不大)。對應的架構如下:
學生信息管理系統架構設計