日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
分布式系統(tǒng)的特點及設計理念

分布式系統(tǒng)的特點及設計理念

2015-05-26 11:18:06

云計算

分布式 分布式系統(tǒng)是大數(shù)據(jù)時代企業(yè)級應用的首選平臺,它有良好的可擴展性,尤其是橫向可擴展性(Scale Out),使得分布式系統(tǒng)非常靈活,能應對千變?nèi)f化的企業(yè)級需求,而且降低了企業(yè)客戶對服務器硬件的要求,真正能做到應用服務層面的彈性擴展(auto- scaling)。

分布式系統(tǒng)并不是什么新鮮詞,在上個世紀七八十年代就已經(jīng)有各種分布式系統(tǒng)出現(xiàn)。只是在互聯(lián)網(wǎng)時代,分布式系統(tǒng)才大放異彩,尤其是Google更是把分布式系統(tǒng)運用到了極致。Google整個的軟件構(gòu)架都是基于各種各樣的分布式系統(tǒng),諸如Borg、 MapReduce、BigTable等。正是這些分布式系統(tǒng),使得Google可以處理高并發(fā)請求響應以及海量數(shù)據(jù)處理等。Apache旗下的 Hadoop、Spark、Mesos等分布式系統(tǒng),把大數(shù)據(jù)處理相關(guān)技術(shù)變得非常親民,讓更多企業(yè)客戶體會到了分布式系統(tǒng)的便利。

分布式系統(tǒng)的特點

分布式系統(tǒng)最大的特點是可擴展性,它能夠適應需求變化而擴展。

企業(yè)級應用需求經(jīng)常隨時間而不斷變化,這也對企業(yè)級應用平臺提出了很高的要求。企業(yè)級應用平臺必須要能適應需求的變化,即具有可擴展性。比如移動互聯(lián)網(wǎng)2C應用,隨著互聯(lián)網(wǎng)企業(yè)的業(yè)務規(guī)模不斷增大,業(yè)務變得越來越復雜,并發(fā)用戶請求越來越多,要處理的數(shù)據(jù)也越來越多,這個時候企業(yè)級應用平臺必須能夠適應這些變化,支持高并發(fā)訪問和海量數(shù)據(jù)處理。分布式系統(tǒng)有良好的可擴展性,可以通過增加服務器數(shù)量來增強分布式系統(tǒng)整體的處理能力,以應對企業(yè)的業(yè)務增長帶來的計算需求。

分布式系統(tǒng)的核心理念是讓多臺服務器協(xié)同工作,完成單臺服務器無法處理的任務,尤其是高并發(fā)或者大數(shù)據(jù)量的任務。

分布式系統(tǒng)由獨立的服務器通過網(wǎng)絡松散耦合組成的。每個服務器都是一臺獨立的PC機,服務器之間通過內(nèi)部網(wǎng)絡連接,內(nèi)部網(wǎng)絡速度一般比較快。因為分布式集群里的服務器是通過內(nèi)部網(wǎng)絡松散耦合,各節(jié)點之間的通訊有一定的網(wǎng)絡開銷,因此分布式系統(tǒng)在設計上盡可能減少節(jié)點間通訊。此外,因為網(wǎng)絡傳輸瓶頸,單個節(jié)點的性能高低對分布式系統(tǒng)整體性能影響不大。比如,對分布式應用來說,采用不同編程語言開發(fā)帶來的單個應用服務的性能差異,跟網(wǎng)絡開銷比起來都可以忽略不計。因此,分布式系統(tǒng)每個節(jié)點一般不采用高性能的服務器,而是性能相對一般的普通PC服務器。提升分布式系統(tǒng)的整體性能是要通過橫向擴展(增加更多的服務器),而不是縱向擴展(提升每個節(jié)點的服務器性能)。

分布式系統(tǒng)最大的特點是廉價高效。

由成本低廉的PC服務器組成的集群,在性能方面能夠達到或超越大型機的處理性能,在成本上遠低于大型機。這也是分布式系統(tǒng)最吸引人之處。成本低廉的PC服務器在硬件可靠性方面比大型機相去甚遠,于是分布式系統(tǒng)由軟件來對硬件進行容錯,通過軟件來保證整體系統(tǒng)的高可靠性。

分布式系統(tǒng)最大的好處是實現(xiàn)企業(yè)應用服務層面的彈性擴展。

應用服務層面的彈性擴展是相對計算資源層面的彈性擴展而言的。一般公有云服務(IaaS)廠商都會提供計算資源層面的彈性擴展,比如可以很方便地增加或刪除虛擬主機、提升或降低虛擬主機的性能配置等等。但是企業(yè)客戶真正需要的是應用服務層面的彈性擴展,即隨著業(yè)務量的漲落,后臺應用服務的實例能動態(tài)變化,這是IaaS廠商還做不到的。比如,某移動互聯(lián)網(wǎng)短視頻分享應用,在晚間11點到凌晨1點是訪問高峰,同時在線人數(shù)高達幾十萬,這時后臺應用服務要擴張到數(shù)千個實例才能應付這么高并發(fā)的訪問請求;過了高峰時段,后臺應用服務可以收縮到幾十個實例。有了分布式系統(tǒng),就可以很方便地調(diào)度應用服務實例,從幾十個到幾百個甚至上千個,真正實現(xiàn)應用服務的彈性擴展。

分布式系統(tǒng)的設計理念

上面簡單介紹了分布式系統(tǒng)的基本情況,下面詳細闡述筆者理解的幾個分布式系統(tǒng)設計理念:

分布式系統(tǒng)對服務器硬件要求很低

這一點主要現(xiàn)在如下兩個方面:

對服務器硬件可靠性不做要求,允許服務器硬件發(fā)生故障,硬件的故障由軟件來容錯。所以分布式系統(tǒng)的高可靠性是由軟件來保證;

對服務器的性能不做要求,不要求使用高頻CPU、大容量內(nèi)存、高能存儲等等。因為分布式系統(tǒng)的性能瓶頸在于節(jié)點間通訊帶來的網(wǎng)開銷,單臺服務器硬件性能再好,也要等待網(wǎng)絡IO。

一般而言,互聯(lián)網(wǎng)公司的大型數(shù)據(jù)中心都是選用大量廉價的PC服務器而不是用幾臺高性能服務器搭建分布式集群,以此來降低數(shù)據(jù)中心成本。比如,Google對于數(shù)據(jù)中心的成本控制做到了極致:所有服務器一律不要機箱;主板完全定制,只要最基本的組件,早期的定制主板連電源開關(guān)和USB接口都不要;在主板上加裝隔離帶把CPU單獨隔出來,讓冷風只吹CPU,不吹內(nèi)存、硬盤等不需要降溫的組件,最大限度降低冷卻電力消耗。

分布式系統(tǒng)強調(diào)橫向可擴展性

橫向可擴展性(Scale Out)是指通過增加服務器數(shù)量來提升集群整體性能。縱向可擴展性(Scale Up)是指提升每臺服務器性能進而提升集群整體性能??v向可擴展性的上限非常明顯,單臺服務器的性能不可能無限提升,而且跟服務器性能相比,網(wǎng)絡開銷才是分布式系統(tǒng)最大的瓶頸。橫向可擴展性的上限空間比較大,集群總能很方便地增加服務器。而且分布式系統(tǒng)會盡可能保證橫向擴展帶來集群整體性能的(準)線性提升。比如有10臺服務器組成的集群,橫向擴展為100臺同樣服務器的集群,那么整體分布式系統(tǒng)性能會提升為接近原來的10倍。

互聯(lián)網(wǎng)公司的數(shù)據(jù)中心,一般一個分布式系統(tǒng)橫向擴展的上限在萬臺服務器左右。Google數(shù)據(jù)中心的基本單元,CELL,由兩萬臺左右服務器組成,每個CELL由一套分布式管理系統(tǒng),BORG,統(tǒng)一管理,每個數(shù)據(jù)中心都由多個CELL組成。

分布式系統(tǒng)不允許單點失效(No Single Point Failure)

單點失效是指,某個應用服務只有一份實例運行在某一臺服務器上,這臺服務器一旦掛掉,那么這個應用服務必然也受影響而掛掉,導致整個服務不可用。例如,某網(wǎng)站后臺如果只在某一臺服務器上運行一份,那這臺服務器一旦宕機,該網(wǎng)站服務必然受影響而不可用。再比如,如果所有數(shù)據(jù)都存在某一臺服務器上,那一旦這臺服務器壞了,所有數(shù)據(jù)都不可訪問。

因為分布式系統(tǒng)的服務器都是廉價的PC服務器,硬件不能保證100%可靠,所以分布式系統(tǒng)默認每臺服務器隨時都可能發(fā)生故障掛掉。同時分布式系統(tǒng)必須要提供高可靠服務,不允許出現(xiàn)單點失效,因此分布式系統(tǒng)里運行的每個應用服務都有多個運行實例跑在多個節(jié)點上,每個數(shù)據(jù)點都有多個備份存在不同的節(jié)點上。這樣一來,多個節(jié)點同時發(fā)生故障,導致某個應用服務的所有實例都掛掉、或某個數(shù)據(jù)點的多個備份都不可讀的概率大大降低,進而有效防止單點失效。

通常情況,不要讓服務器滿負荷運行,服務器長時間滿負荷運行的話,出故障的概率顯著升高。所以分布式系統(tǒng)采用一大堆中低性能的PC服務器,盡可能把負載均攤到所有服務器上,讓每臺服務器的負載都不高,保證集群整體穩(wěn)定性。

分布式系統(tǒng)盡可能減少節(jié)點間通訊開銷

如前所述,分布式系統(tǒng)的整體性能瓶頸在于內(nèi)部網(wǎng)絡開銷。目前網(wǎng)絡傳輸?shù)乃俣冗€趕不上CPU讀取內(nèi)存或硬盤的速度,所以減少網(wǎng)絡通訊開銷,讓CPU盡可能處理內(nèi)存的數(shù)據(jù)或本地硬盤的數(shù)據(jù),能顯著提高分布式系統(tǒng)的性能。典型的例子就是Hadoop MapReduce,把計算任務分配到要處理的數(shù)據(jù)所在的節(jié)點上運行,從而避免在網(wǎng)絡上傳輸數(shù)據(jù)。

分布式系統(tǒng)應用服務最好做成無狀態(tài)的

應用服務的狀態(tài)是指運行時程序因為處理服務請求而存在內(nèi)存的數(shù)據(jù)。分布式應用服務最好是設計成無狀態(tài)。因為如果應用程序是有狀態(tài)的,那么一旦服務器宕機就會使得應用服務程序受影響而掛掉,那存在內(nèi)存的數(shù)據(jù)也就丟失了,這顯然不是高可靠的服務。把應用服務設計成無狀態(tài)的,讓程序把需要保存的數(shù)據(jù)都保存在專門的存儲上,這樣應用服務程序可以任意重啟而不丟失數(shù)據(jù),方便分布式系統(tǒng)在服務器宕機后恢復應用服務。

比如,在設計網(wǎng)站后臺的時候,對于用戶登陸請求,可以把登陸用戶的session相關(guān)信息保存在Redis或Memcache等緩存服務中,這樣每個網(wǎng)站的后臺實例不保存用戶登錄狀態(tài),這樣即使重啟網(wǎng)站后臺程序也不丟失用戶的登錄狀態(tài)信息;如果把用戶的session相關(guān)信息保存在網(wǎng)站后臺程序的內(nèi)存里,那一旦受理用戶登錄的網(wǎng)站后臺程序?qū)嵗龗斓?,必然有用戶的登錄狀態(tài)信息會丟失。

總而言之,分布式系統(tǒng)是大數(shù)據(jù)時代企業(yè)級應用的首選平臺,它有良好的可擴展性,尤其是橫向可擴展性(Scale Out),使得分布式系統(tǒng)非常靈活,能應對千變?nèi)f化的企業(yè)級需求,而且降低了企業(yè)客戶對服務器硬件的要求,真正能做到應用服務層面的彈性擴展(auto- scaling)。


文章名稱:分布式系統(tǒng)的特點及設計理念
地址分享:http://m.5511xx.com/article/djjsssd.html