導航:首頁 > 科技大全 > 分布式系統轉

分布式系統轉

發布時間:2022-09-02 14:09:55

Ⅰ 什麼是分布式操作系統

分布式軟體系統(Distributed Software Systems),是支持分布式處理的軟體系統,是在由通信網路互聯的多處理機體系結構上執行任務的系統。

它包括分布式操作系統、分布式程序設計語言及其編譯(解釋)系統、分布式文件系統和分布式資料庫系統等。

分布式資料庫系統是由若干個站集合而成。這些站又稱為節點,它們在通訊網路中聯接在一起,每個節點都是一個獨立的資料庫系統,它們都擁有各自的資料庫、中央處理機、終端,以及各自的局部資料庫管理系統。

因此分布式資料庫系統可以看作是一系列集中式資料庫系統的聯合。它們在邏輯上屬於同一系統,但在物理結構上是分布式的。

(1)分布式系統轉擴展閱讀:

分布式操作系統的特點:

1、在分布式資料庫系統里不強調集中控制概念,它具有一個以全局資料庫管理員為基礎的分層控制結構,但是每個局部資料庫管理員都具有高度的自主權。

2、在分布式資料庫系統中數據獨立性概念也同樣重要,然而增加了一個新的概念,就是分布式透明性。所謂分布式透明性就是在編寫程序時好像數據沒有被分布一樣,因此把數據進行轉移不會影響程序的正確性。但程序的執行速度會有所降低。

3、與集中式資料庫系統不同的是,數據冗餘在分布式系統中被看作是所需要的特性,其原因在於:首先,如果在需要的節點復制數據,則可以提高局部的應用性。

其次,當某節點發生故障時,可以操作其它節點上的復制數據,因此這可以增加系統的有效性。當然,在分布式系統中對最佳冗餘度的評價是很復雜的。

Ⅱ 什麼是分布式系統!作用是什麼、好處是什麼

故名思義,分布式系統就是將系統的應用層,數據層或其它部分構架成分布(物理和邏輯上的都可以)狀(通常是網狀)。分布式系統通常是為了增強系統的可擴展性、穩定性和執行效率。比如在線游戲通常就是分布系統,裡面所謂的「區」就是分布系統里子常式。而分布式資料庫其實也可以稱作分布式系統,數據持久化層是分布的(數據存在不同的資料庫中,可交互,有一套綜管系統來維護數據的完整性和准確性)
所以說分布式系統更准確地說是一種系統構架概念,不是一種技術,
C#對網路的支持挺不錯的,封裝得很好,你主要可能看看網路通信這一塊東西。然後機械工業出版社有一本分布式系統的書,做了全面闡述。你可以看看。~

下面是網路給出的解釋:

分布式軟體系統(Distributed Software Systems)
是支持分布式處理的軟體系統,是在由通信網路互聯的多處理機體系結構上執行任務的系統。它包括分布式操作系統、分布式程序設計語言及其編譯(解釋)系統、分布式文件系統和分布式資料庫系統等。
分布式操作系統負責管理分布式處理系統資源和控制分布式程序運行。它和集中式操作系統的區別在於資源管理、進程通信和系統結構等方面。
分布式程序設計語言用於編寫運行於分布式計算機系統上的分布式程序。一個分布式程序由若干個可以獨立執行的程序模塊組成,它們分布於一個分布式處理系統的多台計算機上被同時執行。它與集中式的程序設計語言相比有三個特點:分布性、通信性和穩健性。
分布式文件系統具有執行遠程文件存取的能力,並以透明方式對分布在網路上的文件進行管理和存取。
分布式資料庫系統由分布於多個計算機結點上的若干個資料庫系統組成,它提供有效的存取手段來操縱這些結點上的子資料庫。分布式資料庫在使用上可視為一個完整的資料庫,而實際上它是分布在地理分散的各個結點上。當然,分布在各個結點上的子資料庫在邏輯上是相關的。
分布式資料庫系統是由若干個站集合而成。這些站又稱為節點,它們在通訊網路中聯接在一起,每個節點都是一個獨立的資料庫系統,它們都擁有各自的資料庫、中央處理機、終端,以及各自的局部資料庫管理系統。因此分布式資料庫系統可以看作是一系列集中式資料庫系統的聯合。它們在邏輯上屬於同一系統,但在物理結構上是分布式的。
分布式資料庫系統已經成為信息處理學科的重要領域,正在迅速發展之中,原因基於以下幾點:
1、它可以解決組織機構分散而數據需要相互聯系的問題。比如銀行系統,總行與各分行處於不同的城市或城市中的各個地區,在業務上它們需要處理各自的數據,也需要彼此之間的交換和處理,這就需要分布式的系統。
2、如果一個組織機構需要增加新的相對自主的組織單位來擴充機構,則分布式資料庫系統可以在對當前機構影響最小的情況下進行擴充。
3、均衡負載的需要。數據的分解採用使局部應用達到最大,這使得各處理機之間的相互干擾降到最低。負載在各處理機之間分擔,可以避免臨界瓶頸。
4、當現有機構中已存在幾個資料庫系統,而且實現全局應用的必要性增加時,就可以由這些資料庫自下而上構成分布式資料庫系統。
5、相等規模的分布式資料庫系統在出現故障的幾率上不會比集中式資料庫系統低,但由於其故障的影響僅限於局部數據應用,因此就整個系統來講它的可靠性是比較高的。
特點
1、在分布式資料庫系統里不強調集中控制概念,它具有一個以全局資料庫管理員為基礎的分層控制結構,但是每個局部資料庫管理員都具有高度的自主權。
2、在分布式資料庫系統中數據獨立性概念也同樣重要,然而增加了一個新的概念,就是分布式透明性。所謂分布式透明性就是在編寫程序時好像數據沒有被分布一樣,因此把數據進行轉移不會影響程序的正確性。但程序的執行速度會有所降低。
3、集中式資料庫系統不同,數據冗餘在分布式系統中被看作是所需要的特性,其原因在於:首先,如果在需要的節點復制數據,則可以提高局部的應用性。其次,當某節點發生故障時,可以操作其它節點上的復制數據,因此這可以增加系統的有效性。當然,在分布式系統中對最佳冗餘度的評價是很復雜的。
分布式系統的類型,大致可以歸為三類:
1、分布式數據,但只有一個總資料庫,沒有局部資料庫。
2、分層式處理,每一層都有自己的資料庫。
3、充分分散的分布式網路,沒有中央控制部分,各節點之間的聯接方式又可以有多種,如鬆散的聯接,緊密的聯接,動態的聯接,廣播通知式聯接等。
---------------------
什麼是分布式智能?
NI LabVIEW 8的分布式智能結合了相關的技術和工具,解決了分布式系統開發會碰到的一些挑戰。更重要的是,NI LabVIEW 8的分布式智能提供的解決方案不僅令這些挑戰迎刃而解,且易於實施。LabVIEW 8的分布式智能具體包括:
可對分布式系統中的所有結點編程——包括主機和終端。尤為可貴的是,您可以利用LabVIEW圖形化編程方式,對大量不同類型的對象進行編程,如桌面處理器、實時系統、FPGA、PDA、嵌入式微處理器和DSP。
導航所有系統結點的查看系統——LabVIEW Project Explorer。您可使用Project Explorer查看、編輯、運行和調試運行於任何對象上的結點。
經簡化的數據共享編程界面——共享變數。使用共享變數,您可輕松地在系統間(甚至實時系統間)傳輸數據且不影響性能。無通信循環,無RT FIFO,無需低層次TCP函數。您可以利用簡單的對話完成共享變數的配置,從而將數據在各系統間傳輸或將數據連接到不同的數據源。您還可添加記錄、警報、事件等數據服務――一切僅需簡單的對話即可完成。
實現了遠程設備及系統內部或設備及系統之間的同步操作——定時和同步始終是定義高性能測量和控制系統的關鍵問題。利用基於NI技術的系統,探索設備內部並編寫其內部運行機制,從而取得比傳統儀器或PLC方式下更為靈活的解決方案。
--------------------
在分布式計算機操作系統支持下,互連的計算機可以互相協調工作,共同完成一項任務。
也可以這么解釋:
一種計算機硬體的配置方式和相應的功能配置方式。它是一種多處理器的計算機系統,各處理器通過互連網路構成統一的系統。系統採用分布式計算結構,即把原來系統內中央處理器處理的任務分散給相應的處理器,實現不同功能的各個處理器相互協調,共享系統的外設與軟體。這樣就加快了系統的處理速度,簡化了主機的邏輯結構 。

希望對你有所幫助~ :)

Ⅲ 分布式系統的分布式系統的優點

系統傾向於分布式發展潮流的真正驅動力是經濟。25年前,計算機權威和評論家Herb Grosch指出CPU的計算能力與它的價格的平方成正比,後來成為Grosch定理。也就是說如果你付出兩倍的價錢,就能獲得四倍的性能。這一論斷與當時的大型機技術非常吻合,因而使得許多機構都盡其所能購買最大的單個大型機。
隨著微處理機技術的發展,Grosch定理不再適用了。到了二十一世紀初期,人們只需花幾百美元就能買到一個CPU晶元,這個晶元每秒鍾執行的指令比80年代最大的大型機的處理機每秒鍾所執行的指令還多。如果你願意付出兩倍的價錢,將得到同樣的CPU,但它卻以更高的時鍾速率運行。因此,最節約成本的辦法通常是在一個系統中使用集中在一起的大量的廉價CPU。所以,傾向於分布式系統的主要原因是它可以潛在地得到比單個的大型集中式系統好得多的性價比。實際上,分布式系統是通過較低廉的價格來實現相似的性能的。
與這一觀點稍有不同的是,我們發現微處理機的集合不僅能產生比單個大型主機更好的性能價格比,而且還能產生單個大型主機無論如何都不能達到的絕對性能。例如,按二十一世初期的技術,我們能夠用10,000個現代CPU晶元組成一個系統,每個CPU晶元以50 MIPS(每秒百萬指令)的速率運行,那麼整個系統的性能就是500,000 MIPS。而如果單個處理機(即CPU)要達到這一性能,就必需在2×10-12 秒(2 微微秒,0.002納秒)的時間內執行一條指令,然而沒有一個現存的計算機能接近這個速度,從理論上和工程上考慮都認為能達到這一要求的計算機都是不可能存在的。理論上,愛因斯坦的相對論指出光的傳播速度最快,它能在2 微微秒內傳播0.6毫米。實際上,一個包含於邊長為0.6 毫米大小的立方體內的具有上面所說的計算速度的計算機產生大量的熱量就能將它自己立即熔掉。所以,無論是要以低價格獲得普通的性能還是要以較高的價格獲得極高的性能,分布式系統都能夠滿足。
另一方面,一些作者對分布式系統和並行系統進行了區分。他們認為分布式系統是設計用來允許眾多用戶一起工作的,而並行系統的唯一目標就是以最快的速度完成一個任務,就像我們的速度為500,000 MIPS的計算機那樣。我們認為,上述的區別是難以成立的,因為實際上這兩個設計領域是統一的。我們更願意在最廣泛的意義上使用「分布式系統」一詞來表示任何一個有多個互連的CPU協同工作的系統。
建立分布式系統的另一原因在於一些應用本身是分布式的。一個超級市場連鎖店可能有許多分店,每個商店都需要采購當地生產的商品(可能來自本地的農場)、進行本地銷售,或者要對本地的哪些蔬菜因時間太長或已經腐爛而必須扔掉作出決定。因此,每個商店的本地計算機能明了存貨清單是有意義的,而不是集中於公司總部。畢竟,大多數查詢和更新都是在本地進行的。然而,連鎖超級市場的高層管理者也會不時地想要了解他們還有多少甘藍。實現這一目標的一種途徑就是將整個系統建設成對於應用程序來說就像一台計算機一樣,但是在實現上它是分布的,像我們前面所描述的一個商店有一台機器。這就是一個商業分布式系統。
另一種固有的分布式系統是通常被稱為計算機支持下的協同工作系統(CSCW,Computer Supported Cooperative Work)。在這個系統中,一組相互之間在物理上距離較遠的人員可以一起進行工作,例如,寫出同一份報告。就計算機工業的長期發展趨勢來說,人們可以很容易的想像出一個全新領域--計算機支持的協同游戲(CSCG:Computer Supported Cooperative Games)。在這個游戲中,不在同一地方的游戲者可以實時的玩游戲。你可以想像,在一個多維迷宮中玩電子捉迷藏,甚至是一起玩一場電子空戰,每個人操縱自己的本地飛行模擬器去試著擊落別的游戲者,每個游戲者的屏幕上都顯示出其飛機外的情況,包括其它飛入它的視野的飛機。
同集中式系統相比較,分布式系統的另一個潛在的優勢在於它的高可靠性。通過把工作負載分散到眾多的機器上,單個晶元故障最多隻會使一台機器停機,而其它機器不會受任何影響。理想條件下,某一時刻如果有5%的計算機出現故障,系統將仍能繼續工作,只不過損失5%的性能。對於關鍵性的應用,如核反應堆或飛機的控制系統,採用分布式系統來實現主要是考慮到它可以獲得高可靠性。
最後,漸增式的增長方式也是分布式系統優於集中式系統的一個潛在的重要的原因。通常,一個公司會買一台大型主機來完成所有的工作。而當公司繁榮擴充、工作量就會增大,當其增大到某一程度時,這個主機就不能再勝任了。僅有的解決辦法是要麼用更大型的機器(如果有的話)代替現有的大型主機,要麼再增加一台大型主機。這兩種作法都會引起公司運轉混亂。相比較之下,如果採用分布式系統,僅給系統增加一些處理機就可能解決這個問題,而且這也允許系統在需求增長的時候逐漸進行擴充。表1-1中總結了以上這些優點。 項目 描述 經濟 微處理機提供了比大型主機更好的性能價格比 速度 分布式系統總的計算能力比單個大型主機更強 固有的分布性 一些應用涉及到空間上分散的機器 可靠性 如果一個機器崩潰,整個系統還可以運轉 漸增 計算能力可以逐漸有所增加 從長遠的角度來看,主要的驅動力將是大量個人計算機的存在和人們共同工作與信息共享的需要,這種信息共享必需是以一種方便的形式進行的,而不受地理或人員、數據,機器的物理分布的影響。 既然使用微處理機是一種節省開支的辦法,那麼為什麼不給每個人一台個人計算機,讓他們各自獨立地工作呢?一則,許多用戶需要共享數據。例如,機票預訂處的工作人員需要訪問存儲航班以及現有座位信息的主資料庫。假如給每個工作人員都備份整個資料庫,那麼在實際中這是無法工作的,因為沒有人知道其他工作人員已經賣出了哪些座位。共享的數據是上例和許多其它應用的基礎,所以計算機間必須互連。而計算機互連就產生了分布式系統。
共享並不只是僅僅涉及數據。昂貴的外設,例如彩色激光列印機,照相排版機以及大型存儲設備(如自動光碟點唱機)都是共享資源。
把一組孤立的計算機連成一個分布式系統的第三個原因是它可以增強人與人之間的溝通,電子郵件比信件、電話和傳真有更多的誘人之處。它比信件快的多,不像電話需要兩人同時都在,也不像傳真,它所產生的文件可在計算機中進行編輯、重排和存儲,也可以由文本處理程序來處理。
最後,分布式系統可能比給每個用戶一個獨立的計算機更靈活。盡管一種可能的模式是給每個人一台個人計算機並把它們通過LAN聯在一起,但這種方式並不是唯一的。另外還存在一種模式是將個人計算機和共享計算機混合連接在一起(這些機器的型號可能並不完全相同),使工作能夠在最合適的計算機上完成,而並不總是在自己的計算機上完成。這種方式可以使工作負荷能更有效地在計算機系統中進行分配。系統中某些計算機的失效也可以通過使其工作在其它計算機上進行而得到補償。表1-2總結了以上所介紹的各點。 項目 描述 數據共享 允許多個用戶訪問一個公共的資料庫 設備共享 允許多個用戶共享昂貴的外圍設備(如彩色列印機) 通信 使得人們之間的通信更加容易,如通過電子郵件 靈活性 用最有效的方式將工作負荷分配到可用的機器上

Ⅳ 分布式系統有哪些優點

個人總結:1.可以將分布在各處的資源綜合利用。而這種利用對用戶而言是透明的。2.可以將負載由單個節點轉移到多個,從而提高效率。3.分布式技術可以避免由於單個節點失效而使整個系統崩潰的危險

Ⅳ 分布式技術介紹

2.一致性模型

弱一致性

最終一致性(一段時間達到一致性)

強一致

1、2 非同步冗餘;3是同步冗餘

數據分區: uid % 16

數據鏡像:讓多有的伺服器都有相同的數據,提供相當的服務(冗餘存儲,一般3份為好)

4.兩種方案的事務問題

A向B匯錢,兩個用戶不在一個伺服器上

鏡像:在不同的伺服器上對同一數據的寫操作如何保證一致性。

5. 解決一致性事務問題的技術

1. Master -Slave

讀寫請求由Master負責

寫請求寫到Master後,由Master同步到Slave上

由Master push or Slave pull

通常是由Slave 周期性來pull,所以是最終一致性

問題: 若在 pull 周期內(不是期間?),master掛掉,那麼會導致這個時間片內的數據丟失

若不想讓數據丟掉,Slave 只能成為 ReadOnly方式等Master恢復

若容忍數據丟失,可以讓 Slave代替Master工作

如何保證強一致性?

Master 寫操作,寫完成功後,再寫 Slave,兩者成功後返回成功。若 Slave失敗,兩種方法

標記 Slave 不可用報錯,並繼續服務(等恢復後,再同步Master的數據,多個Slave少了一個而已)

回滾自己並返回失敗

2. Master-Master

數據同步一般是通過 Master 間的非同步完成,所以是最終一致

好處: 一台Master掛掉,另外一台照樣可以提供讀寫服務。當數據沒有被賦值到別的Master上時,數據會丟失。

對同一數據的處理問題:Dynamo的Vector Clock的設計(記錄數據的版本號和修改者),當數據發生沖突時,要開發者自己來處理

3.兩階段提交 Two Phase Commit _ 2PC

第一階段:針對准備工作

協調者問所有節點是否可以執行提交

參與者開始事務,執行准備工作:鎖定資源(獲取鎖操作)

參與者響應協調者,如果事務的准備工作成功,則回應"可以提交",否則,拒絕提交

第二階段:

若都響應可以提交,則協調者項多有參與者發送正式提交的命令(更新值),參與者完成正式提交,釋放資源,回應完成。協調者收到所有節點的完成響應後結束這個全局事務.。若參與者回應拒絕提交,則協調者向所有的參與者發送回滾操作,並釋放資源,當收到全部節點的回滾回應後,取消全局事務

存在的問題:若一個沒提交,就會進行回滾

第一階段:若消息的傳遞未接收到,則需要協調者作超時處理,要麼當做失敗,要麼重載

第二階段:若參與者的回應超時,要麼重試,要麼把那個參與者即為問題節點,提出整個集群

在第二階段中,參與者未收到協調者的指示(也許協調者掛掉),則所有參與者會進入「不知所措」 的狀態(但是已經鎖定了資源),所以引入了三段提交

4. 三段提交:把二段提交的第一階段 break 成了兩段

詢問

鎖定資源(獲取鎖)

提交

核心理念:在詢問的時候並不鎖定資源,除非所有人都同意了,才開始鎖定

好處:當發生了失敗或超時時,三段提交可以繼續把狀態變為Commit 狀態,而二段提交則不知所措?

5. Raxos 演算法(少數服從多數)

解決的問題:在一個可能發生異常的分布式系統中如何就某個值達成一致,讓整個集群的節點對某個值的變更達成一致

任何一個節點都可以提出要修改 某個 數據的提案,是否通過這個提案取決於這個集群中是否有超過半數的節點同意(所以節點數總是單數)—— 版本標記。雖然一致性,但是只能對一個操作進行操作啊??

當一個Server接收到比當前版本號小的提案時,則拒絕。當收到比當前大的版本號的提案時,則鎖定資源,進行修改,返回OK. 也就是說收到超過一半的最大版本的提案才算成功。

核心思想

在搶占式訪問權的基礎上引入多個acceptor,也就是說當一個版本號更大的提案可以剝奪版本號已經獲取的鎖。

後者認同前者的原則:

在肯定舊epoch 無法生成確定性取值時,新的 epoch 會提交自己的valu

一旦 舊epoch形成確定性取值,新的 epoch肯定可以獲取到此取值,並且會認同此取值,不會被破壞。

步驟

P1 請求Acceptor的 #1,Acceptor 這時並沒有其他線程獲取到鎖,所以把鎖交給 P1,並返回這時 #1 的值為null

然後 P1 向 第一個 Acceptor 提交 #1 的值,Acceptor 接受並返回 OK

這個時候,P2向Acceptor請求#1上的鎖,因為版本號更大,所以直接搶佔了 P1 的鎖。這時 Acceptor 返回了 OK並且返回了 #1 的值

這時 P1 P向 後面兩個 Acceptor 提交 #1 的值,但是由於中間的那個Acceptor 版本號已經更改為 2 了,所以拒絕P1。第三個 Acceptor 接受了,並且返回了 OK

由於後者認同前者的原則,這時 P1 已經形成確定性取值了 V1 了,這時新的 P2 會認同此取值,而不是提交自己的取值。所以,P2會選擇最新的那個取值 也就是V1 進行提交。這時Acceptor 返回 OK

6.ZAB 協議 ( Zookeeper Atomic Broadcast) 原子廣播協議:保證了發給各副本的消息順序相同

定義 :原子廣播協議 ZAB 是一致性協議,Zookeeper 把其作為數據一致性的演算法。ZAB 是在 Paxos 演算法基礎上進行擴展而來的。Zookeeper 使用單一主進程 Leader用於處理客戶端所有事務請求,採用 ZAB 協議將伺服器狀態以事務形式廣播到所有 Follower 上,由於事務間可能存在著依賴關系,ZAB協議保證 Leader 廣播的變更序列被順序的處理,一個狀態被處理那麼它所依賴的狀態也已經提前被處理

核心思想: 保證任意時刻只有一個節點是Leader,所有更新事務由Leader發起去更新所有副本 Follower,更新時用的是 兩段提交協議,只要多數節點 prepare 成功,就通知他們commit。各個follower 要按當初 leader 讓他們 prepare 的順序來 apply 事務

協議狀態

Looking:系統剛啟動時 或者 Leader 崩潰後正處於選舉狀態

Following:Follower 節點所處的狀態,Follower與 Leader處於數據同步狀態

Leading:Leader 所處狀態,當前集群中有一個 Leader 為主進程

ZooKeeper啟動時所有節點初始狀態為Looking,這時集群會嘗試選舉出一個Leader節點,選舉出的Leader節點切換為Leading狀態;當節點發現集群中已經選舉出Leader則該節點會切換到Following狀態,然後和Leader節點保持同步;當Follower節點與Leader失去聯系時Follower節點則會切換到Looking狀態,開始新一輪選舉;在ZooKeeper的整個生命周期中每個節點都會在Looking、Following、Leading狀態間不斷轉換。

選舉出Leader節點後 ZAB 進入原子廣播階段,這時Leader為和自己同步每個節點 Follower 創建一個操作序列,一個時期一個 Follower 只能和一個Leader保持同步

階段

Election: 在 Looking狀態中選舉出 Leader節點,Leader的LastZXID總是最新的(只有lastZXID的節點才有資格成為Leade,這種情況下選舉出來的Leader總有最新的事務日誌)。在選舉的過程中會對每個Follower節點的ZXID進行對比只有highestZXID的Follower才可能當選Leader

每個Follower都向其他節點發送選自身為Leader的Vote投票請求,等待回復;

Follower接受到的Vote如果比自身的大(ZXID更新)時則投票,並更新自身的Vote,否則拒絕投票;

每個Follower中維護著一個投票記錄表,當某個節點收到過半的投票時,結束投票並把該Follower選為Leader,投票結束;

Discovery:Follower 節點向准 Leader推送 FollwerInfo,該信息包含了上一周期的epoch,接受准 Leader 的 NEWLEADER 指令

Sync:將 Follower 與 Leader的數據進行同步,由Leader發起同步指令,最終保持數據的一致性

Broadcast:Leader廣播 Proposal 與 Commit,Follower 接受 Proposal 與 commit。因為一個時刻只有一個Leader節點,若是更新請求,只能由Leader節點執行(若連到的是 Follower 節點,則需轉發到Leader節點執行;讀請求可以從Follower 上讀取,若是要最新的數據,則還是需要在 Leader上讀取)

消息廣播使用了TCP協議進行通訊所有保證了接受和發送事務的順序性。廣播消息時Leader節點為每個事務Proposal分配一個全局遞增的ZXID(事務ID),每個事務Proposal都按照ZXID順序來處理(Paxos 保證不了)

Leader節點為每一個Follower節點分配一個隊列按事務ZXID順序放入到隊列中,且根據隊列的規則FIFO來進行事務的發送。

Recovery :根據Leader的事務日誌對Follower 節點數據進行同步更新

同步策略:

SNAP :如果Follower數據太老,Leader將發送快照SNAP指令給Follower同步數據;

DIFF :Leader發送從Follolwer.lastZXID到Leader.lastZXID議案的DIFF指令給Follower同步數據;

TRUNC :當Follower.lastZXID比Leader.lastZXID大時,Leader發送從Leader.lastZXID到Follower.lastZXID的TRUNC指令讓Follower丟棄該段數據;(當老Leader在Commit前掛掉,但是已提交到本地)

Follower將所有事務都同步完成後Leader會把該節點添加到可用Follower列表中;

Follower接收Leader的NEWLEADER指令,如果該指令中epoch比當前Follower的epoch小那麼Follower轉到Election階段

7. Raft 演算法

Raft 演算法也是一種少數服從多數的演算法,在任何時候一個伺服器可以扮演以下角色之一:

Leader:負責 Client 交互 和 log 復制,同一時刻系統中最多存在一個

Follower:被動響應請求 RPC,從不主動發起請求 RPC

Candidate : 由Follower 向Leader轉換的中間狀態

在選舉Leader的過程中,是有時間限制的,raft 將時間分為一個個 Term,可以認為是「邏輯時間」:

每個 Term中至多存在1個 Leader

某些 Term由於不止一個得到的票數一樣,就會選舉失敗,不存在Leader。則會出現 Split Vote ,再由候選者發出邀票

每個 Server 本地維護 currentTerm

選舉過程:

自增 CurrentTerm,由Follower 轉換為 Candidate,設置 votedFor 為自身,並行發起 RequestVote RPC,不斷重試,直至滿足下列條件之一為止:

獲得超過半數的Server的投票,轉換為 Leader,廣播 HeatBeat

接收到 合法 Leader 的 AppendEnties RPC,轉換為Follower

選舉超時,沒有 Server選舉成功,自增 currentTerm ,重新選舉

當Candidate 在等待投票結果的過程中,可能會接收到來自其他Leader的 AppendEntries RPC ,如果該 Leader 的 Term 不小於本地的 Current Term,則認可該Leader身份的合法性,主動降級為Follower,反之,則維持 candida 身份繼續等待投票結果

Candidate 既沒有選舉成功,也沒有收到其他 Leader 的 RPC (多個節點同時發起選舉,最終每個 Candidate都將超時),為了減少沖突,採取隨機退讓策略,每個 Candidate 重啟選舉定時器

日誌更新問題:

如果在日誌復制過程中,發生了網路分區或者網路通信故障,使得Leader不能訪問大多數Follwers了,那麼Leader只能正常更新它能訪問的那些Follower伺服器,而大多數的伺服器Follower因為沒有了Leader,他們重新選舉一個候選者作為Leader,然後這個Leader作為代表於外界打交道,如果外界要求其添加新的日誌,這個新的Leader就按上述步驟通知大多數Followers,如果這時網路故障修復了,那麼原先的Leader就變成Follower,在失聯階段這個老Leader的任何更新都不能算commit,都回滾,接受新的Leader的新的更新。

流程:

Client 發送command 命令給 Leader

Leader追加日誌項,等待 commit 更新本地狀態機,最終響應 Client

若 Client超時,則不斷重試,直到收到響應為止(重發 command,可能被執行多次,在被執行但是由於網路通信問題未收到響應)

解決辦法:Client 賦予每個 Command唯一標識,Leader在接收 command 之前首先檢查本地log

9. paxos 演算法與 raft 演算法的差異

raft強調是唯一leader的協議,此leader至高無上

raft:新選舉出來的leader擁有全部提交的日誌,而 paxos 需要額外的流程從其他節點獲取已經被提交的日誌,它允許日誌有空洞

相同點:得到大多數的贊成,這個 entries 就會定下來,最終所有節點都會贊成

NWR模型

N: N個備份

W:要寫入至少 w 份才認為成功

R : 至少讀取 R 個備份

W+ R > N ——> R > N - W(未更新成功的) ,代表每次讀取,都至少讀取到一個最新的版本(更新成功的),從而不會讀到一份舊數據

問題:並非強一致性,會出現一些節點上的數據並不是最新版本,但卻進行了最新的操作

版本沖突問題:矢量鍾 Vector Clock : 誰更新的我,我的版本號是什麼(對於同一個操作者的同一操作,版本號遞增)

Ⅵ 分布式系統為什麼會出現

分布式的出現是因為全球網路化信息傳輸關聯度越來越強,信號源數量越來越多,不管是集中式還是分散式的信息處理技術的弊端日益突出且已經無法滿足現如今信息處理傳輸的需求。專業視聽行業蓬勃發展並向數字化轉型,但龐大的數據增長與高品質的要求,使得早期基於集中式處理的音視頻處理設備發展遇到瓶頸。分布式技術為傳統視聽行業提供了切實可行的網路化轉型手段,以及由此所帶來的市場邊界擴展與無限應用可能---訊維

Ⅶ 什麼是分布式可視化控制系統

分布式可視化控制系統以指揮技術和信息技術為主導,充分運用現代通訊技術、網路技術、自動化技術、電子監控等先進技術,構建以數據傳輸網路為紐帶,以計算機信息系統為支撐,集音頻處理、視頻拼接處理、網路傳輸、環境監控、可視化控制等多種功能於一體的現代化、網路化、智能化處理平台。

分布式系統可以輕松將指揮中心的音視頻採集、傳輸、控制和顯示都通過數字化網路連接起來進行集中管理控制。並且具備極大地的靈活性和擴展性,支持音視頻信號多點共享,移動終端預覽控制、音視頻網路互動式通信等功能。

與傳統的集中式音視頻集成系統相比,訊維分布式可視化控制系統具有以下優勢:

1、採用普通超5類、6類網線或光纖連接布線,大大減少工程中布線的種類與工程量。
2、無需伺服器等復雜的組網設備,只需一台交換機即可完成整個系統的安裝組網工作。
3、採用分布式架構設計,每個節點獨立運行,可根據現場情況任意增減節點,當出現故障時,更換故障節點即可,不影響整個系統的使用。
4、集矩陣,傳輸,拼接,分割,中控等設備功能於一體,大大降低工程設備及維護成本。
5、所有音視頻信號源及大屏輸出圖像全部可視化,控制更精準,並可通過電腦、手機平板進行實時控制。

訊維分布式可視化控制系統可實現以下功能:

1、可以實現所有信號源在任意顯示終端上無縫切換、開窗、縮放、跨屏、漫遊、疊加顯示並且可自定義拼接模式。
2、可通過PC、平板電腦、觸控一體機等終端對所有音視頻、周邊環境等進行所見即所得的可視化觸控操作。
3、可通過搭配環境控制主機,可實現高效便捷的環境控制管理功能,可對燈光、窗簾、音量、電源等進行遠程管理。
4、可以將不同地點場所信號進行互聯互通,並可任意增加節點,擴大互聯互通范圍,實現多區域分布式集中管理。
5、可以通過定製對界面實行任意設計,實現可視化操作、信號預監回顯、系統設置等功能。

目前,訊維分布式可視化控制系統已經逐漸取代傳統的音視頻集成系統,廣泛應用在指揮中心、調度中心、監控中心、多媒體會議等領域。
訊維

Ⅷ 什麼是分布式系統

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

正是因為軟體的特性,所以分布式系統具有高度的內聚性和透明性。因此,網路和分布式系統之間的區別更多的在於高層軟體(特別是操作系統),而不是硬體。

(8)分布式系統轉擴展閱讀

分布式系統系統優點

1、經濟:微處理機提供了比大型主機更好的性能價格比

2、速度:分布式系統總的計算能力比單個大型主機更強

3、固有的分布性:一些應用涉及到空間上分散的機器

4、可靠性:如果一個機器崩潰,整個系統還可以運轉

5、漸增:計算能力可以逐漸有所增加

閱讀全文

與分布式系統轉相關的資料

熱點內容
蘋果手機數字代碼是什麼 瀏覽:66
驅動程序順序安裝腳本 瀏覽:665
word文件里怎樣查重 瀏覽:219
mx5系統基帶版本 瀏覽:184
ntlea全域通win10 瀏覽:171
qq怎麼查看別人的收藏 瀏覽:135
地震三參數matlab程序 瀏覽:57
怎樣給優盤文件加密軟體 瀏覽:7
收拾文件有哪些小妙招 瀏覽:431
pdf文件去底網 瀏覽:253
win10重裝系統需要格式化c盤嗎 瀏覽:424
路由器trx文件 瀏覽:655
淘寶店鋪數據包怎麼做 瀏覽:195
win10鍵盤黏連 瀏覽:332
json如何生成表格 瀏覽:323
怎麼修復sql資料庫表 瀏覽:40
微信微博差別 瀏覽:163
簽到積分換禮品app 瀏覽:812
mfc最近打開文件 瀏覽:672
app埋點平台都有哪些app 瀏覽:314

友情鏈接