第(di)04講(jiang) 架(jia)構(gou)核(he)心(xin)技(ji)術(shu)之分(fen)布式(shi)數(shu)據(ju)存儲 數據(ju)處(chu)理與(yu)存儲的支(zhi)撐(cheng)服(fu)務
- 可擴展性(xing)(Scalability):可通過水(shui)平添(tian)加(jia)節(jie)點(dian)來近乎線(xian)性(xing)地(di)提(ti)升存儲容量與(yu)處(chu)理能力。
- 高(gao)可用性(xing)與容錯(cuo)性(xing)(High Availability & Fault Tolerance):數據(ju)多(duo)副(fu)本(ben)存儲,單個(ge)或(huo)多個(ge)節(jie)點(dian)故障(zhang)不(bu)影(ying)響(xiang)整體服(fu)務。
- 高(gao)性(xing)能(Performance):數(shu)據(ju)分(fen)布存儲,讀寫負載可分散到多個(ge)節(jie)點(dian)並行處(chu)理,降低(di)單(dan)點(dian)壓力。
- 分(fen)布式(shi)文(wen)件(jian)系統:
- 角(jiao)色:提(ti)供跨(kua)多(duo)個(ge)存儲節(jie)點(dian)的統壹(yi)文件(jian)命名空(kong)間,管理超大文(wen)件(jian)的塊劃(hua)分與(yu)分布。
- 代表技(ji)術(shu):HDFS(Hadoop Distributed File System)、GFS(Google File System)。
- 支(zhi)撐(cheng)服(fu)務:為(wei)批(pi)處(chu)理框架(jia)(如(ru)MapReduce、Spark)和(he)海(hai)量日誌存儲提(ti)供底層(ceng)存儲支(zhi)持(chi),是(shi)大數據(ju)生(sheng)態的基石。
- 分布式(shi)數(shu)據(ju)庫(ku)與(yu)NoSQL:
- 角(jiao)色:提(ti)供結(jie)構(gou)化或(huo)半(ban)結(jie)構(gou)化數(shu)據(ju)的(de)存儲與訪(fang)問,通常(chang)犧(xi)牲部分ACID特(te)性(xing)以換取(qu)擴展性(xing)與性(xing)能。
- 鍵值存儲(Key-Value Store):如(ru)Redis、DynamoDB,支(zhi)撐(cheng)高(gao)速緩(huan)存、會話(hua)存儲和(he)簡單查(zha)詢(xun)場景(jing)。
- 文檔數(shu)據(ju)庫(ku)(Document Database):如(ru)MongoDB、Couchbase,支(zhi)撐(cheng)靈(ling)活(huo) schema 的內(nei)容管理(li)、用戶檔案(an)存儲。
- 列(lie)式(shi)數(shu)據(ju)庫(ku)(Wide-Column Store):如(ru)Cassandra、HBase,支(zhi)撐(cheng)海(hai)量數據(ju)的(de)隨機(ji)實(shi)時讀(du)寫,適合(he)時序數(shu)據(ju)、監控數據(ju)。
- 圖(tu)數(shu)據(ju)庫(ku)(Graph Database):如(ru)Neo4j,高(gao)效支(zhi)撐(cheng)社交關系(xi)、推薦(jian)系(xi)統等(deng)復(fu)雜關(guan)聯查詢(xun)。
- 分布式(shi)協(xie)調與元(yuan)數據(ju)服(fu)務:
- 角(jiao)色:維護(hu)集群(qun)狀(zhuang)態(tai)、配置信息(xi)、節(jie)點(dian)發現(xian)與領導選(xuan)舉,是(shi)分(fen)布式(shi)系(xi)統的(de)“神(shen)經(jing)系(xi)統”。
- 代(dai)表技(ji)術(shu):ZooKeeper、etcd。
- 支(zhi)撐(cheng)服(fu)務:為(wei)分布式(shi)數(shu)據(ju)庫(ku)、微服(fu)務架(jia)構(gou)提(ti)供強壹(yi)致的配置管理(li)、分布式(shi)鎖(suo)和(he)命名服(fu)務,保障(zhang)系(xi)統協(xie)調壹(yi)致運(yun)行。
- 分布式(shi)緩(huan)存服(fu)務:
- 角(jiao)色:將熱(re)點(dian)數據(ju)存儲在內(nei)存中(zhong),極(ji)大(da)降低(di)後(hou)端數(shu)據(ju)庫(ku)壓力,提(ti)升應用響(xiang)應速(su)度。
- 代(dai)表技(ji)術(shu):Redis(分布式(shi)模(mo)式(shi))、Memcached。
- 支(zhi)撐(cheng)服(fu)務:支(zhi)撐(cheng)高(gao)並發讀(du)場(chang)景(jing),如(ru)網(wang)頁(ye)緩(huan)存、商(shang)品信(xin)息(xi)查詢(xun)、秒(miao)殺系(xi)統。
- 數(shu)據(ju)復(fu)制與壹(yi)致性(xing)服(fu)務:
- 角(jiao)色:在多(duo)個(ge)節(jie)點(dian)間同(tong)步數(shu)據(ju)副(fu)本(ben),並在壹(yi)致性(xing)、可用性(xing)和(he)分(fen)區容錯(cuo)性(xing)之間取得(de)平衡(CAP定理)。
- 支(zhi)撐(cheng)服(fu)務:通過主(zhu)從復(fu)制、多主復(fu)制、分片(Sharding)等(deng)策(ce)略(lve),保障(zhang)數(shu)據(ju)可靠性(xing)與服(fu)務連(lian)續性(xing),是構(gou)建(jian)高(gao)可用存儲服(fu)務的(de)核(he)心(xin)。
- 數(shu)據(ju)壹(yi)致性(xing)模(mo)型:根據(ju)業(ye)務需求(qiu)選擇強(qiang)壹(yi)致性(xing)、最終壹(yi)致性(xing)還是(shi)會話(hua)壹(yi)致性(xing)。
- 分片(pian)策略(lve):如(ru)何(he)設計分片(pian)鍵(Shard Key)以實(shi)現數(shu)據(ju)均(jun)勻分(fen)布並避免(mian)熱(re)點(dian)。
- 故障(zhang)恢(hui)復(fu)與數(shu)據(ju)再平衡:節(jie)點(dian)增(zeng)刪(shan)或(huo)故障(zhang)時(shi),如(ru)何(he)自動(dong)遷移(yi)數據(ju)並恢復(fu)服(fu)務。
- 跨(kua)數(shu)據(ju)中(zhong)心(xin)部署:如(ru)何(he)實(shi)現異地(di)多活,滿(man)足(zu)容災與(yu)低(di)延遲(chi)訪(fang)問需(xu)求。