丨分布式數(shù)據(jù)存儲系統(tǒng)之三要素顧客導(dǎo)購與貨架_第1頁
丨分布式數(shù)據(jù)存儲系統(tǒng)之三要素顧客導(dǎo)購與貨架_第2頁
丨分布式數(shù)據(jù)存儲系統(tǒng)之三要素顧客導(dǎo)購與貨架_第3頁
丨分布式數(shù)據(jù)存儲系統(tǒng)之三要素顧客導(dǎo)購與貨架_第4頁
丨分布式數(shù)據(jù)存儲系統(tǒng)之三要素顧客導(dǎo)購與貨架_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

有一個直觀的理解。在后面幾篇文章中,我會針對這三要素中的關(guān)鍵技術(shù)進一步展開,以助你更深入地理解分布式數(shù)據(jù)系統(tǒng)接下來,我們就一起打卡分布式系統(tǒng)的三要素:顧客、導(dǎo)購與貨架 式,比如Hash、一致性Hash、數(shù)據(jù)范圍分類等,將用戶引導(dǎo)至數(shù)據(jù)D所屬的節(jié)點獲靜下心來想一下,獲取數(shù)據(jù)的整個過程與你到商店購物的過程是不是有些類似顧客到商店購物時,導(dǎo)購會根據(jù)顧客想要的商品引導(dǎo)顧客到相應(yīng)的貨架,然后顧客從這個貨架上獲取要的商品,完成購物。這里的顧客就是圖中的應(yīng)用程序,導(dǎo)購就相當(dāng)于分操作,它照一規(guī)則相應(yīng)架,就是數(shù)據(jù)同機點。其實,這個過程就是分布式系統(tǒng)中獲取數(shù)據(jù)的通用流程,顧客、導(dǎo)購和貨架布式系統(tǒng)的三要素,分別對應(yīng)著分布式領(lǐng)域中的數(shù)據(jù)生產(chǎn)者/消費者、數(shù)據(jù)索引和數(shù)據(jù)儲。接下來,我們就詳細看看這三個要素吧顧客就是數(shù)據(jù)的生產(chǎn)者和消費者,也就是說顧客代表兩類角色,生產(chǎn)者會生產(chǎn)數(shù)據(jù)(商店購物例子中的供貨商就屬于生產(chǎn)類顧客),將數(shù)據(jù)到分布式數(shù)據(jù)系統(tǒng)中,消費者是從分布式數(shù)據(jù)系統(tǒng)中獲取數(shù)據(jù)進行消費(比如,商店購物例子中商品的用戶就屬于消費類顧客);導(dǎo)購就是數(shù)據(jù)索引,將數(shù)據(jù)的請求轉(zhuǎn)發(fā)到數(shù)據(jù)所在的節(jié)點;貨架就是設(shè)備,用于數(shù)據(jù)。顧客:生產(chǎn)和消費顧客相當(dāng)于分布式系統(tǒng)中的應(yīng)用程序,而數(shù)據(jù)是應(yīng)用程序的原動力。根據(jù)數(shù)據(jù)的產(chǎn)生和使用,顧客分為生產(chǎn)者和消費者兩種類型。生產(chǎn)者負(fù)責(zé)給系統(tǒng)添加數(shù)據(jù),而消費者則可以使用系統(tǒng)中的數(shù)據(jù)。就像是火車票系統(tǒng),如圖所示,鐵路局就相當(dāng)于生產(chǎn)者類型的顧客而乘客就相當(dāng)于消費者類型的顧客。鐵路局將各個線路的火車票信息發(fā)布到訂票的數(shù)據(jù)庫中,乘客通過訂票數(shù)據(jù)庫來進行查詢余票、訂票、退票等操作。生產(chǎn)者和消費者生產(chǎn)和消費的數(shù)據(jù)通常是多種多樣的,不同應(yīng)用場景中數(shù)據(jù)的類型、格式等都不一樣。據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。半結(jié)構(gòu)化數(shù)據(jù)通常是指非關(guān)系模型的,有基本固定結(jié)構(gòu)模式的數(shù)據(jù),其特征是數(shù)據(jù)之間關(guān)系比較簡單。比如L,使用書容。構(gòu)化大多采用值對形式來表示,比如HTML文檔可以將設(shè)置為key,對應(yīng)的內(nèi)容可以設(shè)置value,因此一般采用分布式鍵值系統(tǒng)進行和使用非結(jié)構(gòu)化數(shù)據(jù)是指沒有固定模式的數(shù)據(jù),其特征是數(shù)據(jù)之間關(guān)聯(lián)不大。比如文本數(shù)據(jù)就是一種非結(jié)構(gòu)化數(shù)據(jù)。這種數(shù)據(jù)可以到文檔中,通過trh(全文搜索引擎)等進行檢索。導(dǎo)購:確定數(shù)據(jù)導(dǎo)購是分布式系統(tǒng)必不可少的要素,如果沒有導(dǎo)購,顧客就需要逐個貨架去尋找自己一下果你票火車按照的需擊查票后統(tǒng)會掃描分布式系統(tǒng)中每臺機器的數(shù)據(jù),尋找你想要的火車票。如果系統(tǒng)中的數(shù)據(jù)不票很失望。這種定位數(shù)據(jù)位置的方式會浪費你很多時間,嚴(yán)重影響購票體驗。因此,在分布式系統(tǒng)中,必須有相應(yīng)的數(shù)據(jù)導(dǎo)購,否則系統(tǒng)響應(yīng)會很慢,效率很低。為解決這個問題,分片技術(shù)就走入了分布式系統(tǒng)的大家庭。數(shù)據(jù)分片技術(shù),是指分布式系統(tǒng)按照一定的規(guī)則將數(shù)據(jù)到相對應(yīng)的節(jié)點中,或者到相對應(yīng)的節(jié)點中獲取想要的數(shù)據(jù),這是一種很常用的導(dǎo)購技術(shù)。這種技術(shù),一方面可以降低單個節(jié)點的和壓力;另一方面,可以通過規(guī)定好的規(guī)則快速找到數(shù)據(jù)所在的節(jié)點,從而大大降低搜索延遲,提高用戶體驗。是說鐵路布各路的票信,會一定則應(yīng)的中,比如到的火車票到機器A中,西安到重慶的火車票到機器B中當(dāng)乘客火車,系可以查詢迅速到相的器,將數(shù)回給用戶,響應(yīng)時間就大大縮短了。如圖所示,當(dāng)查詢-的火車票相關(guān)信息時,可以A進行數(shù)據(jù)交互。這個例子中按照數(shù)據(jù)起點、終點的方式劃分?jǐn)?shù)據(jù),將數(shù)據(jù)分為幾部分到不同的機器節(jié)點中,就是數(shù)據(jù)分片技術(shù)的一種。當(dāng)查詢數(shù)據(jù)時,系統(tǒng)可以根據(jù)查詢條件迅速找到對應(yīng)的節(jié)點,從而實現(xiàn)快速響應(yīng)。上述的例子中,按照數(shù)據(jù)特征進行了數(shù)據(jù)分片,當(dāng)然,還有其他很多數(shù)據(jù)分片的方案。比接下來,我就針對數(shù)據(jù)范圍這種數(shù)據(jù)分片方案做一個具體介紹針對數(shù)據(jù)范圍的數(shù)據(jù)分片方案是指,按照某種規(guī)則劃分?jǐn)?shù)據(jù)范圍,然后將在這個范圍內(nèi)的數(shù)據(jù)歸屬到一個集合中。這就好比數(shù)學(xué)中通常講的整數(shù)區(qū)間,比如10的整數(shù)屬于一個子集、[101,]的整數(shù)屬于另一個子集。劃分到一個子集或分區(qū)進行,比如機器A京廣線的火車票數(shù)據(jù),機器B京滬如圖所示,當(dāng)用戶查詢-的火車票相關(guān)信息時,首先判斷查詢條件屬于哪個范圍,由于-的火車線路屬于京滬線,因此系統(tǒng)按照規(guī)則將查詢請求轉(zhuǎn)到存取京滬線火車票數(shù)據(jù)的機器B,然后由機器B進行處理并給用戶返回響應(yīng)結(jié)果。為了提高分布式系統(tǒng)的可用性與可靠性,一個非常重要的方法。據(jù)是將進行,以多個點據(jù)。想象一下,當(dāng)某個節(jié)點出現(xiàn)故障時,如果只采用數(shù)據(jù)分片技術(shù),那這個節(jié)點的數(shù)據(jù)就會丟失,從而給用戶造成損失。因此,數(shù)據(jù)在分布式系統(tǒng)中是不可或缺的。關(guān)于數(shù)據(jù)技術(shù),我會在第6篇文章中與你詳細講解。看下面這張:數(shù)據(jù)A被拆分為兩部分在兩個節(jié)點Node1和Node2上,屬于數(shù)據(jù)分片;而對數(shù)據(jù)來說,同一份完整的數(shù)據(jù)在兩個節(jié)點中均有,就屬于數(shù)據(jù)在實際的分布式系統(tǒng)中,數(shù)據(jù)分片和數(shù)據(jù)通常是共存的數(shù)據(jù)通過分片方式到不同的節(jié)點上,以減少單節(jié)點的性能瓶頸問題而數(shù)據(jù)的通常用主備方式保證可靠性,也就是對每個節(jié)點上的分片數(shù)據(jù),用主備方式,以保證數(shù)據(jù)的可靠性。其中,主備節(jié)點上數(shù)據(jù)的一致,是通過數(shù)據(jù)技術(shù)實現(xiàn)的。講到這里,我們再回憶下20篇文章中涉及的Kafka集群的總體架構(gòu)圖吧。我從中抽取出Kafka集群消息架構(gòu)圖,如下所示。消息數(shù)據(jù)以Partition(分區(qū))進行,一個Topic()可以由多個Partition進行儲,Partition以分布到多個Broker同時,Kafka供了Partition制(分區(qū)的信息進行備份,比如Broker1中的Topic-1Partion-0是對Broker0上Topic-1Partition-0進行的備份),從而保證了消息的可靠性這就是數(shù)據(jù)分片和數(shù)據(jù)共存的一個典型應(yīng)用場景貨架:數(shù)針對這三種不同的數(shù)據(jù)類型,“貨架”可以大致劃分為以下三種分布式數(shù)據(jù)庫,通過表格來結(jié)構(gòu)化數(shù)據(jù),方便查找。常用的分布式數(shù)據(jù)庫有MySQL SQLAzure、Spanner、AlibabaOceanBase等。分布式鍵值系統(tǒng),通過鍵值對來半結(jié)構(gòu)化數(shù)據(jù)。常用的分布式鍵值系統(tǒng)有Redis、Memcache等,可用作緩存系統(tǒng)。具體的緩存技術(shù)我將在第27篇文章“分布式數(shù)據(jù)之分布式系統(tǒng),通過文件、塊、對象等來非結(jié)構(gòu)化數(shù)據(jù)。常見的分布式統(tǒng)有CephGFFSt對貨架材料也就是介質(zhì)的選擇,本質(zhì)就是選擇將數(shù)據(jù)在磁盤還是內(nèi)存(緩存上:磁盤量大,但IO開銷大,速度較低,常用于不經(jīng)常使用的數(shù)據(jù)。比如,電盤上內(nèi)存容量小,速度快,因此常用于需要經(jīng)常的數(shù)據(jù)。比如,系統(tǒng)中,對于分布式鍵值系統(tǒng),我會在第27篇文章中進行講解,并與你介紹和分析主流系統(tǒng)首先,我們看一下主流的分布式數(shù)據(jù)庫,主要包括MySQLSharding、SQLAzure、Spanner、OceanBase等,具體對比分析如下表所示。然后,我們看一下主流的分布式系統(tǒng),主要包括Ceph、GFS、HDFS和Swift等,具布式領(lǐng)域的術(shù)語就是數(shù)據(jù)生產(chǎn)者/消費者、數(shù)據(jù)索引和數(shù)據(jù)。其中,顧客包括產(chǎn)生數(shù)據(jù)的顧客和消費數(shù)據(jù)的顧客兩類;導(dǎo)購,就是數(shù)據(jù)索引引擎,包括數(shù)據(jù)時確定數(shù)據(jù)位置,以及獲取數(shù)據(jù)時確定數(shù)據(jù)所在位置;貨架,負(fù)責(zé)數(shù)據(jù),包括磁盤、緩存等介質(zhì)等。不同應(yīng)用場景中,顧客產(chǎn)生的數(shù)據(jù)類型、格式等通常都不一樣。根據(jù)數(shù)據(jù)的特征,這些不同的數(shù)據(jù)可以被劃分為三類:結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。與之相對應(yīng)的,貨就是據(jù),也三類布式庫、式鍵統(tǒng)和式文統(tǒng)。以方便你理解、與應(yīng)用。而對于分布式鍵值系統(tǒng),我將在第27篇文章中進行詳細介紹。最后,我再通過一張思維導(dǎo)圖來歸納一下今天的知識點吧相信通過今天的學(xué)習(xí),你對分布式數(shù)據(jù)有了更深入的理解,對其中的角色和關(guān)鍵技術(shù)也有個更清晰的認(rèn)識。加油,和我一起學(xué)習(xí)后面的章節(jié),一起揭開分布式數(shù)據(jù)系統(tǒng)的神秘面紗吧!傳統(tǒng)單機關(guān)系型數(shù)據(jù)庫與分布式數(shù)據(jù)庫的區(qū)別是什 科技所有 不 售賣。頁面已增加防盜追蹤,將依 上一 23|CAP理論:這頂帽子我不想下一 25|數(shù)據(jù)分布方式之哈希與一致性哈希:“掐指一算”與“掐指兩算”的言精選留言言展1展1剛好公司目前在拆分?jǐn)?shù)據(jù)庫,我從使用的角度聊一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論