集中式、分佈式、集羣、高併發等概念

原文鏈接:https://blog.csdn.net/qq_35642036/article/details/88387364

讀本之前須知 轉載自鏈接:https://blog.csdn.net/qq_35642036/article/details/88387364

以下是必須要讀的

https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650121193&idx=2&sn=3389454777099cd1927ce99fa619d34e&chksm=f36bbec8c41c37de9f7228177febd0d1deacfb9539e16a6312a6c9a6f6935fa128a85e2b2b57&scene=21#wechat_redirect

https://mp.weixin.qq.com/s/TnwgfrEXtIripuKhBzPQgA

集中式、分佈式、集羣

 

互聯網架構最大的特點:

高併發:單位時間收到的請求數量

海量數據:海量數據存儲與分析

集中式系統

集中式系統用一句話概括就是:一個主機帶多個終端。終端沒有數據處理能力,僅負責數據的錄入和輸出。而運算、存儲等全部在主機上進行。

拿一個電子商城舉例,一個集中式系統的電子商城,通過一個應用實現,該應用部署在一起主機上,對外提供服務。用戶的所有操作均通過這一臺機器的一個應用實現。

集中式系統的最大的特點就是部署結構非常簡單,底層一般採用從IBM、HP等廠商購買到的昂貴的大型主機。因此無需考慮如何對服務進行多節點的部署,也就不用考慮各節點之間的分佈式協作問題。

但是,由於採用單機部署。很可能帶來系統大而複雜、難於維護、發生單點故障(單個點發生故障的時候會波及到整個系統或者網絡,從而導致整個系統或者網絡的癱瘓)、擴展性差等問題。

 

分佈式系統

分佈式系統是一個硬件或軟件組件分佈在不同的網絡計算機上,彼此之間僅僅通過消息傳遞進行通信和協調的系統。

簡單來說就是一羣獨立計算機集合共同對外提供服務,但是對於普通的用戶來說,就像是一臺計算機在提供服務一樣。

分佈式意味着可以採用更多的普通計算機(相對於昂貴的大型機)組成分佈式集羣對外提供服務。計算機越多,CPU、內存、存儲資源等也就越多,能夠處理的併發訪問量也就越大。

一個由分佈式系統實現的電子商城,在功能上可能被拆分成多個應用,分別提供不同的功能,組成一個分佈式系統對外提供服務。

而系統內的各個子系統之間通過網絡進行通信和協調,如異步消息或者RPC/HTTP請求調用等。

所以,分佈式系統中的計算機在空間上幾乎沒有任何限制,這些計算機可能被放在不同的機櫃上,也可能被部署在不同的機房中,還可能在不同的城市中,對於大型的網站甚至可能分佈在不同的國家和地區。

但是,無論空間上如何分佈,一個標準的分佈式系統應該具有以下幾個主要特徵:

分佈性

分佈式系統中的多臺計算機之間在空間位置上可以隨意分佈,系統中的多臺計算機之間沒有主、從之分,即沒有控制整個系統的主機,也沒有受控的從機。

透明性

系統資源被所有計算機共享。每臺計算機的用戶不僅可以使用本機的資源,還可以使用本分佈式系統中其他計算機的資源(包括CPU、文件、打印機等)。

同一性

系統中的若干臺計算機可以互相協作來完成一個共同的任務,或者說一個程序可以分佈在幾臺計算機上並行地運行。

通信性

系統中任意兩臺計算機都可以通過通信來交換信息。

 

和集中式系統相比,分佈式系統的性價比更高、處理能力更強、可靠性更高、也有很好的擴展性。

但是,分佈式在解決了網站的高併發問題的同時也帶來了一些其他問題。

首先,分佈式的必要條件就是網絡,這可能對性能甚至服務能力造成一定的影響。其次,一個集羣中的服務器數量越多,服務器宕機的概率也就越大。另外,由於服務在集羣中分佈式部署,用戶的請求只會落到其中一臺機器上,所以,一旦處理不好就很容易產生數據一致性問題。

 

常用的分佈式方案

1、分佈式應用和服務

將應用和服務進行分層和分割,然後將應用和服務模塊進行分佈式部署。這樣做不僅可以提高併發訪問能力、減少數據庫連接和資源消耗,還能使不同應用複用共同的服務,使業務易於擴展。

2、分佈式靜態資源

對網站的靜態資源如JS、CSS、圖片等資源進行分佈式部署可以減輕應用服務器的負載壓力,提高訪問速度。

3、分佈式數據和存儲

大型網站常常需要處理海量數據,單臺計算機往往無法提供足夠的內存空間,可以對這些數據進行分佈式存儲。

4、分佈式計算

隨着計算技術的發展,有些應用需要非常巨大的計算能力才能完成,如果採用集中式計算,需要耗費相當長的時間來完成。分佈式計算將該應用分解成許多小的部分,分配給多臺計算機進行處理。這樣可以節約整體計算時間,大大提高計算效率。

 

分佈式與集羣

分佈式(distributed)是指在多臺不同的服務器中部署不同的服務模塊,通過遠程調用協同工作,對外提供服務。

集羣(cluster)是指在多臺不同的服務器中部署相同應用或服務模塊,構成一個集羣,通過負載均衡設備對外提供服務。

 

分佈式下有三態:成功、失敗、超時

 

 

高併發

什麼是高併發

高併發是互聯網分佈式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求

高併發相關常用的一些指標有響應時間吞吐量每秒查詢率QPS、併發用戶數等。

響應時間:系統對請求做出響應的時間。例如系統處理一個HTTP請求需要200ms,這個200ms就是系統的響應時間。

吞吐量:單位時間內處理的請求數量。

TPS:每秒事務數。在互聯網領域,這個指標和吞吐量區分的沒有這麼明顯。

QPS:每秒的查詢數

併發用戶數:同時承載正常使用系統功能的用戶數量。例如一個即時通訊系統,同時在線量一定程度上代表了系統的併發用戶數。

解決用戶量持續增高:用戶量是沒有上限的

緩存、限流、降級

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章