您好,登錄后才能下訂單哦!
??近期學習架構設計,首先從最基本的學生信息管理系統進行分析。
??架構設計的真正目的是為了解決軟件復雜度帶來的問題,故應首先識別本系統復雜度在何處,后文分析完整個系統見分曉。
??一般學校學生約1~5萬人,學生信息管理系統訪問頻率不高,平均每天單個學生的訪問次數不到1次,因此性能這部分要求并不復雜,存儲使用常規的MySQL數據庫既能勝任,緩存可以不用,Web服務器使用Nginx綽綽有余。
??學生信息管理系統功能比較穩定,可擴展空間并不大,因此可擴展性也不復雜。
??學生信息管理系統即使宕機2小時,對學生管理工作影響并不大,因此可以不用做負載均衡,更不用考慮異地多活這類復雜的方案。但是,如果學生的數據全部丟失,修復是非常麻煩的,只能靠人工逐條修復,這個很難接受,因此需要考慮存儲高可靠,這里就有點復雜了。我們需要考慮多種異常情況:機器故障、機房故障等。針對機器故障,我們需要設計MySQL的同機房主備方案;針對機房故障,我們需要設計MySQL的跨機房同步方案。
??由于系統很簡單,基本上幾臺服務器就能搞定,對于一所大學來說完全不是問題,故無需關注太多。
??至此,可以看出本系統設計方案的主要復雜性體現在存儲可靠性上,需要保證異常的時候,不要丟失所有數據即可(丟失幾個或幾十個學生的信息問題不大)。對應的架構如下:
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。