偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

分布式技術:從原理到應用全面解析分布式技術的魅力與未來之分布式起源

開發(fā) 前端
分開部署的方式,所謂分開是指龐大的數(shù)據(jù)體系分成小的可以獨立的數(shù)據(jù)體系,復雜的系統(tǒng)拆分成功能單一的小的子系統(tǒng),拆分后的獨立體系各自部署在獨立的計算機上運行。換個說法就是將相同或相關的程序運行在多臺計算機上,從而實現(xiàn)特定目標的一種計算方式。


在如今互聯(lián)網技術高速發(fā)展的背景下,分布式技術已經是各種技術革命的先驅,它早已不再局限于傳統(tǒng)的互聯(lián)網等應用場景。諸如IoT物聯(lián)網、Mobile移動計算、AI人工智能、Blockchain區(qū)塊鏈、Cloud云計算、Data大數(shù)據(jù)、Edge邊緣計算,無不都是以分布式技術為基石。在互聯(lián)網這個領域,分布式技術更加是各大型互聯(lián)網公司和大型項目必然具備的技能。毫不夸張地說,沒有分布式技術就沒有如今的互聯(lián)網,也就沒有諸如阿里巴巴、騰訊這樣的巨無霸互聯(lián)網公司。

雖然各大互聯(lián)網公司都有或多或少的裁員計劃,但是分布式技術人才卻依然是各大公司爭奪的焦點,因為哪個公司更好的掌握了分布式技術,哪個公司就更容易在新一輪技術浪潮中獲得主動。

接下來就通過分布式技術的起源來說明什么是分布式技術

單兵模式:單機模式

1946年情人節(jié)發(fā)布的ENIAC是世界上的第一臺通用計算機,它占地170平米重達30噸,每秒可進行5000次加法或者400次乘法運算,標志著單機模式的開始。

所謂單機模式是指,所有應用程序和數(shù)據(jù)均部署在一臺電腦或服務器上,由一臺計算機完成所有的處理。

以火車票系統(tǒng)為例,包括用戶管理、火車票管理和訂單管理等模塊,每個模塊都包含自己的數(shù)據(jù),單機模式下,所有的模塊和數(shù)據(jù)均會部署在同一臺計算機上,整個系統(tǒng)所有的功能都部署在一臺計算機上。

如下圖,藍色虛線代表一臺計算機。

圖片圖片

這種模式的好處是功能、代碼和數(shù)據(jù)集中,便于維護、管理和執(zhí)行。

這種模式的缺點是對于大型系統(tǒng)來說,牽一發(fā)而動全身,一個簡單功能的修改,就要以短時間停止整個系統(tǒng)的代價來進行升級系統(tǒng)。

再就是隨著系統(tǒng)的不斷更新迭代,系統(tǒng)會越來越龐大,這對單個計算機的處理能力有極高的要求,單個計算機的處理能力取決于CPU和內存等,但硬件的發(fā)展速度和性能是有限的,而且升級硬件的性價比也是我們要考慮的,由此決定了CPU和內存等硬件的性能將成為單機模式的瓶頸。

然而所有的功能及數(shù)據(jù)都部署在一臺計算機上面,那么系統(tǒng)能否正常運行就依賴于這臺計算機是否健壯,計算機一旦宕機,那么整個系統(tǒng)將癱瘓,不可用。

歸納一下,單機模式的主要問題是:性能受限、升級困難、存在單點失效問題。

多兵模式:數(shù)據(jù)分布式

單兵模式是就像是一個士兵執(zhí)行多項任務,當任務越來越多的時候,一個士兵累死也完不成目標,那就多個士兵一起分做這些任務。

為解決單機模式的問題,并行計算得到了發(fā)展,進而出現(xiàn)了數(shù)據(jù)并行(也叫作數(shù)據(jù)分布式)模式。

在這個模式下,數(shù)據(jù)并行強調對數(shù)據(jù)進行拆分,并且應用程序并行運行,也就是將相同應用程序部署在多臺計算機上。要達到這個目的,我們必須首先把單機模式中的應用程序和數(shù)據(jù)分離,然后再實現(xiàn)對數(shù)據(jù)的拆分。這里所說的任務就是提交的請求。

以鐵路售票系統(tǒng)為例,整個系統(tǒng)包含用戶管理模塊,火車票管理模塊,訂單模塊。

第一步,將應用與數(shù)據(jù)分離,分別部署到不同的服務器上:

圖片

第二步,對數(shù)據(jù)進行拆分,比如把同一類型的數(shù)據(jù)拆分到兩個甚至更多的數(shù)據(jù)庫中,這樣應用服務器上的任務就可以針對不同數(shù)據(jù)并行執(zhí)行了。

對于鐵路售票系統(tǒng)來說,根據(jù)線路將用戶、火車票和訂單數(shù)據(jù)拆分到不同的數(shù)據(jù)庫中,部署到不同的服務器上,比如京藏線的數(shù)據(jù)放在數(shù)據(jù)庫服務器1上的數(shù)據(jù)庫中,滬深線的數(shù)據(jù)放在數(shù)據(jù)庫服務器2上的數(shù)據(jù)庫中。

圖片圖片

這種模式的好處表現(xiàn)為以下兩點:

  1. 可以將大量的任務分門別類的分配給多臺應用服務器,每個應用服務器對應的數(shù)據(jù)也是獨立的,提高了數(shù)據(jù)訪問效率。這樣一來,相同的時間內可以讓大量的任務并行處理,相比于單機模式,相同的時間內能完成更多的任務量。
  2. 計算機成本方面,因為多臺部署,每臺計算機分攤任務數(shù),實際每臺計算機處理的任務數(shù)不是很多,對計算機的配置要求不是很高,因此成本方面短期內可能會略高于單機模式,但從長遠來看,必然是低于單機模式的。

這種模式的缺點表現(xiàn)為以下兩點:

  1. 數(shù)據(jù)分布式模式的運維復雜度相比于單機模式高很多:
    首先每臺應用服務器分攤任務數(shù),那么哪些任務由哪臺應用服務器處理這個問題需要有方案解決,一般是通過負載均衡器分發(fā)任務,那是實現(xiàn)負載均衡器無疑提高了系統(tǒng)的復雜性。
    其次隨著業(yè)務發(fā)展,分攤到每臺應用服務器的任務數(shù)變的很大的時候,應用服務器頻繁對數(shù)據(jù)庫進行訪問,很容易達到數(shù)據(jù)庫io瓶頸,此時就需要有方案解決數(shù)據(jù)庫io問題,一般采用的是數(shù)據(jù)庫讀寫分離,在進行讀寫分離的時候又要特別注意主庫和從庫的數(shù)據(jù)一致性問題,這無疑提高了整個系統(tǒng)的復雜性。
    再就是業(yè)務中往往會使得一批數(shù)據(jù)成為熱點數(shù)據(jù),此時會導致數(shù)據(jù)庫訪問頻繁,即便是讀寫分離也無法抗住這瞬間爆發(fā)的請求量,這個時候不得不引入緩存機制,將數(shù)據(jù)緩存到內存,但是內存是有限的,這就要求緩存機制必須具備緩存失效,緩存預熱等功能,這無疑增加了系統(tǒng)的復雜性。

不難看出數(shù)據(jù)分布式模式本來就是任務數(shù)增多后的產物,那系統(tǒng)的復雜性也理所應當會升高,這無可厚非,好在目前市場上對以上的問題都有成熟的解決方案。

2.數(shù)據(jù)分布式模式實現(xiàn)了多請求并行處理,但是并沒有從根本上解決單個請求的性能問題,比方說一個請求在單機模式下需要幾天甚至更長的時間來完成,數(shù)據(jù)分布式模式下并沒有減少這個請求的完成時間。

由此可見,數(shù)據(jù)并行模式的主要問題是:對提升單個任務的執(zhí)行性能及降低時延無效。

多兵種模式:任務分布式

多兵模式將大量的任務進行分攤處理,每個大兵將任務從頭到尾處理完成,這樣保證了整體任務的處理效率,但是卻無法提高單個任務的處理效率。假設多兵模式是將同個兵種10名士兵組成一個團體來完成任務,那么多兵種模式就是將多個兵種的士兵一共10名組成一個團體來完成任務,在這個團體中可能每個兵種有一個或者兩個或者三個士兵,在執(zhí)行任務的時候多個不同兵種的士兵共同完成一個任務。多兵種模式就是將任務進行拆分,提高單個任務的效率

任務分布式指的是,將單個復雜的任務拆分為多個子任務,從而使得多個子任務可以在不同的計算機上并行執(zhí)行。 任務分布式模式強調的是對任務進行拆分。就是將一個復雜的業(yè)務中的一條任務拆分成幾個子任務,這些子任務中有個是需要串行執(zhí)行,有的則可以并行執(zhí)行,而那些可以并行執(zhí)行的子任務就是提升整個任務效率的關鍵。

我們仍以鐵路售票系統(tǒng)為例,當購買火車票的時候,整個購買業(yè)務流程為:查詢用戶,查詢火車票,下單購買。任務拆分前,這個業(yè)務流程是串行的,耗時為這三個操作的時間和,任務分布式模式下的做法是將用戶管理、火車票管理、訂單管理拆分成多個子系統(tǒng)分別運行在不同的計算機或服務器上。這樣一來,查詢用戶和查詢火車票的子任務是可以同時進行的,總耗時不再是兩者之和,而是兩者中最大的那個耗時,如下圖所示:

圖片圖片

上面說的火車票的例子比較很籠統(tǒng)的,我們再拿一個電商的項目來說明下:

比如我們要買一個商品,商品頁面做了什么呢?商品頁面需要展示商品列表,推薦列表,商品類別展示,商家信息等等,在單機模式下,這些信息都將是一臺計算機完成查詢的,那么這些操作將是串行的,無疑查詢時間是很長的,你或許會說利用多線程可以將不同的查詢并行操作,這樣也是可以減少耗時,但是你要知道不管有多少個線程并行,單臺計算機上的多線程并行其實都是cpu交替運行(這里不考慮多cpu多核),說白了無非是在充分壓榨cpu的基礎上依然保持串行查詢。任務分布式模式下就會將推薦系統(tǒng)分離出來單獨部署在一臺服務器,將商品系統(tǒng)分離出來單獨部署一臺服務器,商家系統(tǒng)分離出來單獨部署一臺服務器,這樣在查詢商品列表的時候,商品系統(tǒng)可以利用多線程的方式并行調用推薦系統(tǒng)和商家系統(tǒng)分別查詢推薦列表和商家信息。這樣才能真正的實現(xiàn)并行查詢。

任務分布式的思想其實是任務拆分,但是拆分后的任務并不要求一定可以保持并行,對于一個復雜的任務,如果拆分出來的任務都必須保持串行才符合業(yè)務,那么拆分依然是有意義的,因為將一個大的系統(tǒng)拆分成多個小的系統(tǒng)后,當某個小功能需要升級時,只需要升級那個對應的小的子系統(tǒng)即可,避免了牽一發(fā)而動全身,而且代碼分開維護也會降低開發(fā)成本,這也是分而治之的上乘思想。

**多兵種模式在提供了更好的性能、擴展性、可維護性的同時,也帶來了設計上的復雜性問題 **

分布式是什么?

說了半天分布式發(fā)展歷程,那到底什么是分布式呢?

顧名思義,其實就是分開部署的方式,所謂分開是指龐大的數(shù)據(jù)體系分成小的可以獨立的數(shù)據(jù)體系,復雜的系統(tǒng)拆分成功能單一的小的子系統(tǒng),拆分后的獨立體系各自部署在獨立的計算機上運行。換個說法就是將相同或相關的程序運行在多臺計算機上,從而實現(xiàn)特定目標的一種計算方式。

從這個定義來看,數(shù)據(jù)并行、任務并行其實都可以算作是分布式的一種形態(tài)。從這些計算方式的演變中不難看出,產生分布式的最主要驅動力量,是我們對于性能、可用性及可擴展性的不懈追求。

實現(xiàn)分布式涉及到哪些內容呢?

我們上面只是對概念的闡述,其實實現(xiàn)分布式還是比較復雜的,會涉及到很多技術,但是仔細總結還是有章可循的,下圖基本可以概括分布式技術全部了吧。

圖片圖片

這張圖是按照業(yè)務的架構層次線,自底向上按照資源、通信、數(shù)據(jù)與計算的維度,梳理出了4個橫向技術層次:

  1. 分布式資源池化
  2. 分布式通信
  3. 分布式數(shù)據(jù)存儲與管理
  4. 分布式計算

這樣的劃分符合業(yè)務架構設計的一般規(guī)律,即“在一定資源上,進行一定通信,通過一定計算,完成一定數(shù)據(jù)的加工和處理,從而對外提供特定的服務”。

其實上面的這句話是分布式技術的基礎:既然是分布式系統(tǒng),那么計算機(應用程序)之間一定要通信,每個計算機(應用程序)一定會有數(shù)據(jù)存儲,也一定會有業(yè)務邏輯處理(計算),還有不同的業(yè)務子系統(tǒng)對計算機配置的以來程度也不一樣。

那么,通信是哪臺計算機(應用程序)對哪臺計算機(應用程序)通信,存儲是如何存儲,如果是多臺計算機(應用程序)可以提供計算,那么由哪臺計算機(應用程序)最終提供計算,如果多個計算機(應用程序)同時修改共享資源,那么如何保證不會出現(xiàn)數(shù)據(jù)一致性問題,如果計算機(應用程序)宕機,又該如何處理,這些問題的需要一個組織者,這個組織者進行協(xié)同,調度,追蹤這些計算機(應用程序),保證系統(tǒng)的高可用,數(shù)據(jù)一致性,同時還要兼顧性能和擴展性。

責任編輯:武曉燕 來源: 碼農本農
相關推薦

2024-01-09 08:00:58

2019-10-10 09:16:34

Zookeeper架構分布式

2023-10-26 18:10:43

分布式并行技術系統(tǒng)

2015-05-20 15:54:04

Openstack分布式存儲

2017-09-01 05:35:58

分布式計算存儲

2023-02-11 00:04:17

分布式系統(tǒng)安全

2022-06-21 08:27:22

Seata分布式事務

2019-06-19 15:40:06

分布式鎖RedisJava

2024-01-10 08:02:03

分布式技術令牌,

2023-05-29 14:07:00

Zuul網關系統(tǒng)

2020-09-29 19:20:05

鴻蒙

2021-04-23 08:15:51

Seata XA AT

2017-07-27 14:32:05

大數(shù)據(jù)分布式消息Kafka

2019-10-28 10:10:01

技術研發(fā)分布式

2017-10-27 08:40:44

分布式存儲剪枝系統(tǒng)

2023-05-12 08:23:03

分布式系統(tǒng)網絡

2023-02-23 07:55:41

2018-07-17 08:14:22

分布式分布式鎖方位

2024-03-01 09:53:34

2022-06-27 08:21:05

Seata分布式事務微服務
點贊
收藏

51CTO技術棧公眾號