成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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


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

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

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

單兵模式:單機模式

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

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

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

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

圖片圖片

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

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

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

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

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

多兵模式:數據分布式

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

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

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

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

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

圖片

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

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

圖片圖片

這種模式的好處表現為以下兩點:

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

這種模式的缺點表現為以下兩點:

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

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

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

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

多兵種模式:任務分布式

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

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

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

圖片圖片

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

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

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

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

分布式是什么?

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

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

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

實現分布式涉及到哪些內容呢?

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

圖片圖片

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

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

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

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

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

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

2024-01-09 08:00:58

2019-10-10 09:16:34

Zookeeper架構分布式

2023-10-26 18:10:43

分布式并行技術系統

2015-05-20 15:54:04

Openstack分布式存儲

2017-09-01 05:35:58

分布式計算存儲

2023-02-11 00:04:17

分布式系統安全

2019-06-19 15:40:06

分布式鎖RedisJava

2024-01-10 08:02:03

分布式技術令牌,

2022-06-21 08:27:22

Seata分布式事務

2023-05-29 14:07:00

Zuul網關系統

2021-04-23 08:15:51

Seata XA AT

2020-09-29 19:20:05

鴻蒙

2019-10-28 10:10:01

技術研發分布式

2017-07-27 14:32:05

大數據分布式消息Kafka

2017-10-27 08:40:44

分布式存儲剪枝系統

2023-05-12 08:23:03

分布式系統網絡

2023-02-23 07:55:41

2024-03-01 09:53:34

2018-07-17 08:14:22

分布式分布式鎖方位

2018-12-14 10:06:22

緩存分布式系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲在线一区 | 亚洲欧洲一区二区 | 日韩一区中文字幕 | av资源在线看 | 日韩精品在线播放 | 欧美高清性xxxxhdvideosex | 国产无套一区二区三区久久 | 亚洲精品一 | 欧美日韩成人网 | 欧美日韩亚洲国产 | 中文天堂在线一区 | 日韩免费高清视频 | 国产91av视频在线观看 | 色爱av| 日韩快播电影 | 久久久久久成人 | 97国产精品视频 | www.日韩免费 | 成人欧美一区二区三区视频xxx | 欧洲性生活视频 | 一区二区免费在线观看 | 国产精品亚洲综合 | 成av人电影在线 | 九九热在线精品视频 | 日韩欧美在线视频一区 | 欧美亚洲视频 | 欧洲尺码日本国产精品 | 狠狠色综合欧美激情 | 亚洲狠狠爱一区二区三区 | 狠狠伊人 | 精品欧美一区二区三区精品久久 | 中文字幕高清免费日韩视频在线 | 很很干很很日 | 欧美在线精品一区 | 日韩成人免费视频 | 午夜一级大片 | 中文字幕一区二区三区乱码在线 | 久久久精品视频免费看 | 成人在线视频一区 | 性一交一乱一伦视频免费观看 | 久久久高清 |