新聞中心
互聯(lián)網(wǎng)分布式存儲(chǔ)入門
作者:互聯(lián)網(wǎng)技術(shù)面試 2018-02-24 13:50:59
存儲(chǔ)
存儲(chǔ)軟件
分布式 在Google、Amazon、騰訊等大型互聯(lián)網(wǎng)公司里,因?yàn)闃I(yè)務(wù)廣泛,有大量的用戶數(shù)據(jù)需要保存,因此分布式存儲(chǔ)系統(tǒng)往往成為該類公司的一個(gè)基礎(chǔ)設(shè)施。分布式存儲(chǔ)涉及到單機(jī)存儲(chǔ)引擎、分布式系統(tǒng)協(xié)議等眾多領(lǐng)域,該篇文章作為一個(gè)入門,帶領(lǐng)大家認(rèn)識(shí)分布式存儲(chǔ)系統(tǒng)的基本概念。

在Google、Amazon、騰訊等大型互聯(lián)網(wǎng)公司里,因?yàn)闃I(yè)務(wù)廣泛,有大量的用戶數(shù)據(jù)需要保存,因此分布式存儲(chǔ)系統(tǒng)往往成為該類公司的一個(gè)基礎(chǔ)設(shè)施。分布式存儲(chǔ)涉及到單機(jī)存儲(chǔ)引擎、分布式系統(tǒng)協(xié)議等眾多領(lǐng)域,該篇文章作為一個(gè)入門,帶領(lǐng)大家認(rèn)識(shí)分布式存儲(chǔ)系統(tǒng)的基本概念。
分布式存儲(chǔ)應(yīng)該滿足的基本條件
- 可擴(kuò)展
以微信朋友圈的圖片為例,隨著微信運(yùn)營(yíng)時(shí)間的增長(zhǎng),需要保存的朋友圈圖片必然是越來越多的,因此保存這些圖片的分布式存儲(chǔ)系統(tǒng)必須可擴(kuò)展。
- 低成本
對(duì)于大型互聯(lián)網(wǎng)公司來講,要保存的數(shù)據(jù)量非常大,因此成本是考量一個(gè)存儲(chǔ)系統(tǒng)是否可上線運(yùn)營(yíng)非常重要的一個(gè)指標(biāo)。
- 高性能
無論是對(duì)整個(gè)分布式存儲(chǔ)集群還是針對(duì)單機(jī)的存儲(chǔ)引擎,都需要高性能的保證,否則低成本就無從談起。
- 易用性
分布式存儲(chǔ)系統(tǒng)作為一個(gè)基礎(chǔ)設(shè)施,必須具備足夠的易用性,才能更好地服務(wù)于各個(gè)業(yè)務(wù)。比如Amazon的S3,接口形式統(tǒng)一,接入簡(jiǎn)單。
分布式存儲(chǔ)系統(tǒng)面臨的主要技術(shù)挑戰(zhàn)
- 數(shù)據(jù)分布
整個(gè)存儲(chǔ)系統(tǒng)是一個(gè)集群,如何保證數(shù)據(jù)均勻分布到多臺(tái)服務(wù)器?假設(shè)某一數(shù)據(jù)被拆分存儲(chǔ)到多臺(tái)服務(wù)器后,又該如何實(shí)現(xiàn)跨服務(wù)器讀寫?
- 一致性
出于數(shù)據(jù)可靠性的考慮,同一份數(shù)據(jù)必然是保存多份的,如何保證這多份數(shù)據(jù)的一致性?
- 容錯(cuò)
對(duì)于一個(gè)集群而言,機(jī)器出現(xiàn)故障是必然的。如何在出現(xiàn)故障時(shí)做到及時(shí)發(fā)現(xiàn),并且自動(dòng)把故障機(jī)器上的數(shù)據(jù)和服務(wù)遷移到非故障機(jī)器?
- 負(fù)載均衡
任何一個(gè)集群系統(tǒng)都存在負(fù)載均衡的策略問題,分布式存儲(chǔ)系統(tǒng)自然不例外。
- 事務(wù)與并發(fā)控制
如果要求該分布式存儲(chǔ)系統(tǒng)支持事務(wù)和并發(fā)控制功能,該如何實(shí)現(xiàn)?
- 易用性
易用性前面有提,不再贅述。
- 壓縮/解壓縮
怎樣根據(jù)數(shù)據(jù)的特點(diǎn)設(shè)計(jì)、選用合理的壓縮/解壓縮算法以平衡壓縮帶來的空間節(jié)省和消耗的CPU計(jì)算資源。
分布式存儲(chǔ)系統(tǒng)存儲(chǔ)的數(shù)據(jù)分類
互聯(lián)網(wǎng)業(yè)務(wù)涉及的數(shù)據(jù)一般可以分為三大類:
1.非結(jié)構(gòu)化數(shù)據(jù)
典型的如圖片、音視頻文件等。
2.結(jié)構(gòu)化數(shù)據(jù)
傳統(tǒng)的用關(guān)系型數(shù)據(jù)庫保存的二維表結(jié)構(gòu)數(shù)據(jù)。
3.半結(jié)構(gòu)化數(shù)據(jù)
介于結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)之間,典型的比如HTML文檔。
分布式存儲(chǔ)系統(tǒng)分類
基于上述數(shù)據(jù)類型存儲(chǔ)的實(shí)際需要,分布式存儲(chǔ)系統(tǒng)逐漸演化為以下四種類型:
1.分布式文件系統(tǒng)
一般用于存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)。比如HDFS、TFS(Taobao File System)、FastDFS等。
2.分布式鍵值系統(tǒng)
可以通俗地理解為hash表,如淘寶的Tair、Redis、memcached等,一般用于存儲(chǔ)半結(jié)構(gòu)化數(shù)據(jù)。
3.分布式表格系統(tǒng)
也用于存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),相比分布式鍵值系統(tǒng),不單單提供基于主鍵的讀寫,還支持對(duì)某個(gè)主鍵范圍進(jìn)行掃描,典型的比如Google的Big Table。
4.分布式數(shù)據(jù)庫
由單機(jī)數(shù)據(jù)庫發(fā)展而來,用于存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)。典型的如MySQL Sharding集群。
網(wǎng)頁題目:互聯(lián)網(wǎng)分布式存儲(chǔ)入門
URL鏈接:http://m.5511xx.com/article/cdohhsd.html


咨詢
建站咨詢
