分佈式系統知識點

分佈式系統定義

分佈式系統 是建立在網絡之上的軟件系統。 在一個分佈式系統中,一組獨立的計算機展現給用戶的是一個統一的整體,就好像是一個系統似的。系統擁有多種通用的物理和邏輯資源,可以動態的分配任務,分散的物理和邏輯資源通過計算機網絡實現信息交換。 (與計算機網絡區別開)
例如:小明的公司有3個系統: 系統A、系統B和系統C ,這三個系統所做的業務不同,被部署在3個獨立的機器上運行,他們之間互相調用(當然是跨域網絡的), 通力合作完成公司的業務流程。將不同的業務分佈在不同的地方, 這就構成了一個分佈式的系統,如圖
在這裏插入圖片描述

中間件(獨立的系統級軟件)能夠屏蔽操作系統和網絡協議的差異

是一種獨立的系統軟件服務程序,能夠達到資源共享、功能共享的目的。分佈式應用軟件藉助這種軟件在不同的技術之間共享資源,中間件位於客戶機服務器的操作系統之上,管理計算資源和網絡通信。中間件=平臺+通信,這也就限定了只有用於分佈式系統中才能叫中間件。更多的應用軟件被要求在許多不同的網絡協議、不同的硬件生產廠商以及不一樣的網絡平臺和環境上運營。需要開發多種應用程序來達到運營

分佈式系統與計算機網絡的共同點及區別

共同點(物理結構)

分佈式系統和計算機網絡系統的共同點是:多數分佈式系統是建立在計算機網絡之上的,所以分佈式系統與計算機網絡在物理結構上是基本相同的。

不同點(軟件結構— 分佈式/網絡操作系統的區別)

分佈式系統:
系統中存在一個以全局的方式管理計算機資源的分佈式操作系統。通常,對用戶來說,分佈式系統只有一個模型或範型。在操作系統之上有一層軟件中間件負責實現這個模型。一個著名的分佈式系統的例子是萬維網(World Wide Web),在萬維網中,所有的一切看起來就好像是一個文檔(Web頁面)一樣。
分佈式操作系統:
是以全局方式管理系統資源的,它可以爲用戶任意調度網絡資源,並且調度過程是“透明”的。當用戶提交一個作業時,分佈式操作系統能夠根據需要在系統中選擇最合適的處理器,將用戶的作業提交到該處理程序,在處理器完成作業後,將結果傳給用戶。在這個過程中,用戶並不會意識到有多個處理器的存在,這個系統就像是一個處理器一樣。
計算機網絡:
在計算機網絡中,這種統一性、模型以及其中的軟件都不存在。用戶看到的是實際的機器,計算機網絡並沒有使這些機器看起來是統一的。如果這些機器有不同的硬件或者不同的操作系統,那麼,這些差異對於用戶來說都是完全可見的。如果一個用戶希望在一臺遠程機器上運行一個程序,那麼,他必須登陸到遠程機器上,然後在那臺機器上運行該程序。
網絡操作系統:
要求網絡用戶在使用網絡資源時首先必須瞭解網絡資源,網絡用戶必須知道網絡中各個計算機的功能與配置、軟件資源、網絡文件結構等情況,在網絡中如果用戶要讀一個共享文件時,用戶必須知道這個文件放在哪一臺計算機的哪一個目錄下;

PS:網絡操作系統的定義

網絡操作系統 ,是一種能代替操作系統的軟件程序,是網絡的心臟和靈魂,是向網絡計算機提供服務的特殊的操作系統。藉由網絡達到互相傳遞數據與各種消息,分爲服務器(Server)及客戶端(Client)。 而服務器的主要功能是管理服務器和網絡上的各種資源和網絡設備的共用,加以統合並控管流量,避免有癱瘓的可能性,而客戶端就是有着能接收服務器所傳遞的數據來運用的功能,好讓客戶端可以清楚的搜索所需的資源。

分佈式系統與集羣

1 分佈式
2 集羣——負載均衡 、彈性 、失效轉移
分佈式和集羣
分佈式與集羣的聯繫

分佈式是指將一個業務拆分不同的子業務,分佈在不同的機器上執行(併發)
集羣是指多臺服務器集中在一起,實現同一業務,可以視爲一臺計算機(可用 解決單點故障)
一個雲計算平臺,就是通過一套軟件系統把分佈式部署的資源集中調度使用。要應對大併發,要實現高可用,既需要分佈式,也離不開集羣。

分佈式系統的CAP理論:

一致性(C)—強一致性
在分佈式系統中的所有數據備份,在同一時刻是同樣的值。(等同於所有節點訪問同一份最新的數據副本)

在分佈式系統當中,針對不同情況以及不同要求下的一致性,設計了多種不同的模型。我們可以簡單做一個總結,將它們分爲三類:
要求當下更新成功的數據立即生效,在後續的訪問當中都能返回最新的結果—強一致性。
如果能容忍在更新發生之後,部分情況無法訪問到最新數據—弱一致性。
如果能容忍更新後一段時間內無法訪問到最新數據,但最終可以保證結果準確,這是—最終一致性。

● 可用性(A)
系統一直可用,而且服務一直保持正常。

一個高可用性的分佈式系統,必須對用戶的每一個請求做出響應。不可以出現無法訪問或者是響應超時等影響用戶體驗的情況。在集羣中一部分節點故障後,集羣整體是否還能響應客戶端的讀寫請求。

● 分區容錯性(P)

以實際效果而言,分區相當於對通信的時限要求。系統如果不能在時限內達成數據一致性,就意味着發生了分區的情況,必須就當前操作在C和A之間做出選擇。

在分佈式系統當中,CAP三個特性我們是無法同時滿足的,必然要捨棄一個。三者捨棄一個,顯然排列組合一共有三種可能。

捨棄A,保留CP
一個系統保證了一致性和分區容錯性,捨棄可用性。也就是說在極端情況下,允許出現系統無法訪問的情況出現,這個時候往往會犧牲用戶體驗,讓用戶保持等待,一直到系統數據一致了之後,再恢復服務。

捨棄C,保留AP
這種是大部分的分佈式系統的設計,保證高可用和分區容錯,但是會犧牲一致性。
舉個例子,我們在12306買票的時候就經常會遇到。在我們點擊購買的時候,系統並沒有提示沒票。等我們輸入了驗證碼,付款的時候纔會告知,已經沒有票了。這就是因爲我們在點擊購買的時候,數據沒有達成一致性,在付款校驗的時候才檢驗出餘票不足。這種設計會犧牲一些用戶體驗,但是可以保證高可用,讓用戶不至於無法訪問或者是長時間等待

分佈式數據庫

分佈式數據庫系統通常使用較小的計算機系統,每臺計算機可單獨放在一個地方,每臺計算機中都可能有DBMS的一份完整拷貝副本,或者部分拷貝副本,並具有自己局部的數據庫,位於不同地點的許多計算機通過網絡互相連接,共同組成一個完整的、全局的邏輯上集中、物理上分佈的大型數據庫。

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