摘 要:伴隨互聯(lián)網(wǎng)的飛速發(fā)展,Web 信息迅速膨脹,單機(jī)系統(tǒng)遠(yuǎn)不能滿足大規(guī)模數(shù)據(jù)的信息處理需求。為此,以 Hadoop 為代表的分布式技術(shù)得到迅速發(fā)展,本文主要介紹了分布式概念,分布式技術(shù)的特點以及分布式的常用技術(shù)。
關(guān)鍵詞:分布式;大數(shù)據(jù);分布式常用技術(shù);物聯(lián)網(wǎng)
一、概念
分布式技術(shù)作為一種基于網(wǎng)絡(luò)的計算機(jī)處理技術(shù),與集中式相對應(yīng)。分布式系統(tǒng)的核心理念是讓多臺服務(wù)器協(xié)同工作,完成單臺服務(wù)器無法處理的任務(wù),尤其是高并發(fā)或者大數(shù)據(jù)量的任務(wù)。分布式系統(tǒng)由獨立的服務(wù)器通過網(wǎng)絡(luò)松散耦合組成的。每個服務(wù)器都是一臺獨立的PC機(jī),服務(wù)器之間通過內(nèi)部網(wǎng)絡(luò)連接,內(nèi)部網(wǎng)絡(luò)速度一般比較快。因為分布式集群里的服務(wù)器是通過內(nèi)部網(wǎng)絡(luò)松散耦合,各節(jié)點之間的通訊有一定的網(wǎng)絡(luò)開銷,因此分布式系統(tǒng)在設(shè)計上盡可能減少節(jié)點間通訊。此外,因為網(wǎng)絡(luò)傳輸瓶頸,單個節(jié)點的性能高低對分布式系統(tǒng)整體性能影響不大。比如,對分布式應(yīng)用來說,采用不同編程語言開發(fā)帶來的單個應(yīng)用服務(wù)的性能差異,跟網(wǎng)絡(luò)開銷比起來都可以忽略不計。因此,分布式系統(tǒng)每個節(jié)點一般不采用高性能的服務(wù)器,而是性能相對一般的普通PC服務(wù)器。提升分布式系統(tǒng)的整體性能是要通過橫向擴(kuò)展(增加更多的服務(wù)器),而不是縱向擴(kuò)展(提升每個節(jié)點的服務(wù)器性能)。
二、分布式技術(shù)特點
分布式系統(tǒng)最大的特點是可擴(kuò)展性,它能夠適應(yīng)需求變化而擴(kuò)展。其主要是橫向擴(kuò)展性。企業(yè)級應(yīng)用需求經(jīng)常隨時間而不斷變化,這也對企業(yè)級應(yīng)用平臺提出了很高的要求。企業(yè)級應(yīng)用平臺必須要能適應(yīng)需求的變化,即具有可擴(kuò)展性。比如移動互聯(lián)網(wǎng)2C應(yīng)用,隨著互聯(lián)網(wǎng)企業(yè)的業(yè)務(wù)規(guī)模不斷增大,業(yè)務(wù)變得越來越復(fù)雜,并發(fā)用戶請求越來越多,要處理的數(shù)據(jù)也越來越多,這個時候企業(yè)級應(yīng)用平臺必須能夠適應(yīng)這些變化,支持高并發(fā)訪問和海量數(shù)據(jù)處理。分布式系統(tǒng)有良好的可擴(kuò)展性,可以通過增加服務(wù)器數(shù)量來增強(qiáng)分布式系統(tǒng)整體的處理能力,以應(yīng)對企業(yè)的業(yè)務(wù)增長帶來的計算需求。
分布式系統(tǒng)對服務(wù)器硬件要求很低。分布式系統(tǒng)對服務(wù)器硬件可靠性不做要求,允許服務(wù)器硬件發(fā)生故障,硬件的故障由軟件來容錯。所以分布式系統(tǒng)的高可靠性是由軟件來保證。對服務(wù)器的性能不做要求,不要求使用高頻CPU、大容量內(nèi)存、高性能存儲等等。因為分布式系統(tǒng)的性能瓶頸在于節(jié)點間通訊帶來的網(wǎng)絡(luò)開銷,單臺服務(wù)器硬件性能再好,也要等待網(wǎng)絡(luò)IO。
分布式系統(tǒng)不允許單點失效。單點失效是指,某個應(yīng)用服務(wù)只有一份實例運行在某一臺服務(wù)器上,這臺服務(wù)器一旦掛掉,那么這個應(yīng)用服務(wù)必然也受影響而掛掉,導(dǎo)致整個服務(wù)不可用。因為分布式系統(tǒng)的服務(wù)器都是廉價的PC服務(wù)器,硬件不能保證100%可靠,所以分布式系統(tǒng)默認(rèn)每臺服務(wù)器隨時都可能發(fā)生故障掛掉。同時分布式系統(tǒng)必須要提供高可靠服務(wù),不允許出現(xiàn)單點失效,因此分布式系統(tǒng)里運行的每個應(yīng)用服務(wù)都有多個運行實例跑在多個節(jié)點上,每個數(shù)據(jù)點都有多個備份存在不同的節(jié)點上。這樣一來,多個節(jié)點同時發(fā)生故障,導(dǎo)致某個應(yīng)用服務(wù)的所有實例都掛掉、或某個數(shù)據(jù)點的多個備份都不可讀的概率大大降低,進(jìn)而有效防止單點失效。
分布式系統(tǒng)盡可能減少節(jié)點間通訊開銷。分布式系統(tǒng)的整體性能瓶頸在于內(nèi)部網(wǎng)絡(luò)開銷。目前網(wǎng)絡(luò)傳輸?shù)乃俣冗€趕不上CPU讀取內(nèi)存或硬盤的速度,所以減少網(wǎng)絡(luò)通訊開銷,讓CPU盡可能處理內(nèi)存的數(shù)據(jù)或本地硬盤的數(shù)據(jù),能顯著提高分布式系統(tǒng)的性能。典型的例子就是Hadoop MapReduce,把計算任務(wù)分配到要處理的數(shù)據(jù)所在的節(jié)點上運行,從而避免在網(wǎng)絡(luò)上傳輸數(shù)據(jù)
三、分布式常用技術(shù)
3.1分布式系統(tǒng)的架構(gòu)體系
分布式結(jié)構(gòu)是相對于集中式結(jié)構(gòu)而言的,整個應(yīng)用系統(tǒng)的執(zhí)行是分成多個不同的部分并且執(zhí)行在不同的機(jī)器之中。分布式架構(gòu)主要有:基于對象的體系機(jī)構(gòu)、面向服務(wù)的架構(gòu)(SOA)、REST風(fēng)格的架構(gòu)、微服務(wù)架構(gòu)(MSA)、容器技術(shù)、Serverless架構(gòu)。
3.2.分布式消息服務(wù)
分布式消息服務(wù)是一項基于分布式集群技術(shù)的消息中間件服務(wù),具有高可靠性、高并發(fā)、低延遲、海量消息堆積的能力特點,提供有效的安全防護(hù)、完善的監(jiān)控與審計、報警機(jī)制,為分布式系統(tǒng)提供靈活可靠的異步通信機(jī)制。分布式消息服務(wù)主要有: Apache ActiveMQ、RabbitMQ、RocketMQ、Apache Kafka。
3.3分布式計算
分布式計算( Distributed computing )是一種把需要進(jìn)行大量計算的工程數(shù)據(jù)分割成小塊,由多臺計算機(jī)分別計算,在上傳運算結(jié)果后,將結(jié)果統(tǒng)一合并得出數(shù)據(jù)結(jié)論的科學(xué)。分布式計算技術(shù)主要有: MapReduce、Apache Hadoop、Apache Spark、Apache Mesos。
3.4分布式存儲
分布式存儲是一種數(shù)據(jù)存儲技術(shù),通過網(wǎng)絡(luò)使用企業(yè)中的每臺機(jī)器上的磁盤空間,并將這些分散的存儲資源構(gòu)成一個虛擬的存儲設(shè)備,數(shù)據(jù)分散的存儲在企業(yè)的各個角落。分布式存儲技術(shù)主要有: Bigtable、Apache HBase、Apache Cassandra、Memcached、Redis、MongoDB。
3.5分布式監(jiān)控主要技術(shù)有:Nagios、Zabbix、Consul、Zookeeper。
3.6分布式的版本控制
分布式的版本控制就是每個人都可以創(chuàng)建一個獨立的代碼倉庫用于管理,各種版本控制的操作都可以在本地完成。每個人修改的代碼都可以推送合并到另外一個代碼倉庫中。主要的分布式版本控制技術(shù)有:Bazaar, Mercurial, Git。
參考文獻(xiàn):
[1]劉罡.云計算關(guān)鍵技術(shù)及其應(yīng)用[J].信息與電腦(理論版),2016(18):68-69.
[2]昝斌.構(gòu)建大數(shù)據(jù)云計算平臺分布式技術(shù)初探[J].電子科學(xué)技術(shù),2017,04(03):55-57.
[3]涂蘇娟. 分布式架構(gòu)設(shè)計[D].南昌大學(xué),2017.
[4]溫苑花.分布式技術(shù)與數(shù)據(jù)庫應(yīng)用于計算機(jī)技術(shù)領(lǐng)域研究[J].信息系統(tǒng)工程,2018(01):28.
[5]鄧靈,陳亮,葉仲和.分布式技術(shù)及其應(yīng)用概述[J].計算機(jī)時代,2004(06):6-8.
[6]白翠琴;王建;李旭偉.存儲虛擬化技術(shù)的研究與比較 [J].計算機(jī)與信息技術(shù),2008(7).
[7] Eric A. Brewer,Towards Robust Distributed Systems. (Invited Talk) In the Proc. of 19th ACM Conference on Principles of Distributed Computing (PODC). Portland, OR, July 2000.
基金項目:項目 2017年國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目:面向車輛數(shù)據(jù)的分布式實時存儲系統(tǒng)的設(shè)計與研究(編號: 201713324080)
作者簡介:
孫艷華(1989.10-), 女 ,山東聊城人,碩士,講師,研究方向大數(shù)據(jù)分布式處理與計算.