分布式架構之美

2022-01-16 00:56:32 字數 2752 閱讀 3852

​  我們都知道,當今無論在bat這樣的大公司,還是各種各樣的小公司,甚至是傳統行業剛轉網際網路的企業都開始使用分布式架構,那麼什麼叫分布式架構呢?分布式架構有什麼好處呢?分布式架構經過了怎樣的發展呢?是哪家企業開啟了分布式架構的時代呢?讀完本文,你就會得到這些答案,下面讓我們一起來開啟分布式概述的奇妙之旅吧!

​  2023年2.14日,那是乙個浪漫的情人節 , 世界上第一台電子數字計算機在美國賓夕法尼亞大學誕生了,她的名字叫eniac。這台計算機占地170平公尺、重達 30 噸,每秒可以進行 5000 次加法運算。

​  第一台電子計算機誕生以後,就意味著乙個日新月異的 it 時代到來了。單台計算機的效能不斷得到提公升,從最早的 8 位 cpu 到現在的 64 位 cpu;從早期的 mb 級記憶體到現在的 gb 級別記憶體;從慢速的機械儲存到現在的固態 ssd 硬碟儲存。

​  eniac 之後,電子計算機就進入了 ibm 主導的大型機時代。1964 年 4 月 7 日,在吉恩.阿姆達爾(ibm 大型機之父, 被認為是有史以來最偉大的計算機設計師之一)的帶領下,耗費 50 億美元,歷時三年,第一台 ibm 大型機 system/360 誕生了。這使得 ibm 在 20 世紀 50~60 年代統治著整個大型計算機工業,奠定了 ibm 計算機帝國的基礎。ibm 大型機曾支撐美國航天登月計畫,ibm 主機一直服務於金融等核心行業的關鍵領域。由於超強的計算能力和高可靠性,即使在 x86 和雲計算高速發展的背景下,ibm 的大型機依然牢牢佔據著一定的高階市場份額。

​ 20 世紀 80 年代,在大型機霸權的時代下,計算機的架構同時向兩個方向發展:

​  大型主機憑藉著大型機超強的計算和 i/o 處理能力、安全性、 穩定性等,在很長一段時間內,大型機引領著計算機行業及商業計算領域的發展。而集中式的計算機系統架構也漸漸成為了主流。但是隨著社會的發展,這種架構越來越難以適應企業的需求,比如說:

阿里巴巴發起的"去 ioe"運動開啟新時代

​  ioe 指的是 ibm 小型機、oracle 資料庫、emc 的高階儲存。阿里巴巴2009 年「去 ioe」戰略技術總監透露,截止到 2013 年 5 月 17 日阿里巴巴最後一台 ibm 小型機在支付寶下線。

為什麼要去 ioe?

​  隨著業務的快速發展,阿里巴巴業務量和資料量呈爆發性增長,傳統集中式 oracle 資料庫架構在系統的擴充套件性方面遭遇到了瓶頸。 傳統的商業資料庫軟體(oracle,db2)多以集中式架構為主, 那麼這些傳統資料庫軟體的最大特點就是將所有的資料都集中在 乙個資料庫中,只能依靠大型高階裝置來提供高處理能力和擴充套件性。 集中式資料庫的擴充套件性主要採用向上擴充套件(scale up)的方式, 通過增加 cpu、記憶體、磁碟等方式提高系統處理能力。這種集中式資料庫的架構,使得資料庫成為了整個系統的瓶頸,已經越來越不能適應海量資料對計算能力的要求。

之所以要發展分布式系統架構,是因為單機系統存在著如下諸多缺點等待被解決:

公升級單機處理能力的價效比越來越低

我們知道單機的處理能力主要依靠 cpu、記憶體、磁碟。通過公升級硬體來這種垂直擴充套件的方式來提公升效能,成本會越來越高。價效比會越來越低。

單機處理能力存在瓶頸

並且單機處理能力存在瓶頸,cpu、記憶體、磁碟都會有自己的效能瓶頸, 就算你是土豪不惜成本去提公升硬體,但是硬體的發展速度和效能也還是有限制的。

穩定性和可用性這兩個指標很難達到

最後就是單機系統存在可用性和穩定性的問題,這兩個指標又是我們亟待要去解決的問題。

1.集群

​  小張開了一家小飯店,剛開始的時候店裡只有乙個廚師,切菜洗菜備料炒菜全乾。後來由於飯香甜可口,**量越來越多了,乙個廚師忙不過來了,小張又請了兩個廚師,那麼這時候三個廚師炒一樣的菜,做相同的切菜洗菜備料炒菜等工作,那這三個廚師的關係是集群。也就意味著來乙個顧客,只有其中的乙個廚師會為這個顧客服務。

2.分布式

​  又經過一段時間,店裡的生意更加火爆了,小張為了讓廚師們能專心炒菜,把菜做到極致,又請了個配菜師負責切菜、備菜、備料,那麼廚師和配菜師的關係是分布式,後來乙個配菜師也忙不過來了,小張就又請了兩個配菜師,三個配菜師關係也是集群。

3.節點

​  節點是指乙個可以獨立按照分布式協議完成一組邏輯的程式個體。在具體的專案中,乙個節點表示的是乙個作業系統上的程序。 那這裡的每乙個配菜師和廚師都是乙個節點。

4.副本機制

​  副本(replica/copy)是指在分布式系統中為資料或服務提供的冗餘。 資料副本指在不同的節點上持久化同乙份資料,當某乙個節點出現資料丟失時,可以從副本上恢復資料。資料副本是分布式系統中解決資料丟失問題的唯一手段。 服務副本表示多個節點提供相同的服務,通過主從關係來實現服務高可用的方案。

5.中介軟體

​  中介軟體位於作業系統提供的服務之外,但又不屬於應用,他是位於應用和系統層之間的、為開發者方便的處理通訊、輸入輸出的一類軟體,能夠讓使用者只關心自己應用的部分。

上圖是經典理論-馮.諾依曼體系,計算機硬體由運算器、 控制器、儲存器、輸入裝置、輸出裝置五大部分組成。不管架構怎麼變化,計算機仍沒有跳出該體系的範疇。

毫無疑問,分布式系統對於集中式系統而言,在實現上會更加 複雜。分布式系統將會是更難理解、設計、構建 和管理的,同 時意味著應用程式的根源問題更難發現。

python分布式架構 分布式架構

1.分布式架構 採用centos mongodb windows2012 python redis進行分布式架構搭建,mongodb的框架最核心的設計就是 mongodb和mapreduce。mongodb為海量的資料提供了儲存,則mapreduce為海量的資料提供了計算,windows2012作為...

分布式架構

cap原理 c 一致性 多節點資料的一致 a 可用性 保證服務持續可用 多節點 多型伺服器 p 分割槽容忍性 是否可將資料存到多個地方 設計不可能同時滿足cap ac 放棄分割槽容忍,物理資料庫 ap 可以短暫的容忍資料不一致 nosql資料庫 cp 放棄可用性 springcloud有一下功能 e...

ElasticSearch分布式架構

it技術精華網 今天介紹下elasticsearch的分布式架構,如果你熟悉cassandra hadoop mongodb,你會發現elasticsearch裡面有很多他們的影子,沒錯,elasticsearch吸收了目前主流的分布式系統的很多特性,下面簡單介紹一把。之前翻譯過一篇 譯 搜尋引擎與...