結合《大型網站技術架構:核心原理與案例分析》第5、六章分析《某重大技術需求徵集系統》

  網站的可用性描述網站可有效訪問的特性。網站的可用性戰術是網站有效運行的根本保障,一個網站的高可用性可以給用戶很大的安全感,最大限度的保障用戶的利益、隱私不被侵犯。百度被黑客攻擊,其DNS域名被劫持,致使百度全站長達數小時不可訪問。對百度的形成很大的負面影響。因爲經費有限,硬件設備在節約成本的同時也下降了可用性,因此硬件故障就發生的比較頻繁,所以,網站的高可用架構設計的主要目的就是保證服務器硬件故障時服務依然可用、數據依然保存並可以被訪問。安全

  經典型的分層模型MVC,即應用層、服務層、數據層。應用層主要負責具體業務邏輯處理;服務層負責提供可複用的服務;數據層負責數據的存儲與訪問。在複雜的大型網站架構中,劃分的粒度會更小、更詳細,結構更加複雜,服務器規模更加龐大,但仍是可以將其劃分到應用層、服務層和數據層。服務器

       中小型網站在具體部署時,一般將應用層和服務層部署在一塊兒,而數據層則另外部署。應用層主要處理網站應用的業務邏輯,應用的一個顯著特色是應用的無狀態性。不保存狀態的應用給高可用的架構設計帶來了巨大便利,既然服務器不保存請求的狀態,那麼全部的服務器徹底對等,當任意一臺或多臺服務器宕機,請求提交給其餘任意一臺可用機器處理,這樣對終端用戶而言,請求老是可以成功的,整個系統依然可用。對於應用服務器集羣,實現這種服務器可用狀態實時監測、自動轉移失敗任務的機制是負載均衡。網站的伸縮性永無止境。所謂網站的伸縮性,指不須要改變網站的軟硬件設計,僅僅經過改變部署的服務器數量就能夠擴大或者縮小網站的服務處理能力。要實現網站的可伸縮性,關鍵技術就在於如何構建良好的服務器集羣。要達到良好的目標,就要求每次擴容和減小服務器時,對整個網站的影響是最小的。架構

       CAP原理就是選擇強化分佈式存儲系統的可用性和伸縮性,而在某種程度上放棄一致性。CAP原理對於可伸縮的分佈式系統設計具備重要意義,不恰當地迎合各類需求,可能會使設計進入兩難境地,難覺得繼。咱們的系統有大量的統計數據。咱們的網站隨時都有可能進行修改,好比發佈新功能,這時就須要在服務器上關閉原有的應用,從新部署新的應用,整個過程要求不影響用戶的使用。爲了把對用戶的影響下降到最小,一般使用發佈腳原本完成發佈。通過嚴格的測試,軟件部署到服務器仍是會出現問題,主要緣由就是測試環境和線上環境並不相同,因此咱們在網站發佈時,要把測試經過的代碼先發布到預發佈機器上,確認系統沒有問題後才正式發佈。負載均衡

        網站的可擴展架構是隨需而變的。網站的擴展性架構設計,是對現有系統影響最小的狀況下,系統功能可持續擴展及提高的能力。擴展性是指對現有系統影響最小的狀況下,系統功能可持續擴展或提高的能力。它是系統架構設計層面的開閉原則,架構設計考慮將來功能擴展,當系統增長新功能時,不須要對現有系統的結構和代碼進行修改。設計網站可擴展架構的核心思想是模塊化,並在此基礎上,下降模塊間的耦合性,提供模塊的複用性。模塊經過分佈式部署,獨立的模塊部署在獨立的服務器上集羣從物理上分離模塊之間的耦合關係。可用性戰術將會阻止錯誤發展成爲故障,或者至少可以把錯誤的影響限制在必定範圍內,從而使系統恢復成爲可能。分佈式

對於重大技術需求分析系統:模塊化

       可用性戰術中,有較少的錯誤檢測,可是可用性不高,代碼缺陷不少,容易崩潰,不具備大量用戶使用的可能。並且容易出現未考慮到的錯誤,致使系統出問題。性能

       可修改性:沒有遵循「高內聚低耦合」的原則,將整個系統進行分層,數據、應用、操做沒有作到相互關聯且不被彼此影響,一旦出現錯誤,可能全盤皆崩,須要從新修改。測試

相關文章
相關標籤/搜索