課堂做業04——讀大型網站技術架構後感

結合XXX項目web

讀大型網站技術架構:核心原理與案例分析數據庫

——5,6,7章後感瀏覽器

      在閱讀大型網站技術架構以前咱們學到:能夠用六個質量屬性衡量系統架構的好壞,所謂上樑不正下樑歪,架構也是獲取許多質量屬性的基礎。緩存

      講到可用性,就像永遠沒有不變的需求,一個系統的徹底可用性永遠沒法達到的,但可用性是一個系統最重要的屬性,不可用的系統是沒有意義的。國內的QQ服務99.99%可用,也就是每一年只有53分鐘的時間是不可用的,而Twitter網站的可用性不足99%,相比較而言,國內在社交軟件的可用性要求上仍是比較高的。一個高可用性的網站可能須要過硬的技術、大量的設備資金投入、富有責任心的工程師和一個好運氣。安全

      系統運行時,硬件故障是常態,因此一個高可用架構設計的主要目的是保證硬件服務器故障時服務仍然可用而且數據依然能存儲和訪問。實現該架構的主要手段就是數據和服務的冗餘備份及失效轉移。服務器

      大型網站的服務器經過分層集羣的方式實現高可用性,應用層的負載均衡技術就像是給服務器安了一個衛兵,讓負載均衡服務器與服務器構成一個隊伍,隨時監測服務器安全情況,一旦發生問題便剔除他,並把任務交給其餘安全的服務器。但這種技術也會有失誤的時候,由於備份的服務器是徹底同樣的,當一臺服務器由於某種緣由不可用時,其餘服務器也會由於這個問題宕掉。對於XXX系統,用戶訪問量相對較小,咱們可使用這種方式來提升系統可用性,即提供一個備用服務器。另外,若是服務器沒有配置到負載均衡服務器上,外部用戶是沒法訪問的。session

       應用層中的session信息對系統的可用性也是相當重要的,大型的web網站會有大量的session信息要存儲,選擇一個正確的session管理方式不只能夠保證系統可用,還能夠提升系統運行速度。正如上次對淘寶網架構的瞭解中認識到session管理的重要性。一種較好的session管理方式是使用session服務器,將服務器從新劃分爲有狀態的無狀態。架構

       高可用的數據有數據持久性、數據可訪問性、數據一致性三層含義,數據備份中的熱備方式有兩種:異步熱備、同步熱備,其中同步熱備較爲經常使用。可採用同步熱備的方式給XXX系統進行數據備份,以防數據丟失。負載均衡

       實現網站的伸縮性有兩種:在不一樣的服務器上部署不一樣的服務,提供不一樣的功能;在集羣內多臺相同的服務器中部署相同的功能,實現相同的功能。實現負載均衡的基礎技術有:HTTP協議重定向負載均衡、DNS域名服務器負載均衡、反向代理負載均衡、IP負載均衡、數據鏈路層負載均衡等。對XXX系統而言,可應用DNS域名服務器負載均衡技術。異步

       許多Web 應用程序都將數據保存到REBMS(關係數據庫管理系統)中,應用服務器從中讀取數據並在瀏覽器中顯示。但隨着數據量的增大,訪問的集中,就會出現REBMS的負擔加劇,數據庫響應惡化,網站顯示延遲等重大影響。Memcached是高性能的分佈式內存緩存服務器。通常的使用目的是經過緩存數據庫查詢結果,減小數據庫的訪問次數,以提升動態Web 應用的速度、提升擴展性。

       開發低耦合系統是軟件設計的終極目標之一(一個完整的系統,模塊與模塊之間,儘量的使其獨立存在。也就是說,讓每一個模塊,儘量的獨立完成某個特定的子功能。模塊與模塊之間的接口,儘可能的少而簡單。若是某兩個模塊間的關係比較複雜的話,最好首先考慮進一步的模塊劃分。這樣有利於修改和組合),在XXX系統中,下降系統耦合性能夠從代碼編輯、結構設計入手,儘可能封裝。文中使用分佈式消息隊列(消息隊列是一種進程間通信機制)來下降耦合,使系統更容易擴展,低耦合的模塊更容易複用,一個低耦合的系統設計也會讓開發過程和維護變得更加輕鬆和容易管理,提升系統可用性。

相關文章
相關標籤/搜索