1. 程式人生 > >學生信息管理系統架構設計

學生信息管理系統架構設計

系統 text 接受 目的 shadow 情況 sha 機房 數據庫

近期學習架構設計,首先從最基本的學生信息管理系統進行分析。


目的:學生信息管理系統架構設計

思考第一步:識別系統復雜度

??架構設計的真正目的是為了解決軟件復雜度帶來的問題,故應首先識別本系統復雜度在何處,後文分析完整個系統見分曉。

思考第二步:基本功能

  • 登錄
  • 註冊
  • 信息查詢
  • 成績管理
  • 課程管理

思考第三步:性能

??一般學校學生約1~5萬人,學生信息管理系統訪問頻率不高,平均每天單個學生的訪問次數不到1次,因此性能這部分要求並不復雜,存儲使用常規的MySQL數據庫既能勝任,緩存可以不用,Web服務器使用Nginx綽綽有余。

思考第四步:可擴展性

??學生信息管理系統功能比較穩定,可擴展空間並不大,因此可擴展性也不復雜。

思考第五步:高可用

??學生信息管理系統即使宕機2小時,對學生管理工作影響並不大,因此可以不用做負載均衡,更不用考慮異地多活這類復雜的方案。但是,如果學生的數據全部丟失,修復是非常麻煩的,只能靠人工逐條修復,這個很難接受,因此需要考慮存儲高可靠,這裏就有點復雜了。我們需要考慮多種異常情況:機器故障、機房故障等。針對機器故障,我們需要設計MySQL的同機房主備方案;針對機房故障,我們需要設計MySQL的跨機房同步方案。

思考第六步:成本

??由於系統很簡單,基本上幾臺服務器就能搞定,對於一所大學來說完全不是問題,故無需關註太多。

結論

??至此,可以看出本系統設計方案的主要復雜性體現在存儲可靠性上,需要保證異常的時候,不要丟失所有數據即可(丟失幾個或幾十個學生的信息問題不大)。對應的架構如下:

?

技術分享圖片

學生信息管理系統架構設計