1. 程式人生 > >客戶端-服務器模式分析

客戶端-服務器模式分析

目的 span 服務器組件 百萬 知情 服務器組 下載 的人 爭氣

客戶端-服務器模式定義

架構模式是一個通用的、可重用的解決方案,用於在給定上下文中的軟件體系結構中經常出現的問題。

架構模式與軟件設計模式類似,但具有更廣泛的範圍。(維基百科)

而客戶端-服務器模式由兩部分組成:一個服務器和多個客戶端。服務器組件將為多個客戶端組件提供服務。

客戶端從服務器請求服務,服務器為這些客戶端提供相關服務。此外,服務器持續偵聽客戶機請求。

技術分享圖片

客戶端-服務器模式的特定場景與面臨的問題以及解決方案和實例

特定場景:大量用戶訪問如何進行優化客戶端海量資源

一個問題:資源不對等,如何實現資源共享

解決方案:

1 增加服務器數量

2 優化數據庫-連接池訪問數

3 二層發展成三層-中間件篩選過濾

4 優化客戶端,服務器處理完後0.06秒已已經處理完,已傳輸到了但在5秒客戶端才顯示。

5 中間加隊列,減少數據庫的壓力

技術分享圖片(該圖片與本文內容無關)

實例:京東圖書

實例描述:2011年京東為了給其旗下京東圖書造勢,推出大幅度優惠政策,致使活動當天服務器崩潰,強東一怒之下又添了幾臺昂貴的服務器,然並卵,添加服務器之後不久,服務器再次崩潰~~(不爭氣的服務器),好吧,我承認是訪問的人太多了。

實例分析:軟件架構設計出現了問題,沒能很好的處理大規模用戶的訪問,造成了崩潰,還記得強東當時在文博發文說加3倍的服務器,然而,不改變架構,只是從表面上去解決問題,那麽最終一定還是會導致崩潰(事實證明沒錯,加了之後又崩潰了)。

解決方案見上面的分析。

技術分享圖片

客服端-服務器模式的優勢和劣勢:

優勢

●在大多數情況下,客戶機服務器體系結構允許的角色和責任的計算系統是其中幾個已知只有通過網絡互相獨立的計算機分發。這將創建一個額外的優勢,這種體系結構:提高維護的簡便性。例如,它可以更換,維修,升級,甚至遷移服務器,同時它的客戶都不知情,並保持該更改的影響。

●所有數據都存儲在服務器上,通常比大多數客戶更大的安全控制。服務器可以更好地控制訪問和資源,以保證只有那些具有適當權限的用戶可以訪問和更改數據。

●由於數據的集中存儲,對數據的更新是更容易管理相比,一個P2P模式。在後者,數據更新可能需要分發和應用到每個網絡中的對等,既費時又容易出錯,因為可以有成千上萬甚至數百萬的同齡人。

●許多成熟的客戶端服務器技術已經可以方便的目的是確保安全,用戶界面友好,易用性。

●具有不同功能的多個不同的客戶它的功能。

技術分享圖片

劣勢

●作為客戶端同時請求數給定的服務器的增加,服務器可以成為重載。對照到一個P2P網絡,在其總帶寬實際上增加為節點的添加,由於P2P網絡的總帶寬可以大致計算作為該網絡中每個節點的帶寬的總和。

●客戶機服務器模式缺乏一個良好的P2P網絡的魯棒性。在客戶端服務器,如果一個重要的服務器失敗,客戶的要求不能得到滿足。在P2P網絡,資源通常分布在許多節點。即使一個或多個節點出發,放棄一個下載文件,例如,剩下的節點應該還是有必要來完成下載的數據。

技術分享圖片(放張圖片鎮樓)

客戶端-服務器模式分析