一、前言我們都知道,當今無論在BAT這樣的大公司,還是各種各樣的小公司,甚至是傳統(tǒng)行業(yè)剛轉(zhuǎn)互聯(lián)網(wǎng)的企業(yè)都開始使用分布式架構(gòu),那么什么叫分布式架構(gòu)呢?分布式架構(gòu)有什么好處呢?分布式架構(gòu)經(jīng)過了怎樣的發(fā)展呢?是哪家企業(yè)開啟了分布式架構(gòu)的時代呢?讀完本文,你就會得到這些答案,下面讓我們一起來開啟分布式概述的奇妙之旅吧! 二、分布式架構(gòu)的發(fā)展歷史1946年2.14日,那是一個浪漫的情人節(jié) , 世界上第一臺電子數(shù)字計算機在美國賓夕法尼亞大學誕生了,她的名字叫ENIAC。這臺計算機占地170平米、重達 30 噸,每秒可以進行 5000 次加法運算。 第一臺電子計算機誕生以后,就意味著一個日新月異的 IT 時代到來了。單臺計算機的性能不斷得到提升,從最早的 8 位 CPU 到現(xiàn)在的 64 位 CPU;從早期的 MB 級內(nèi)存到現(xiàn)在的 GB 級別內(nèi)存;從慢速的機械存儲到現(xiàn)在的固態(tài) SSD 硬盤存儲。 ENIAC 之后,電子計算機就進入了 IBM 主導的大型機時代。1964 年 4 月 7 日,在吉恩.阿姆達爾(IBM 大型機之父, 被認為是有史以來最偉大的計算機設計師之一)的帶領(lǐng)下,耗費 50 億美元,歷時三年,第一臺 IBM 大型機 SYSTEM/360 誕生了。這使得 IBM 在 20 世紀 50~60 年代統(tǒng)治著整個大型計算機工業(yè),奠定了 IBM 計算機帝國的基礎。IBM 大型機曾支撐美國航天登月計劃,IBM 主機一直服務于金融等核心行業(yè)的關(guān)鍵領(lǐng)域。由于超強的計算能力和高可靠性,即使在 X86 和云計算高速發(fā)展的背景下,IBM 的大型機依然牢牢占據(jù)著一定的高端市場份額。 20 世紀 80 年代,在大型機霸權(quán)的時代下,計算機的架構(gòu)同時向兩個方向發(fā)展:
三、分布式架構(gòu)發(fā)展的里程碑大型主機憑借著大型機超強的計算和 I/O 處理能力、安全性、 穩(wěn)定性等,在很長一段時間內(nèi),大型機引領(lǐng)著計算機行業(yè)及商業(yè)計算領(lǐng)域的發(fā)展。而集中式的計算機系統(tǒng)架構(gòu)也漸漸成為了主流。但是隨著社會的發(fā)展,這種架構(gòu)越來越難以適應企業(yè)的需求,比如說:
阿里巴巴發(fā)起的'去 IOE'運動開啟新時代IOE 指的是 IBM 小型機、Oracle 數(shù)據(jù)庫、EMC 的高端存儲。阿里巴巴2009 年“去 IOE”戰(zhàn)略技術(shù)總監(jiān)透露,截止到 2013 年 5 月 17 日阿里巴巴最后一臺 IBM 小型機在支付寶下線。 為什么要去 IOE?隨著業(yè)務的快速發(fā)展,阿里巴巴業(yè)務量和數(shù)據(jù)量呈爆發(fā)性增長,傳統(tǒng)集中式 Oracle 數(shù)據(jù)庫架構(gòu)在系統(tǒng)的擴展性方面遭遇到了瓶頸。 傳統(tǒng)的商業(yè)數(shù)據(jù)庫軟件(Oracle,DB2)多以集中式架構(gòu)為主, 那么這些傳統(tǒng)數(shù)據(jù)庫軟件的最大特點就是將所有的數(shù)據(jù)都集中在 一個數(shù)據(jù)庫中,只能依靠大型高端設備來提供高處理能力和擴展性。 集中式數(shù)據(jù)庫的擴展性主要采用向上擴展(Scale up)的方式, 通過增加 CPU、內(nèi)存、磁盤等方式提高系統(tǒng)處理能力。這種集中式數(shù)據(jù)庫的架構(gòu),使得數(shù)據(jù)庫成為了整個系統(tǒng)的瓶頸,已經(jīng)越來越不能適應海量數(shù)據(jù)對計算能力的要求。 四、分布式系統(tǒng)的意義之所以要發(fā)展分布式系統(tǒng)架構(gòu),是因為單機系統(tǒng)存在著如下諸多缺點等待被解決:
五、分布式架構(gòu)的常見概念1.集群小張開了一家小飯店,剛開始的時候店里只有一個廚師,切菜洗菜備料炒菜全干。后來由于飯香甜可口,人流量越來越多了,一個廚師忙不過來了,小張又請了兩個廚師,那么這時候三個廚師炒一樣的菜,做相同的切菜洗菜備料炒菜等工作,那這三個廚師的關(guān)系是集群。也就意味著來一個顧客,只有其中的一個廚師會為這個顧客服務。 2.分布式又經(jīng)過一段時間,店里的生意更加火爆了,小張為了讓廚師們能專心炒菜,把菜做到極致,又請了個配菜師負責切菜、備菜、備料,那么廚師和配菜師的關(guān)系是分布式,后來一個配菜師也忙不過來了,小張就又請了兩個配菜師,三個配菜師關(guān)系也是集群。 3.節(jié)點節(jié)點是指一個可以獨立按照分布式協(xié)議完成一組邏輯的程序個體。在具體的項目中,一個節(jié)點表示的是一個操作系統(tǒng)上的進程。 那這里的每一個配菜師和廚師都是一個節(jié)點。 4.副本機制副本(replica/copy)是指在分布式系統(tǒng)中為數(shù)據(jù)或服務提供的冗余。 數(shù)據(jù)副本指在不同的節(jié)點上持久化同一份數(shù)據(jù),當某一個節(jié)點出現(xiàn)數(shù)據(jù)丟失時,可以從副本上恢復數(shù)據(jù)。數(shù)據(jù)副本是分布式系統(tǒng)中解決數(shù)據(jù)丟失問題的唯一手段。 服務副本表示多個節(jié)點提供相同的服務,通過主從關(guān)系來實現(xiàn)服務高可用的方案。 5.中間件中間件位于操作系統(tǒng)提供的服務之外,但又不屬于應用,他是位于應用和系統(tǒng)層之間的、為開發(fā)者方便的處理通信、輸入輸出的一類軟件,能夠讓用戶只關(guān)心自己應用的部分。 六、分布式領(lǐng)域中馮諾依曼模型的變化
七、分布式系統(tǒng)的難點毫無疑問,分布式系統(tǒng)對于集中式系統(tǒng)而言,在實現(xiàn)上會更加 復雜。分布式系統(tǒng)將會是更難理解、設計、構(gòu)建 和管理的,同 時意味著應用程序的根源問題更難發(fā)現(xiàn)。
八、總結(jié)通過本文分布式系統(tǒng)的概述,我們就對分布式有了一個很直觀的了解,里面涉及到的技術(shù)還是蠻多的,后面的文章中,我們一點點的來啃這些硬骨頭。為我們的成長加油點贊吧~ 下篇博文我們來聊分布式架構(gòu)的演進過程怎么樣?評論區(qū)等你。 |
|