日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

分布式数据库选型——数据水平拆分方案

發(fā)布時(shí)間:2024/8/23 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式数据库选型——数据水平拆分方案 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

水平拆分的概念隨著分布式數(shù)據(jù)庫(kù)的推廣已為大部分人熟知。分庫(kù)分表、異構(gòu)索引、小表廣播、這些功能幾乎是產(chǎn)品功能需求標(biāo)配。然而有些客戶(hù)使用分布式數(shù)據(jù)庫(kù)后的體驗(yàn)不盡如意。
本文嘗試從數(shù)據(jù)的角度總結(jié)分布式數(shù)據(jù)的復(fù)制(replication)和分區(qū)(partition)技術(shù)原理和方案,其中分區(qū)也有稱(chēng)為分片(sharding),希望能引起讀者一些思考,在分布式數(shù)據(jù)庫(kù)選型中能注意這些細(xì)節(jié)的區(qū)別,選擇適合業(yè)務(wù)的數(shù)據(jù)水平拆分方案。

分布式數(shù)據(jù)庫(kù)架構(gòu)

分布式數(shù)據(jù)庫(kù)以集群形式存在,有多個(gè)節(jié)點(diǎn)。集群架構(gòu)有共享磁盤(pán)架構(gòu)(shared-disk)和無(wú)共享架構(gòu)(shared-nothing)。后者有時(shí)也稱(chēng)為水平擴(kuò)展(horizontal scale)或向外擴(kuò)展(scale out),本文主要總結(jié)無(wú)共享架構(gòu)方案。

無(wú)共享架構(gòu)的各個(gè)節(jié)點(diǎn)之間的通信都是軟件層面使用網(wǎng)絡(luò)實(shí)現(xiàn),不同產(chǎn)品在架構(gòu)不同導(dǎo)致這個(gè)細(xì)節(jié)也不同。有些架構(gòu)是計(jì)算與存儲(chǔ)分離。計(jì)算節(jié)點(diǎn)特點(diǎn)是無(wú)狀態(tài)(即數(shù)據(jù)不要求持久化),通過(guò)集群方式管理,可以水平擴(kuò)展;存儲(chǔ)節(jié)點(diǎn)有數(shù)據(jù),使用復(fù)制和分區(qū)技術(shù),節(jié)點(diǎn)間任務(wù)集中調(diào)度或者獨(dú)立交互。了解這個(gè)架構(gòu)細(xì)節(jié)都可用性分析會(huì)更加具體。具體分布式數(shù)據(jù)庫(kù)架構(gòu)有哪些請(qǐng)參考《一些關(guān)系數(shù)據(jù)庫(kù)的架構(gòu)總結(jié)》。

這里節(jié)點(diǎn)的實(shí)際體現(xiàn)形式可以是一個(gè)機(jī)器,也可以是機(jī)器上的一個(gè)實(shí)例。比如說(shuō)有些數(shù)據(jù)庫(kù)支持單機(jī)安裝多個(gè)實(shí)例,如MySQL。每個(gè)節(jié)點(diǎn)具備一定的資源和能力。資源指的是CPU、內(nèi)存和磁盤(pán),能力是提供數(shù)據(jù)讀寫(xiě)和存儲(chǔ)能力。分布式數(shù)據(jù)庫(kù)需要把多個(gè)節(jié)點(diǎn)的能力聚集到一起集中管理,只是不同分布式數(shù)據(jù)庫(kù)產(chǎn)品對(duì)資源的管理能力各有特點(diǎn)。

在分布式數(shù)據(jù)庫(kù)里,數(shù)據(jù)隨處可見(jiàn),這是最容易讓人混淆的地方。因?yàn)閿?shù)據(jù)經(jīng)過(guò)復(fù)制和分區(qū)后會(huì)有兩種存在形式:副本(replica)和分區(qū)(partition)。

數(shù)據(jù)的復(fù)制(replication)

復(fù)制(replication)指在幾個(gè)不同的節(jié)點(diǎn)上保存數(shù)據(jù)的相同副本(replica)。復(fù)制提供了冗余的能力。其作用一是提供高可用能力:如果一個(gè)節(jié)點(diǎn)不可用,剩余的節(jié)點(diǎn)可以快速提供數(shù)據(jù)服務(wù)。作用二是提供讀寫(xiě)分離能力。常見(jiàn)的有兩副本和三副本架構(gòu)。

多個(gè)副本內(nèi)容相同,角色會(huì)有區(qū)分。常見(jiàn)的是一個(gè)副本是Leader角色(有的也稱(chēng)主副本),默認(rèn)提供讀寫(xiě)服務(wù);其他副本是Follower角色(有的也稱(chēng)備副本),默認(rèn)不提供服務(wù)。這種架構(gòu)也稱(chēng)為基于單Leader的(Single Leader-based)。還有其他架構(gòu)是多Leader的,每個(gè)Leader都有數(shù)據(jù)要復(fù)制到其他Leader或Follower,這種架構(gòu)會(huì)有個(gè)明顯的問(wèn)題就是數(shù)據(jù)沖突處理。如果產(chǎn)品層面不處理,用戶(hù)直接使用風(fēng)險(xiǎn)會(huì)很高。

后面討論的是前者:基于單Leader副本架構(gòu)。

多副本之間數(shù)據(jù)同步不是依賴(lài)業(yè)務(wù)多寫(xiě),而是采用副本間復(fù)制事務(wù)日志(Redo)技術(shù)。復(fù)制的方式有同步復(fù)制和異步復(fù)制。使用同步復(fù)制方式,備副本要收到Redo并落盤(pán)主副本才能提交,也叫強(qiáng)同步;使用異步復(fù)制方式,Follower副本相對(duì)Leader副本內(nèi)容會(huì)有延時(shí),具體延時(shí)多少取決于Leader副本上事務(wù)量、網(wǎng)絡(luò)傳輸速度、Follower副本所在節(jié)點(diǎn)的負(fù)載和能力。強(qiáng)同步的缺點(diǎn)時(shí)主副本寫(xiě)性能會(huì)下降,同時(shí)如果備副本不可用主副本也不能提供服務(wù)(變相的解決方案是復(fù)制方式降級(jí)為異步復(fù)制)。

傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)還有一種用法一主兩備架構(gòu),使用同步復(fù)制,只要任何一個(gè)備副本收到Redo,主副本的事務(wù)就可以提交。這個(gè)方案優(yōu)點(diǎn)是保障了數(shù)據(jù)在多個(gè)副本中存在,高可用時(shí)有候選副本,也不用擔(dān)心掛掉一個(gè)備副本會(huì)影響主副本。它的缺點(diǎn)是不能自動(dòng)知道哪個(gè)候選副本擁有主副本最新最全的數(shù)據(jù),也不強(qiáng)制要求兩個(gè)備副本都要擁有全部數(shù)據(jù)。

還有一類(lèi)三副本架構(gòu)在復(fù)制時(shí)使用的是Paxos協(xié)議,三副本會(huì)就Redo落盤(pán)事件進(jìn)行投票,有兩個(gè)副本成功了Leader副本的事務(wù)即可提交。這個(gè)表面上跟上面?zhèn)鹘y(tǒng)一主兩備的三副本效果一樣,實(shí)際上還是有區(qū)別的。區(qū)別一是使用Paxos協(xié)議時(shí),如果Leader副本自身投票慢了,兩個(gè)Follower副本投票成功,Leader副本的事務(wù)也是能提交的;區(qū)別二是第三個(gè)副本最終也必須寫(xiě)Redo成功,否則其狀態(tài)就是異常,產(chǎn)品自身可以發(fā)現(xiàn)并自動(dòng)修復(fù)(如重新創(chuàng)建一個(gè)副本);區(qū)別三是使用Paxos協(xié)議時(shí),在Leader副本不可用時(shí)還可以自動(dòng)選出新的Leader副本并且擁有老Leader副本的最新數(shù)據(jù)。這里其實(shí)說(shuō)的是高可用機(jī)制。同樣,這里對(duì)用戶(hù)而言也不知道哪個(gè)Follower副本擁有最新最全的數(shù)據(jù),如果訪問(wèn)Follower副本(讀寫(xiě)分離),也可能發(fā)現(xiàn)數(shù)據(jù)有延時(shí)。

大部分?jǐn)?shù)據(jù)庫(kù)做副本復(fù)制使用的是Redo,也稱(chēng)為物理同步。在應(yīng)用Redo的時(shí)候直接是數(shù)據(jù)塊變更。使用物理同步機(jī)制的備副本是不提供寫(xiě)服務(wù),不能修改。還有一類(lèi)復(fù)制使用的是Binlog,也稱(chēng)為邏輯同步。Binlog里只包含已提交的事務(wù),并且在應(yīng)用的時(shí)候是通過(guò)執(zhí)行SQL。使用邏輯同步的備副本通常也可能是主副本,可以修改(如MySQL的雙向復(fù)制架構(gòu)Master-Master)。如果目標(biāo)端數(shù)據(jù)不對(duì),應(yīng)用SQL會(huì)失敗,這個(gè)復(fù)制就會(huì)中斷需要人介入處理。這也進(jìn)一步加深了主備副本不一致的概率。

關(guān)于副本角色的粒度,有多種實(shí)現(xiàn)方案。

傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)主備架構(gòu),主副本或備副本的粒度就是實(shí)例。對(duì)于主實(shí)例(Primary)而言,里面所有數(shù)據(jù)庫(kù)(或SCHEMA)的所有表的角色都是主;備實(shí)例(Standby)里數(shù)據(jù)則都是備副本。如果發(fā)生高可用切換,業(yè)務(wù)會(huì)中斷幾十秒或幾分鐘然后恢復(fù)(需要人工處理或自動(dòng)化腳本處理)。

還有一種粒度是到表。即一個(gè)節(jié)點(diǎn)內(nèi)有些表是Leader副本,有些表是Follower副本,這樣這個(gè)節(jié)點(diǎn)就不能簡(jiǎn)單的說(shuō)是主節(jié)點(diǎn)(實(shí)例)或備節(jié)點(diǎn)(實(shí)例)。這個(gè)副本角色細(xì)節(jié)業(yè)務(wù)也是可以獲取的,如果發(fā)生高可用切換,業(yè)務(wù)會(huì)中斷十幾秒然后恢復(fù)。

還有一種粒度是存儲(chǔ)級(jí)別的定長(zhǎng)塊。即一個(gè)節(jié)點(diǎn)的存儲(chǔ)里,部分?jǐn)?shù)據(jù)塊是Leader副本,部分?jǐn)?shù)據(jù)塊是Follower副本。這種對(duì)業(yè)務(wù)就完全透明,業(yè)務(wù)基本不感知高可用切換。

數(shù)據(jù)的分區(qū)(partition)

上面總結(jié)的是數(shù)據(jù)的復(fù)制(冗余,多副本),對(duì)于非常大的數(shù)據(jù)集(表)或者非常高的訪問(wèn)量(QPS),僅僅靠復(fù)制是不夠的,還需要對(duì)數(shù)據(jù)進(jìn)行分區(qū)(partition),也稱(chēng)為分片(sharding)。

分區(qū)粒度

首先這里的分區(qū)(partition)是一種抽象概念,在不同數(shù)據(jù)庫(kù)產(chǎn)品里這個(gè)體現(xiàn)是不一樣的。如在MongoDB, Elasticsearch中體現(xiàn)為分片(shard),在HBase中體現(xiàn)為區(qū)域塊(Region),Bigtable中體現(xiàn)為表塊(tablet),ORACLE中體現(xiàn)為分區(qū)(partition),Couchbase中體現(xiàn)為虛擬桶(vBucket)。可見(jiàn)不同的數(shù)據(jù)庫(kù)產(chǎn)品數(shù)據(jù)分區(qū)的粒度不同。在分布式關(guān)系數(shù)據(jù)庫(kù)中間件中,分片的粒度是分表(物理表);在真正的分布式關(guān)系數(shù)據(jù)庫(kù)里,分片的粒度有分區(qū)(partition,同ORACLE)或者區(qū)域塊(Region)。

分區(qū)粒度對(duì)業(yè)務(wù)研發(fā)的使用體驗(yàn)影響很大。

比如說(shuō)中間件常用分庫(kù)分表方案,使用時(shí)對(duì)開(kāi)發(fā)和運(yùn)維會(huì)有一些要求。如建很多同構(gòu)的表并后期維護(hù)、要求SQL帶上拆分鍵,還有一些功能限制(如跨庫(kù)JOIN問(wèn)題)、底層存儲(chǔ)節(jié)點(diǎn)用的數(shù)據(jù)庫(kù)自身高可用和多副本的數(shù)據(jù)一致問(wèn)題等等。不同的中間件產(chǎn)品能力上也有區(qū)別,互聯(lián)網(wǎng)大廠的產(chǎn)品由于內(nèi)部場(chǎng)景培育很久,做的相對(duì)成熟一些。

體驗(yàn)最好的分區(qū)粒度就是存儲(chǔ)級(jí)別的Region,業(yè)務(wù)研發(fā)完全不用關(guān)心分片細(xì)節(jié),也無(wú)法干預(yù)分片細(xì)節(jié)。當(dāng)有些場(chǎng)景追求性能需要干預(yù)數(shù)據(jù)分布特點(diǎn)時(shí)就不好處理。

介入這兩種策略之間的就是分區(qū)。物理上業(yè)務(wù)只要?jiǎng)?chuàng)建一個(gè)分區(qū)表,根據(jù)業(yè)務(wù)特點(diǎn)指定分區(qū)策略(包含分區(qū)列、拆分算法、分區(qū)數(shù)目等)。

數(shù)據(jù)復(fù)制是為了冗余和高可用,數(shù)據(jù)分區(qū)主要是為了可擴(kuò)展性。不管使用哪種分區(qū)方案,業(yè)務(wù)的每條數(shù)據(jù)(記錄)屬于且僅屬于一個(gè)分區(qū)(或分片sharding),同一個(gè)分區(qū)(分片)只會(huì)存在于一個(gè)節(jié)點(diǎn)。前面說(shuō)了每個(gè)節(jié)點(diǎn)代表了一定的資源和能力。當(dāng)復(fù)制和分區(qū)(分片)一起使用的時(shí)候,注意區(qū)分你看到的數(shù)據(jù)。

分區(qū)策略

分區(qū)的目標(biāo)是將大量數(shù)據(jù)和訪問(wèn)請(qǐng)求均勻分布在多個(gè)節(jié)點(diǎn)上。如果每個(gè)節(jié)點(diǎn)均勻承擔(dān)數(shù)據(jù)和請(qǐng)求,那么理論上10個(gè)節(jié)點(diǎn)就應(yīng)該能承擔(dān)10倍于單節(jié)點(diǎn)的數(shù)據(jù)量和訪問(wèn)量。這個(gè)理論是忽略了復(fù)制產(chǎn)生的Follower副本的存在。Follower副本的空間和內(nèi)存是不可能跟其他Leader副本共享的,但是計(jì)算能力(CPU)是可以的。當(dāng)所有節(jié)點(diǎn)都提供服務(wù)的時(shí)候(多活),是計(jì)算資源最大利用。

然而如果分區(qū)是不均勻的,一些分區(qū)的數(shù)據(jù)量或者請(qǐng)求量會(huì)相對(duì)比較高,出現(xiàn)數(shù)據(jù)偏斜(skew),這個(gè)可能導(dǎo)致節(jié)點(diǎn)資源利用率和負(fù)載也不均衡。偏斜集中的數(shù)據(jù)我們又稱(chēng)為熱點(diǎn)數(shù)據(jù)。避免熱點(diǎn)數(shù)據(jù)的直接方法就是數(shù)據(jù)存儲(chǔ)時(shí)隨機(jī)分配(沒(méi)有規(guī)則)給節(jié)點(diǎn),缺點(diǎn)是讀取的時(shí)候不知道去哪個(gè)分區(qū)找該記錄,只有掃描所有分區(qū)了,所以這個(gè)方法意義不大。實(shí)際常用的分區(qū)策略都是有一定的規(guī)則。

這個(gè)規(guī)則可以是業(yè)務(wù)規(guī)則,也可以不是。

業(yè)務(wù)規(guī)則的分區(qū)首先是選取一個(gè)或一組列作為分區(qū)鍵,然后選取拆分方法。比如說(shuō)根據(jù)鍵的范圍(Range)分區(qū),分區(qū)數(shù)量和邊界時(shí)確定的(后期還可以新增分區(qū))。好處時(shí)針對(duì)分區(qū)鍵的范圍掃描性能會(huì)比較好。分布式數(shù)據(jù)庫(kù)中間件的分庫(kù)分表、分區(qū)表的分區(qū)都支持RANGE 拆分函數(shù)。各個(gè)產(chǎn)品拆分細(xì)節(jié)上面會(huì)有一些創(chuàng)新。Range分區(qū)的缺點(diǎn)是某些特定的訪問(wèn)模式會(huì)導(dǎo)致熱點(diǎn)。比如說(shuō)根據(jù)時(shí)間列做RANGE分區(qū),業(yè)務(wù)寫(xiě)入和讀寫(xiě)數(shù)據(jù)集中在最近的時(shí)間,就可能導(dǎo)致各個(gè)分區(qū)負(fù)載不均衡。這只是一個(gè)缺點(diǎn),業(yè)務(wù)層面還要考慮這樣做的好處。比如說(shuō)刪除歷史分區(qū)比較快。

還有種拆分方法是散列(HASH)分區(qū),分區(qū)數(shù)量和邊界是確定的(后期可以做分區(qū)分裂)。這時(shí)各個(gè)數(shù)據(jù)的分布是否均衡就取決于各個(gè)產(chǎn)品實(shí)現(xiàn)機(jī)制。大部分做法是使用一個(gè)散列(HASH)函數(shù)對(duì)Key計(jì)算一個(gè)值,然后針?lè)侄未鎯?chǔ)。

有的產(chǎn)品會(huì)使用這個(gè)HASH值對(duì)分區(qū)數(shù)取模,這個(gè)方法可能引起分區(qū)數(shù)據(jù)分布不均勻(若MySQL的Key分區(qū))。此外如果要調(diào)整分區(qū)數(shù),則需要移動(dòng)所有數(shù)據(jù)。ORACLE的HASH分區(qū)時(shí)會(huì)先選取最接近分區(qū)數(shù)的一個(gè)2的冪值,對(duì)于分區(qū)數(shù)大于這個(gè)值的分區(qū),會(huì)從前面分區(qū)里調(diào)過(guò)來(lái)。所以O(shè)RACLE 建議HASH分區(qū)數(shù)為2的冪。M有SQL建議Key分區(qū)數(shù)為奇數(shù)時(shí)數(shù)據(jù)分布最均勻。

此外在現(xiàn)有分區(qū)下還可以再做一次分區(qū),分區(qū)鍵和分區(qū)方法都可以不一樣。通常稱(chēng)為兩級(jí)分區(qū)。比如說(shuō)分庫(kù)分表時(shí),分庫(kù)和分表策略不一樣就是兩級(jí)分區(qū);分區(qū)表也支持兩級(jí)分區(qū)。

有業(yè)務(wù)規(guī)則的分區(qū)方案的特點(diǎn)就是使用上。SQL如果要性能好建議帶上分區(qū)鍵,這樣分布式數(shù)據(jù)庫(kù)才可以直接定位到所訪問(wèn)數(shù)據(jù)所在的分片;否則,數(shù)據(jù)庫(kù)就要掃描所有分區(qū)去查詢(xún)數(shù)據(jù)。通常分區(qū)鍵只能選取一個(gè)或一組業(yè)務(wù)字段,代表的是一個(gè)業(yè)務(wù)維度,那么另外一種業(yè)務(wù)維度的SQL請(qǐng)求性能就會(huì)不好。個(gè)別分布式數(shù)據(jù)庫(kù)產(chǎn)品在HASH 方法上支持兩種維度的分區(qū)列,其前提是在業(yè)務(wù)構(gòu)造數(shù)據(jù)時(shí)讓這兩個(gè)列有著內(nèi)部一致的分區(qū)邏輯。

詳情可以參考《說(shuō)說(shuō)分庫(kù)分表的一個(gè)最佳實(shí)踐》。

另外一種分區(qū)策略就是無(wú)業(yè)務(wù)規(guī)則的,在存儲(chǔ)級(jí)別按塊的大小切分為多個(gè)定長(zhǎng)塊(Region)。這個(gè)分區(qū)對(duì)業(yè)務(wù)而言就是透明的,所以使用體驗(yàn)上會(huì)相對(duì)好一些。

不過(guò),分布式數(shù)據(jù)庫(kù)里的數(shù)據(jù)分區(qū)除了存儲(chǔ)數(shù)據(jù)還要提供讀寫(xiě)服務(wù)。業(yè)務(wù)讀寫(xiě)數(shù)據(jù)的SQL本身是帶業(yè)務(wù)邏輯的,如果一次SQL請(qǐng)求訪問(wèn)的數(shù)據(jù)分散到多個(gè)分區(qū),而這些分區(qū)又散落在不同的節(jié)點(diǎn)上,不可避免的會(huì)發(fā)生跨節(jié)點(diǎn)的請(qǐng)求。如果是多表連接,這種情形更容易出現(xiàn)。如果這個(gè)業(yè)務(wù)請(qǐng)求有事務(wù),那這就產(chǎn)生了分布式事務(wù)。分布式事務(wù)解決方案有兩種,強(qiáng)一致的兩階段提交(XA)方案和最終一致的TCC方案。詳情請(qǐng)參考《說(shuō)說(shuō)數(shù)據(jù)庫(kù)事務(wù)和開(kāi)發(fā)(下)—— 分布式事務(wù)》。

這里主要提示跨節(jié)點(diǎn)的請(qǐng)求帶來(lái)的性能衰減。當(dāng)然,硬件方面萬(wàn)兆網(wǎng)卡加RDMA技術(shù)下網(wǎng)絡(luò)延時(shí)已經(jīng)縮小很多,但是當(dāng)分布式數(shù)據(jù)庫(kù)的請(qǐng)求量(QPS)非常高時(shí),或者分布式數(shù)據(jù)庫(kù)是多機(jī)房部署(比如說(shuō)兩地三中心)時(shí),跨機(jī)房的網(wǎng)絡(luò)延時(shí)還是不可忽視,跨節(jié)點(diǎn)的請(qǐng)求帶來(lái)的性能衰減也會(huì)很明顯。所以有業(yè)務(wù)規(guī)則的分區(qū)策略可以提供策略給業(yè)務(wù)控制自己的數(shù)據(jù)分區(qū)分布特點(diǎn),非常適合做異地多活和單元化類(lèi)業(yè)務(wù)。此外還有個(gè)常用的規(guī)避跨節(jié)點(diǎn)請(qǐng)求讀的方法就是小表廣播,即將個(gè)別沒(méi)有分區(qū)的表的數(shù)據(jù)復(fù)制到其他分區(qū)所在的節(jié)點(diǎn),這樣相關(guān)業(yè)務(wù)數(shù)據(jù)分區(qū)的JOIN就是在本地節(jié)點(diǎn)內(nèi)部完成。這里就看復(fù)制使用的是物理同步還是邏輯同步,以及同步的延時(shí)是否滿(mǎn)足業(yè)務(wù)需求。

分區(qū)數(shù)量

關(guān)于分區(qū)數(shù)量也需要評(píng)估。如果是無(wú)規(guī)則的分區(qū)策略,由于每個(gè)分區(qū)(分片)是定長(zhǎng)塊,那么分區(qū)數(shù)量就由總數(shù)據(jù)大小除以定長(zhǎng)塊大小,對(duì)業(yè)務(wù)也是透明的。這里總結(jié)的是有業(yè)務(wù)規(guī)則的分區(qū)的數(shù)量。

使用分區(qū)的目的是為了擴(kuò)展性,具體就是能將不同分區(qū)分散多多個(gè)節(jié)點(diǎn)上,發(fā)揮多個(gè)節(jié)點(diǎn)的資源和能力。所以分區(qū)數(shù)一定要大于可用的資源節(jié)點(diǎn)數(shù),為了考慮到將來(lái)分布式數(shù)據(jù)庫(kù)可能會(huì)擴(kuò)容,分區(qū)數(shù)應(yīng)該是數(shù)倍于當(dāng)前規(guī)劃的節(jié)點(diǎn)數(shù)。這是一個(gè)總的指導(dǎo)思想。由于不同的分布式數(shù)據(jù)庫(kù)其節(jié)點(diǎn)的表示方法不一樣,實(shí)施的時(shí)候會(huì)略有不同。

比如說(shuō)在分布式數(shù)據(jù)庫(kù)中間件架構(gòu)里,數(shù)據(jù)存儲(chǔ)的節(jié)點(diǎn)是實(shí)例,數(shù)據(jù)分區(qū)的粒度是分表(物理表),中間還有一層分庫(kù)的維度。分布式數(shù)據(jù)庫(kù)實(shí)例:總物理實(shí)例數(shù):總物理分庫(kù)數(shù):總物理分表數(shù)=1:M:N:X 。X是分區(qū)的數(shù)量,N 是總分庫(kù)數(shù)。X 是固定的,如果要調(diào)整分區(qū)數(shù),成本非常高,所以一般都是提前規(guī)劃好。N 是總分庫(kù)數(shù),是2的冪。 M 是實(shí)例的數(shù)量,也建議是2的冪,決定了最大能用多少節(jié)點(diǎn)的資源。 N/M 的結(jié)果決定了未來(lái)能擴(kuò)容的倍數(shù)。分布式數(shù)據(jù)庫(kù)中間件由于數(shù)據(jù)分區(qū)落在具體的節(jié)點(diǎn)后就不能自由移動(dòng),其擴(kuò)容方式多是對(duì)每個(gè)實(shí)例一分為二,最好的途徑就是利用數(shù)據(jù)庫(kù)(MySQL)自身的主從復(fù)制搭建新的備實(shí)例擴(kuò)容節(jié)點(diǎn)數(shù)。

此外分區(qū)數(shù)還要考慮到單個(gè)分區(qū)的容量和請(qǐng)求量是否滿(mǎn)足需求。即分區(qū)是否到位。這個(gè)也是需要業(yè)務(wù)評(píng)估的。在使用分區(qū)表的分區(qū)方案的分布式數(shù)據(jù)庫(kù)里,分區(qū)數(shù)也是結(jié)合上面兩點(diǎn)考慮的。

當(dāng)然分區(qū)數(shù)太大了,可能會(huì)增加分布數(shù)據(jù)庫(kù)內(nèi)部管理成本。分區(qū)數(shù)量跟分區(qū)粒度恰好是相反關(guān)系,二者都需要取一個(gè)合適的值。

分區(qū)數(shù)量一旦確定后,調(diào)整的成本非常高,通常會(huì)引起數(shù)據(jù)重分布。有些產(chǎn)品可以針對(duì)特定類(lèi)型的分區(qū)做分區(qū)分裂。如RANGE分區(qū)可以分裂為兩個(gè)RANGE, HASH分區(qū)也可以一分為二。只要這個(gè)分區(qū)分裂的邏輯是數(shù)據(jù)庫(kù)內(nèi)部邏輯實(shí)現(xiàn),保證數(shù)據(jù)不丟,且對(duì)業(yè)務(wù)透明的,那么風(fēng)險(xiǎn)就很低值得考慮。

分區(qū)負(fù)載均衡

隨著時(shí)間的推移,數(shù)據(jù)庫(kù)一直在發(fā)生各種變化。如QPS增加,數(shù)據(jù)集更大,或者新增/替換機(jī)器等。無(wú)論哪種都需要將部分?jǐn)?shù)據(jù)分區(qū)和相應(yīng)的請(qǐng)求從一個(gè)節(jié)點(diǎn)移動(dòng)到另外一個(gè)節(jié)點(diǎn),這個(gè)過(guò)程稱(chēng)為分區(qū)的再平衡(rebalance)。業(yè)務(wù)對(duì)再平衡的要求就是平衡過(guò)程中對(duì)業(yè)務(wù)當(dāng)前讀寫(xiě)影響要可控,數(shù)據(jù)讀寫(xiě)服務(wù)不能中斷。還有一點(diǎn)就是為了再平衡應(yīng)盡可能少的遷移數(shù)據(jù)。

前面兩個(gè)要求都不難滿(mǎn)足,最后一個(gè)要求就考驗(yàn)各個(gè)分區(qū)方案的靈活度了。當(dāng)分區(qū)粒度是存儲(chǔ)級(jí)別的Region時(shí),分區(qū)遷移的粒度就是Region,這個(gè)對(duì)業(yè)務(wù)也是透明的;分區(qū)粒度是分區(qū)時(shí),這個(gè)取決于各個(gè)產(chǎn)品對(duì)節(jié)點(diǎn)資源管理的設(shè)計(jì)。比如說(shuō)有的設(shè)計(jì)可以做到只需要遷移分區(qū)就可以調(diào)整各個(gè)節(jié)點(diǎn)的資源利用率和負(fù)載;如果分區(qū)方案是分庫(kù)分表,此時(shí)分區(qū)粒度是分表。但是數(shù)據(jù)遷移的單位通常還是實(shí)例,利用數(shù)據(jù)庫(kù)原生復(fù)制能力搭建新的級(jí)聯(lián)備實(shí)例,然后新老實(shí)例分別刪除一半分庫(kù)數(shù)據(jù)。這里就遷移了不必要的很多數(shù)據(jù)分區(qū)。

分區(qū)訪問(wèn)路由

現(xiàn)在數(shù)據(jù)分區(qū)方案已經(jīng)確定,業(yè)務(wù)數(shù)據(jù)分布在多個(gè)節(jié)點(diǎn)上。業(yè)務(wù)應(yīng)用訪問(wèn)數(shù)據(jù)庫(kù)如何連接呢?再分區(qū)負(fù)載均衡發(fā)生后部分分區(qū)節(jié)點(diǎn)發(fā)生變化,業(yè)務(wù)應(yīng)用是否要修改連接?這個(gè)就是分區(qū)訪問(wèn)路由問(wèn)題,是分布式數(shù)據(jù)庫(kù)的基本能力。理論上分區(qū)訪問(wèn)路由有三種方案。一是每個(gè)節(jié)點(diǎn)都可以進(jìn)行路由轉(zhuǎn)發(fā)(如果請(qǐng)求的數(shù)據(jù)不在該節(jié)點(diǎn)上,該節(jié)點(diǎn)可以轉(zhuǎn)發(fā)應(yīng)用請(qǐng)求到正確的節(jié)點(diǎn)上);二是設(shè)置一個(gè)中心模塊負(fù)責(zé)接受請(qǐng)求并轉(zhuǎn)發(fā)到正確的節(jié)點(diǎn)上;三是應(yīng)用自己獲取分布式數(shù)據(jù)庫(kù)所有分區(qū)的節(jié)點(diǎn)信息,直接連接對(duì)應(yīng)的節(jié)點(diǎn),不需要其他組件提供路由功能。

大部分分布式數(shù)據(jù)庫(kù)架構(gòu),選擇了第二種方案,有一個(gè)負(fù)責(zé)分區(qū)路由訪問(wèn)的模塊。有些產(chǎn)品同時(shí)支持這三種方案。 針對(duì)分區(qū)路由問(wèn)題情況還可能更復(fù)雜。如一個(gè)事務(wù)有多條SQL時(shí)該路由到哪個(gè)節(jié)點(diǎn)。此外就是如果負(fù)責(zé)路由的節(jié)點(diǎn)故障,或者分區(qū)所在節(jié)點(diǎn)故障,這個(gè)路由不可用或者失效時(shí)會(huì)如何恢復(fù)路由服務(wù)。

SQL線性擴(kuò)展能力

當(dāng)數(shù)據(jù)分區(qū)方案確定、分區(qū)路由問(wèn)題也解決了后,運(yùn)維和業(yè)務(wù)架構(gòu)為業(yè)務(wù)的搭建了一個(gè)好的分布式數(shù)據(jù)庫(kù)環(huán)境。很多業(yè)務(wù)誤以為用上分布式數(shù)據(jù)庫(kù)后,就一定會(huì)很好,或者擴(kuò)容后業(yè)務(wù)的性能也能相應(yīng)的提升。實(shí)際使用經(jīng)驗(yàn)并不一定如此。還是前面那句話使用分區(qū)方案主要是獲得擴(kuò)展性,其關(guān)鍵就是分區(qū)分布在更多的節(jié)點(diǎn)上,能利用上更多節(jié)點(diǎn)的能力。

但這個(gè)并不是指讓單個(gè)SQL利用更多節(jié)點(diǎn)的能力。舉個(gè)例子在OLAP業(yè)務(wù)里,一條SQL 如果能讓很多節(jié)點(diǎn)同時(shí)提供服務(wù),其性能當(dāng)然是最好的。不過(guò)這樣的SQL的并發(fā)不能太多,否則很容易讓所有節(jié)點(diǎn)都很忙。即使分布式數(shù)據(jù)庫(kù)擴(kuò)容了節(jié)點(diǎn)將分區(qū)進(jìn)一步打散,由于業(yè)務(wù)的訪問(wèn)壓力和數(shù)據(jù)量也會(huì)增加很多,很可能依然是每個(gè)SQL同時(shí)讓所有節(jié)點(diǎn)為其服務(wù),這個(gè)SQL的吞吐量并不會(huì)隨著這個(gè)節(jié)點(diǎn)數(shù)量的擴(kuò)容而得到相應(yīng)的提升。

分布式數(shù)據(jù)庫(kù)的優(yōu)勢(shì)在于對(duì)于空間問(wèn)題和請(qǐng)求訪問(wèn)問(wèn)題分而治之。針對(duì)每個(gè)分區(qū)的訪問(wèn),由該分區(qū)所在的節(jié)點(diǎn)響應(yīng)即可。即使該SQL 并發(fā)很高,由于訪問(wèn)的是不同的分區(qū),分別由不同的節(jié)點(diǎn)提供服務(wù)。每個(gè)節(jié)點(diǎn)自身也有一定能力滿(mǎn)足一定的QPS,所有節(jié)點(diǎn)集中在一起就能提供更大的QPS。這個(gè)時(shí)候如果擴(kuò)容節(jié)點(diǎn)數(shù)量,該SQL總的QPS也能獲得相應(yīng)的提升。這是分布式數(shù)據(jù)庫(kù)里最好的情形。

第二個(gè)例子根據(jù)PK 訪問(wèn)表,并且PK還是主鍵等。通常我們都建議分庫(kù)分表或者分區(qū)時(shí),業(yè)務(wù)SQL盡量帶上拆分鍵就是這個(gè)道理。但是如果業(yè)務(wù)場(chǎng)景確實(shí)無(wú)法帶上拆分鍵,除了強(qiáng)制掃描所有分區(qū)外,還有個(gè)解決方案就是全局索引表。全局索引是獨(dú)立于數(shù)據(jù)分區(qū)存儲(chǔ)的,全局索引可以避免掃描不必要的分區(qū),負(fù)面作用就是業(yè)務(wù)分區(qū)的寫(xiě)操作很可能帶來(lái)分布式事務(wù)。

以上兩個(gè)例子就是分布式數(shù)據(jù)庫(kù)里SQL的先行擴(kuò)展能力的兩個(gè)極端。前一個(gè)場(chǎng)景SQL沒(méi)有擴(kuò)展能力,后一個(gè)SQL的擴(kuò)展能力幾乎是百分百。大部分SQL的先行擴(kuò)展能力就界于兩者之間。比如說(shuō)SQL里是分區(qū)列的IN條件。這個(gè)SQL的先行擴(kuò)展能力取決于這個(gè)INLIST的數(shù)據(jù)特點(diǎn)。如果恰好每次都是命中同一個(gè)分區(qū),那跟分區(qū)列等值訪問(wèn)效果一樣好;如果INLIST的數(shù)據(jù)命中絕大部分分區(qū),那就接近OLAP 場(chǎng)景的那個(gè)SQL。有些業(yè)務(wù)增長(zhǎng)后,這個(gè)INLIST的長(zhǎng)度基本不變。比如說(shuō)人口業(yè)務(wù),雖然總?cè)丝诘募ぴ?#xff0c;但每個(gè)家庭的子女?dāng)?shù)量大部分在1-2。這是一類(lèi)特點(diǎn),訪問(wèn)這個(gè)子女?dāng)?shù)據(jù)的SQL的先行擴(kuò)展能力會(huì)很好。另外一個(gè)例子就是買(mǎi)家訂單查詢(xún)業(yè)務(wù)。10年前每個(gè)買(mǎi)家一段時(shí)間的訂單數(shù)量可能就幾個(gè),如今每個(gè)買(mǎi)家一段時(shí)間的平均訂單數(shù)量可能在幾十或幾百。

比INLIST 更復(fù)雜的邏輯就是表連接。 表連接時(shí)的條件是否是分區(qū)列,每個(gè)具體的連接值會(huì)相應(yīng)命中多少個(gè)分區(qū),是否有分布式執(zhí)行計(jì)劃等等。都會(huì)影響這個(gè)SQL的線性擴(kuò)展能力。

對(duì)于無(wú)業(yè)務(wù)規(guī)則的分區(qū)方案,雖然分區(qū)對(duì)業(yè)務(wù)是透明的,但不可否認(rèn)的是數(shù)據(jù)分區(qū)是分布在不同的節(jié)點(diǎn)上,只要業(yè)務(wù)讀寫(xiě)這些數(shù)據(jù),數(shù)據(jù)分布特點(diǎn)就會(huì)影響到SQL的性能。對(duì)于業(yè)務(wù)而言,該如何選擇?如果業(yè)務(wù)通過(guò)分區(qū)策略控制數(shù)據(jù)分區(qū)分布特點(diǎn),能夠獲得更高的性能,業(yè)務(wù)是否愿意選擇會(huì)影響分布式數(shù)據(jù)庫(kù)的選型。而不同分區(qū)方案在運(yùn)維方面的特點(diǎn)也不一樣,是影響選型的另外一個(gè)因素,這里就不細(xì)說(shuō)。

螞蟻的分布式數(shù)據(jù)庫(kù)最佳實(shí)踐

螞蟻金服的業(yè)務(wù)規(guī)模非常大,業(yè)務(wù)模塊劃分非常細(xì)。以網(wǎng)商銀行非常核心的交易、賬務(wù)和支付模塊舉例,每個(gè)業(yè)務(wù)模塊的數(shù)據(jù)經(jīng)分布式數(shù)據(jù)庫(kù)中間件(SOFA的DBP)拆分為多個(gè)OceanBase租戶(hù)(實(shí)例)下百庫(kù)百表,每個(gè)表同時(shí)變更為OceanBase自身的分區(qū)表,分為100個(gè)分區(qū)。總共有多個(gè)OceanBase集群,每個(gè)集群橫跨杭州上海和深圳五機(jī)房,并同時(shí)提供服務(wù)。這里的數(shù)據(jù)總共分為10000個(gè)分區(qū),不同分庫(kù)下的數(shù)據(jù)分區(qū)的Leader副本分別位于不同的機(jī)房。不同分表之間可以分別進(jìn)行結(jié)構(gòu)變更(灰度發(fā)布能力),不同OceanBase租戶(hù)甚至集群之間是物理隔離的,這是金融核心業(yè)務(wù)拆分有使用分庫(kù)分表的第一個(gè)原因。

業(yè)務(wù)層面數(shù)據(jù)是按用戶(hù)維度拆分的,不同的用戶(hù)訪問(wèn)不同的機(jī)房的應(yīng)用和數(shù)據(jù)。業(yè)務(wù)層面的流量分配規(guī)則和數(shù)據(jù)分區(qū)Leader副本分配規(guī)則保持一致并聯(lián)動(dòng),實(shí)現(xiàn)了任意時(shí)刻的在線業(yè)務(wù)流量機(jī)房間比例調(diào)整。這是拆分使用分庫(kù)分表的第二個(gè)原因。

OceanBase集群在螞蟻金服業(yè)務(wù)里的核心作用是在數(shù)據(jù)庫(kù)層面解決數(shù)據(jù)副本三地分布的強(qiáng)一致和高可用切換問(wèn)題,并且提供了在線分區(qū)遷移和租戶(hù)彈性伸縮能力。

后記

本文首先針對(duì)分布式數(shù)據(jù)庫(kù)種的數(shù)據(jù)存在的兩種形式副本(復(fù)制產(chǎn)生的)和分區(qū)(分區(qū)產(chǎn)生的)進(jìn)行區(qū)分。然后總結(jié)了分區(qū)方案需要考慮的幾個(gè)點(diǎn):分區(qū)粒度、分區(qū)策略、分區(qū)遷移和負(fù)載均衡、分區(qū)數(shù)量和分區(qū)路由問(wèn)題等。即使這些都考慮好了,也只是分布數(shù)據(jù)庫(kù)這個(gè)初局做好了。后面業(yè)務(wù)能否發(fā)揮分布式數(shù)據(jù)庫(kù)的優(yōu)勢(shì)就取決于業(yè)務(wù)SQL的寫(xiě)法是否有很好的線性擴(kuò)展能力。最后簡(jiǎn)單總結(jié)了螞蟻金服支付寶和網(wǎng)上銀行在分布式數(shù)據(jù)庫(kù)架構(gòu)方面的最佳實(shí)踐。


原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的分布式数据库选型——数据水平拆分方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

在线国产视频 | 久久久久久高潮国产精品视 | 久久99日韩 | 911国产 | 一区二区视频播放 | 亚洲一级黄色av | 亚洲网站在线 | 国产精品一区二区三区久久久 | 欧美精品被 | 国产精品理论在线观看 | 欧美日韩精品在线观看视频 | 狠狠干夜夜爱 | 国产 av 日韩 | 热久久免费视频精品 | 亚洲伊人婷婷 | 久久久亚洲电影 | av在线播放中文字幕 | 深爱激情开心 | 人人射人人澡 | 91麻豆精品国产91久久久久久 | 亚洲国产精品女人久久久 | 国产精品欧美久久久久无广告 | 亚洲狠狠丁香婷婷综合久久久 | 久久精品久久久久电影 | 日韩高清在线一区 | www一起操 | 免费观看黄| 国产精品毛片完整版 | 中文字幕在线不卡国产视频 | 久艹视频在线免费观看 | 国产精品9999 | 在线观看视频你懂的 | 中文字幕在线看视频 | 西西44人体做爰大胆视频 | 三级黄色理论片 | 2018精品视频 | 精品久久久久久国产 | 三级av网 | 精品国产一区二区三区av性色 | 麻豆久久久久久久 | 欧美性天天 | 国产一区在线观看免费 | 国产亚洲精品成人av久久影院 | 精品999在线 | 婷婷色中文网 | 人人舔人人插 | 香蕉久久久久 | 国产精品成人国产乱一区 | 狠狠色丁香久久婷婷综合丁香 | 国产日产精品久久久久快鸭 | 999在线观看视频 | 在线免费av电影 | www蜜桃视频 | 精品亚洲免a | 国产一区欧美在线 | 久色免费视频 | 欧美国产日韩一区 | 国产欧美精品一区二区三区四区 | 国产日韩精品一区二区在线观看播放 | 激情婷婷亚洲 | 天天操天天拍 | av网站有哪些 | 国产一区二区久久精品 | 天天色宗合 | 五月婷婷丁香网 | 国产日产高清dvd碟片 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 丁香av| 又黄又爽又无遮挡免费的网站 | 天天添夜夜操 | 色婷婷婷 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产成人久久77777精品 | 在线亚洲精品 | 在线观看亚洲成人 | 午夜私人影院久久久久 | 日本爽妇网 | 成人毛片在线观看视频 | 射射射综合网 | 久久国产精品一二三区 | 欧美精品天堂 | 日韩精品在线一区 | 国产视频二区三区 | 国产一区视频在线播放 | 日本午夜在线亚洲.国产 | 懂色av一区二区在线播放 | 国产亚洲视频系列 | 免费在线一区二区 | 在线观看中文字幕av | 国产精彩视频 | 欧美三级免费 | 综合在线观看色 | 激情五月***国产精品 | av片一区二区 | 精品在线视频一区 | 色婷婷国产精品一区在线观看 | 欧美一级看片 | 91精品视频免费 | 成人av一区二区三区 | 日韩精品网址 | 亚洲精品国产电影 | 亚洲成av人片在线观看无 | 00av视频 | 99久久er热在这里只有精品15 | 国产日本在线播放 | 亚洲精品电影在线 | 黄色网www | 国产视频一区二区在线观看 | 成人精品久久 | 国产成人在线精品 | 色婷婷色 | 日本中文字幕在线免费观看 | 中文字幕乱偷在线 | 99国产免费网址 | 日本在线观看中文字幕无线观看 | 日韩a在线 | 日韩在线国产 | 免费网站黄色 | 国产精品一区二区av日韩在线 | 久久99精品久久久久久久久久久久 | 97精品国产一二三产区 | 麻豆精品在线 | 五月天欧美精品 | 精品久久久久久久久久久院品网 | 精品视频久久 | 国产在线理论片 | 久久99久久99精品免观看粉嫩 | 亚洲狠狠 | 亚洲爱av | 久久激情综合 | 久久热亚洲 | 成人午夜免费剧场 | 亚洲成aⅴ人在线观看 | 黄av免费在线观看 | 久二影院 | 久久资源总站 | 日韩理论片在线 | 国产精品免费久久久久久 | 欧美精品久久久久久久免费 | 成人黄大片视频在线观看 | 国产亚洲视频系列 | 亚洲精品乱码久久久久久蜜桃欧美 | 狠狠狠狠狠色综合 | 91最新在线| 97精品在线| 久久综合9988久久爱 | 亚州人成在线播放 | 成人在线观看日韩 | 欧美午夜久久 | 日韩一三区 | 亚洲爱视频 | 欧美精品久久久久a | 日韩av一区二区三区四区 | 在线视频你懂 | 久久国产91 | 久久久黄视频 | 国产999精品久久久久久绿帽 | 一区二区伦理电影 | 久色婷婷| 国产免费小视频 | 日日天天 | 色夜影院 | 日韩av网页| 一区二区三区视频在线 | 婷婷激情五月综合 | 超碰97国产| 久久av网址 | 国产成人福利在线观看 | 狠狠狠狠狠干 | 99中文字幕视频 | a级国产乱理论片在线观看 伊人宗合网 | 天天操偷偷干 | 美女黄久久 | av大片免费 | 久久精品99久久 | 国产日韩中文字幕 | 日韩三级在线 | 国产日产精品一区二区三区四区的观看方式 | 欧美 另类 交| 国产短视频在线播放 | 六月婷婷色 | 日韩精品不卡 | 亚洲一区二区天堂 | 成人性生爱a∨ | 久久公开免费视频 | 日韩精品一卡 | 91九色老 | 精品视频www| 99成人在线视频 | 色哟哟国产精品 | 夜色成人av | 成人理论电影 | 亚洲成人欧美 | 国产精品 9999 | 久久综合色影院 | 免费在线观看一区 | 9992tv成人免费看片 | 亚洲成av人影院 | 国产精品欧美久久久久无广告 | 成人av中文字幕在线观看 | 国产中文字幕三区 | 国产一级特黄毛片在线毛片 | 91精品麻豆 | 国产一级视频在线观看 | 亚洲日本色 | 免费在线观看成人 | 日日摸日日添日日躁av | www日韩在线 | 在线免费观看视频一区 | 色国产精品一区在线观看 | 人人超碰97 | 国产成人三级在线 | 亚洲电影院 | 久久综合色影院 | 亚洲国产日韩欧美在线 | 久久夜色精品国产欧美一区麻豆 | 麻豆免费在线视频 | 欧美日韩在线精品 | 久久在线视频精品 | 国产一区二区在线精品 | 日韩有码在线观看视频 | 精品国产成人在线影院 | 日韩专区在线播放 | 亚洲精品日韩在线观看 | 亚洲1级片 | 久久99精品一区二区三区三区 | 在线电影91| 国产福利一区二区在线 | 午夜久久久久久久久 | 中文字幕高清在线播放 | 国产精品免费人成网站 | 日韩美女av在线 | 国产麻豆精品一区 | 最新婷婷色 | 天天插夜夜操 | 人人爱人人舔 | 国产欧美精品xxxx另类 | 中文字幕网站视频在线 | 欧美精品一区在线 | 亚洲综合成人专区片 | 亚洲成人免费在线 | 亚洲国产操| 国产成人性色生活片 | 日本久久成人 | av网站手机在线观看 | av资源在线看 | av五月婷婷 | 中文字幕在线观看第一页 | 久草网免费 | 91成人免费看 | 国产自在线 | 久久久久久久免费看 | 韩国av一区 | 麻豆网站免费观看 | 美女久久久久久久久久 | 色吊丝av中文字幕 | 国产精品白丝jk白祙 | 色在线国产 | 国产97免费| 欧美福利精品 | 国产精品区二区三区日本 | 日韩啪啪小视频 | 欧美激情视频在线免费观看 | 国产精品成人av在线 | 国产小视频你懂的 | 亚洲综合日韩在线 | 视频一区二区国产 | 国产视频在线免费观看 | 成人免费91| 永久黄网站色视频免费观看w | 99色视频 | 亚洲精品视频国产 | 国产精品涩涩屋www在线观看 | www好男人| 天天操夜夜干 | 九九久久久久99精品 | 一区二区三区福利 | 国产精品一区二区在线免费观看 | 十八岁免进欧美 | 欧美另类重口 | 国产精品九九久久99视频 | 97超碰人人澡 | 国产精品一二 | 国产视频一区二区三区在线 | 欧美成人h版电影 | 久草久热| 激情丁香在线 | 欧美另类调教 | 国产在线看 | 中文字幕日韩伦理 | 久久久精品综合 | 午夜 免费| 国产一级片免费视频 | 国产精品igao视频网入口 | 免费观看一区二区 | www.夜夜草 | 中文字幕xxxx| 99精品视频在线播放观看 | 欧美日韩在线观看不卡 | 91亚洲精品乱码久久久久久蜜桃 | 日本mv大片欧洲mv大片 | 在线观看午夜av | 欧美成人免费在线 | 麻豆系列在线观看 | 亚洲狠狠丁香婷婷综合久久久 | 久草免费福利在线观看 | 亚洲a色 | 婷婷激情在线 | 日韩欧美一区二区三区视频 | 欧美最猛性xxxx | 精品国产伦一区二区三区观看说明 | 爱色av.com| 又色又爽又激情的59视频 | 97超碰人人澡| 国产不卡毛片 | 在线免费观看羞羞视频 | 99久久综合狠狠综合久久 | 久久66热这里只有精品 | 亚洲综合五月 | 天堂av高清 | 欧美日韩aaaa | 亚洲经典精品 | 色婷婷 亚洲 | 久久1区 | 国内精品久久久久久 | 国产精品永久 | 久久最新视频 | a久久久久 | 成人av在线看 | 天天色欧美 | 欧美日视频 | 国产91精品一区二区麻豆亚洲 | 亚洲午夜不卡 | 免费看污的网站 | 亚洲欧美国内爽妇网 | 婷婷天天色 | 国产精品久久久久久久久久新婚 | 中文字幕av免费 | 国产精品久久久久久久久久新婚 | 黄色毛片一级片 | 国产明星视频三级a三级点| 午夜精品电影一区二区在线 | 中文伊人 | 久久中国精品 | 久久精品国产亚洲 | 欧美性大胆 | 香蕉视频久久久 | 丁香电影小说免费视频观看 | 丁香六月在线观看 | 亚洲美女视频在线观看 | 久久 地址 | 精品在线一区二区 | 久久精品一二三区白丝高潮 | 亚洲精品乱码久久久久 | 午夜 在线 | 久久精品国产一区二区三 | 久久久三级视频 | 91成人精品 | 欧美a级片网站 | 日韩一区在线免费观看 | 91视频免费网址 | 婷婷综合网 | 国产精品免费久久久久影院仙踪林 | 超碰在线人人爱 | 免费91在线观看 | 四虎4hu永久免费 | 天天干.com | 久草久草在线观看 | 国产五月天婷婷 | 欧美日本三级 | 日韩精品一区二区三区中文字幕 | 国内精品久久久久久 | 国产视频在线观看一区 | 久久九九久久九九 | 中文字幕在线视频一区二区 | 日本中文字幕在线免费观看 | 亚洲最新毛片 | 久久免费视频8 | 在线视频婷婷 | 在线观看免费观看在线91 | 免费精品视频在线观看 | 中文字幕丝袜美腿 | 精品欧美日韩 | 天天摸天天弄 | 四季av综合网站 | 成 人 黄 色视频免费播放 | 在线岛国av | 日韩最新av在线 | 国产在线无 | 黄色精品免费 | 999久久久国产精品 高清av免费观看 | 成人免费观看视频大全 | 国产一区91 | 国产亚洲婷婷免费 | 狠狠干在线播放 | 超碰av在线 | 最近中文字幕第一页 | 国产99久久精品一区二区300 | 在线黄色观看 | 久久久亚洲电影 | 91视频免费观看 | 欧美性大战久久久久 | 欧美色图一区 | 日本一区二区不卡高清 | 国产伦精品一区二区三区无广告 | 国产在线看 | 国产婷婷在线观看 | 国产精品久久久av久久久 | 永久免费在线 | 天天翘av| 青春草免费在线视频 | 免费手机黄色网址 | 久久精品一区二区三区国产主播 | 国产视频九色蝌蚪 | 国产精品12| 91最新地址永久入口 | 在线观看完整版 | 91丨九色丨国产在线 | 亚洲精品成人网 | 国产精品国产三级国产不产一地 | 国产高清精 | 精品少妇一区二区三区在线 | 中文字幕在线观看的网站 | 中文在线8新资源库 | 超碰国产97| 国产色视频一区二区三区qq号 | 亚洲精品美女视频 | 日韩精品视频一二三 | 91精品国自产在线 | 在线看成人 | 亚洲男模gay裸体gay | 亚洲精品国精品久久99热一 | 狠狠色丁香婷婷综合最新地址 | 久久视频6 | 天天综合成人 | 二区三区在线观看 | 日日爽天天操 | 久久综合色婷婷 | 免费看黄电影 | 99久久精品无码一区二区毛片 | 国产精品11 | 日韩欧美69 | 午夜狠狠操 | 在线观看中文字幕视频 | 国产一级电影免费观看 | 亚洲欧美在线综合 | 欧美一区视频 | 91精品国产九九九久久久亚洲 | 久久综合影音 | 国产视频精选 | 日韩在线视频免费观看 | 久精品视频在线 | 色综合久久久久久久久五月 | 亚洲天堂网在线观看视频 | 中文字幕色站 | 碰超在线97人人 | 成人久久精品视频 | 成人免费精品 | 久久国产精品久久w女人spa | 久久人人添人人爽添人人88v | 亚洲精品欧美视频 | 国产亚洲va综合人人澡精品 | 一区三区视频在线观看 | 国产一区自拍视频 | 成人毛片久久 | 狠狠干美女 | 亚洲精品456在线播放乱码 | 丁香久久久 | 免费在线播放视频 | 欧美日韩免费观看一区=区三区 | 在线观看中文字幕一区二区 | 久久无码av一区二区三区电影网 | 久久久久久久久久久久亚洲 | 亚洲国产中文字幕在线视频综合 | 在线不卡视频 | 免费在线色电影 | 天天搞夜夜骑 | 久久国产三级 | 国产美腿白丝袜足在线av | 久久久资源 | 在线 你懂 | 国产精品视频免费 | 国产精品theporn | 在线成人短视频 | 91亚洲成人 | 视频一区二区三区视频 | 亚洲精品小视频 | 天天综合操 | 国产精品一码二码三码在线 | 国产精品福利在线 | 视频在线观看国产 | 国产在线视频一区二区 | 三级黄在线 | 久久高清视频免费 | 婷婷综合在线 | 国产99一区视频免费 | 亚洲成av | 99热最新精品| 夜夜视频欧洲 | 国产麻豆成人传媒免费观看 | 三级黄色网络 | 午夜精品福利一区二区 | 91视视频在线直接观看在线看网页在线看 | 国产一级特黄毛片在线毛片 | 国产精品永久免费视频 | 久久精品成人欧美大片古装 | 人人艹人人 | 天天射,天天干 | 国产福利91精品 | 免费a级黄色毛片 | 九九热免费视频在线观看 | 久久五月网 | 日本性xxxxx 亚洲精品午夜久久久 | 婷婷久久网| 国产成人精品女人久久久 | 99精品视频免费看 | 五月婷婷操 | 又黄又爽又无遮挡免费的网站 | 91自拍视频在线观看 | 亚洲欧美日韩精品一区二区 | 欧美孕妇视频 | 少妇搡bbbb搡bbb搡aa | 国产一级精品视频 | 精品女同一区二区三区在线观看 | 亚洲性xxxx| 免费av成人在线 | 日韩欧美精品在线 | 91精品国产九九九久久久亚洲 | 国产午夜三级一区二区三桃花影视 | 99久久精品久久亚洲精品 | 欧美一区二区三区四区夜夜大片 | 亚洲三区在线 | 亚洲综合色丁香婷婷六月图片 | 成年人看片网站 | 午夜在线看片 | www.91国产| 91成人网在线观看 | 午夜在线免费视频 | 欧美少妇xx| 在线观看久 | 伊人成人久久 | 久久无码av一区二区三区电影网 | 日韩欧美在线高清 | 国产精品久久久久久久午夜片 | 免费看片亚洲 | 成人精品久久 | 国产一区视频在线观看免费 | 精品国产一区二区三区蜜臀 | 国产精品免费一区二区 | 国产剧情在线一区 | 欧美日韩国产精品一区二区 | 精品亚洲成a人在线观看 | 免费av一级电影 | 麻豆一二 | 91视频首页 | 干干夜夜 | 黄色av观看 | 国产高清第一页 | 在线视频日韩一区 | 色福利网站 | 插综合网 | 婷婷深爱| 精品国精品自拍自在线 | 中国一级特黄毛片大片久久 | 久久综合视频网 | 六月丁香激情网 | 亚洲国产成人在线播放 | 欧美一级电影片 | 一级免费黄色 | 国产在线一线 | av片在线观看免费 | 国产h片在线观看 | 亚洲综合在线播放 | 国产精品视频观看 | 久久精品视频在线看 | 成人一级黄色片 | 国产99久久精品一区二区300 | 麻豆国产在线视频 | 国产欧美久久久精品影院 | 久久国产精品99久久久久久老狼 | mm1313亚洲精品国产 | 99视频导航 | 亚洲不卡av一区二区三区 | 国产一级91 | 亚洲日本一区二区在线 | 国产视频一区二区在线播放 | 亚洲综合网 | 中文字幕色婷婷在线视频 | 日韩精品在线播放 | 午夜.dj高清免费观看视频 | 欧洲一区二区三区精品 | 国产精品久久久久久久久久久免费 | 亚洲精品三级 | 久久人视频 | 91女神的呻吟细腰翘臀美女 | 亚洲欧美日韩在线看 | www.在线观看av | 天天爽天天做 | 黄网站www| 成人三级黄色 | 伊人资源视频在线 | 国产日本亚洲高清 | 亚州免费视频 | 不卡电影一区二区三区 | 日本久久久影视 | 一区二区三区在线视频111 | 亚洲免费观看视频 | 日本激情动作片免费看 | 免费久久99精品国产婷婷六月 | 九九色在线观看 | 在线看岛国av | 91丨九色丨高潮丰满 | 成人一级黄色片 | 狠狠色免费 | 一区二区av| 国产xvideos免费视频播放 | 日韩在线视频看看 | www.夜夜夜| 日精品在线观看 | 麻花传媒mv免费观看 | av大片网站 | 91tv国产成人福利 | 成人作爱视频 | 特级西西人体444是什么意思 | 色九色| 欧美日韩国产综合网 | 三级a毛片 | 一级成人在线 | 欧美日韩亚洲在线观看 | 久久免费一级片 | 激情大尺度视频 | 国产精品乱码一区二区视频 | 色综合天天爱 | 制服丝袜成人在线 | 在线视频一区二区 | 久久视频一区二区 | 婷婷丁香在线观看 | 综合久久精品 | 国产1区在线 | 天天搞天天干天天色 | 人人舔人人插 | 日日夜精品 | 久久99热这里只有精品 | 色在线视频 | 麻豆传媒视频在线免费观看 | 国产综合在线观看视频 | 国产一级高清视频 | avwww在线| 久久视频精品在线 | 精品久久久久久国产 | 精品中文字幕在线 | 亚洲精品综合久久 | 在线观看免费成人av | 免费成人黄色片 | 香蕉久久久久 | 久久国产精品精品国产色婷婷 | 高清av在线免费观看 | 国内精品久久久久 | 十八岁以下禁止观看的1000个网站 | 免费视频91| 精品一区二区综合 | 久久国产品 | 97国产在线视频 | 欧美一区二区三区免费观看 | 91精品国产福利 | 天天色天天艹 | 欧美激情视频一区二区三区免费 | 在线91视频 | 91视频这里只有精品 | 在线看一区二区 | 亚洲免费av观看 | 99在线热播精品免费99热 | 91资源在线 | av网站免费看 | 一区二区三区在线看 | 久草在线免费看视频 | 天天射综合网站 | 在线成人免费电影 | 97超碰免费 | 国产一区二区三区免费观看视频 | 一区二区影视 | 99精品国产免费久久久久久下载 | 在线免费色视频 | 精品在线观 | 色综合网在线 | 国产日韩欧美自拍 | 在线观看视频国产一区 | 亚洲人成在线观看 | 91视频免费观看 | 免费下载高清毛片 | 中文字幕在线一二 | 韩国精品福利一区二区三区 | 91九色porn在线资源 | 亚洲 欧美日韩 国产 中文 | 就操操久久 | 日韩字幕| 九九热在线观看视频 | 99视频一区二区 | 亚洲夜夜网 | 精品久操| 国产日产av | 国产精品孕妇 | 欧美日韩色婷婷 | 国产一区二区在线看 | 国产91精品看黄网站 | av片在线观看免费 | 久草免费在线视频观看 | 国产一级电影网 | 久九视频 | 午夜久久影院 | 亚洲人成人99网站 | 久久欧美综合 | 欧美日韩国产精品一区 | 亚洲视屏| 免费激情在线电影 | 国产二区视频在线观看 | 狠狠色丁香九九婷婷综合五月 | 日日操狠狠干 | 久草视频手机在线 | 香蕉视频在线播放 | 国产精品av免费在线观看 | 精品久久一级片 | 五月婷婷深开心 | 精品国产理论片 | 91精品国产自产在线观看 | 日韩一级成人av | 国产情侣一区 | www.狠狠操 | 一区二区三区久久精品 | 91精品少妇偷拍99 | av888av.com| 久久精品国产亚洲精品2020 | av免费播放 | 久久久久久久久久久久久国产精品 | 久久久久久久久久久成人 | 91av九色 | 天天舔夜夜操 | 91精品第一页| 日韩午夜在线播放 | 成人av网站在线观看 | 波多野结依在线观看 | 视频一区久久 | 亚洲三级视频 | 五月天最新网址 | 国产一区二区中文字幕 | 久久免费的精品国产v∧ | 国产一区二区免费 | 麻豆精品在线视频 | 开心激情网五月天 | 色在线国产 | a v在线视频 | 国产区免费在线 | 色播五月激情综合网 | 亚洲成人欧美 | 国产一区观看 | 国产成人免费网站 | 99热免费在线 | 精品国产一区二区三区久久久久久 | 天天射综合 | 国产精品网站一区二区三区 | 国产一区视频在线 | 日韩激情精品 | 亚洲久草网| 国产日产亚洲精华av | 精品久久毛片 | 天天曰天天 | 97超碰资源| 高清国产在线一区 | 中文字幕美女免费在线 | 国产精品24小时在线观看 | 香蕉视频4aa | www.狠狠色 | 一级片观看| 亚洲综合激情五月 | 久久婷婷综合激情 | 黄色av三级在线 | av高清影院| 亚洲永久精品视频 | 亚洲精品大片www | 米奇影视7777 | 91丨九色丨蝌蚪丨老版 | 亚洲视频资源在线 | 亚洲精选国产 | 在线午夜电影神马影院 | 国产97视频在线 | 国产精品乱码久久久久久1区2区 | 五月婷久 | 激情五月婷婷激情 | 中文字幕免费久久 | 午夜美女福利 | 国产精品男女啪啪 | 国产成人久久av免费高清密臂 | 欧美日韩高清在线一区 | 国产成人一区二区三区免费看 | 日日操天天操狠狠操 | 天天射天天射天天射 | 不卡的av在线 | 国产偷国产偷亚洲清高 | 成人久久久电影 | 五月婷婷中文字幕 | 国产成人免费精品 | 中文字幕成人一区 | 精品久久久一区二区 | 精品女同一区二区三区在线观看 | 在线精品视频免费播放 | 国产成人av电影在线 | 99精品一级欧美片免费播放 | 在线你懂| 香蕉视频在线播放 | 日本性生活一级片 | 国产成人免费 | 国产一级二级在线观看 | 欧美夫妻生活视频 | 中文字幕视频在线播放 | 久草观看 | www.看片网站| 69精品视频在线观看 | 国产热re99久久6国产精品 | 波多野结衣在线中文字幕 | 涩五月婷婷 | 9ⅰ精品久久久久久久久中文字幕 | 久久免费视频在线观看 | 99久久精品无免国产免费 | 亚洲欧美日韩一二三区 | 成人久久电影 | 国产一级视频在线观看 | 在线韩国电影免费观影完整版 | 日韩电影中文,亚洲精品乱码 | 日韩欧美视频在线播放 | 免费高清无人区完整版 | 国产精品视频你懂的 | 在线中文字母电影观看 | 精品久久久久免费极品大片 | 中文字幕在线观看视频一区二区三区 | 韩国av免费看 | 久久精品电影院 | 在线国产小视频 | 欧美日韩久久久 | 97人人人人| 最新国产精品久久精品 | 国产午夜精品一区二区三区在线观看 | 国产成人在线播放 | 成人a级大片 | 激情欧美日韩一区二区 | 日本不卡久久 | 免费久久网站 | 国产久视频| 国产精品久久99综合免费观看尤物 | 808电影| 91免费视频网站在线观看 | 亚洲视频免费在线观看 | 福利av在线| 国产精品一区久久久久 | 午夜精品麻豆 | 91大神精品视频在线观看 | 最近最新mv字幕免费观看 | 国产夫妻av在线 | 亚洲欧美国产精品 | 亚洲精品乱码久久久久久写真 | 天天曰夜夜爽 | 免费视频xnxx com | 五月婷婷在线视频 | 毛片99| 91免费在线播放 | 黄色成人免费电影 | 国产中文字幕一区二区三区 | 欧美成年人在线视频 | 奇米影视8888在线观看大全免费 | 日日夜夜国产 | 99精品国产一区二区 | 激情视频免费在线 | 婷婷在线综合 | 免费看av片网站 | 国产视频一二区 | 九九在线视频免费观看 | 亚洲视频高清 | 久视频在线播放 | 五月婷婷在线视频 | 黄色一级免费 | 久久视频国产 | 伊人中文网 | 精品国产亚洲在线 | 日韩有码网站 | 热久精品 | 久久激情网站 | 激情五月婷婷激情 | av黄色影院 | 中文字幕免费观看全部电影 | 成人久久视频 | 亚洲成人黄色网址 | 激情婷婷六月 | 欧美日产一区 | 亚洲欧洲精品一区二区 | 国产无遮挡猛进猛出免费软件 | 日韩中文字幕亚洲一区二区va在线 | 丁香婷婷综合网 | 天天爽夜夜爽精品视频婷婷 | 亚洲网久久 | avlulu久久精品 | 欧美日韩高清在线 | 99热只有精品在线观看 | 免费麻豆| 成人av一区二区在线观看 | 久久调教视频 | 国产精品99久久免费黑人 | 国产亲近乱来精品 | 国产h片在线观看 | 丁香花在线视频观看免费 | 国内小视频在线观看 | 在线观看蜜桃视频 | 五月婷婷色 | 一本之道乱码区 | 五月天综合色激情 | 正在播放五月婷婷狠狠干 | 久久公开视频 | 色播五月婷婷 | 91精品久久久久久久99蜜桃 | 天天·日日日干 | av在线播放快速免费阴 | 激情丁香在线 | www.国产在线观看 | 在线视频 亚洲 | 成人免费看片98欧美 | 国产96在线观看 | 欧美亚洲一级片 | av女优中文字幕在线观看 | 丁香婷婷综合五月 | 色资源网免费观看视频 | 午夜久久福利 | 天天插综合 | 国产精品久久久久一区二区国产 | 在线免费成人 | 精品一区欧美 | 久久av网| 黄色软件大全网站 | 成人黄色资源 | 日韩中文字幕免费 | 最近久乱中文字幕 | 高清精品久久 | 欧美日韩在线观看不卡 | 亚洲一区二区91 | 精品国产一区二区三区不卡 | 91精品在线播放 | 激情网五月婷婷 | 国产美女搞久久 | 日本超碰在线 | 九九热在线播放 | 欧美网址在线观看 | 天天射天天干天天插 | 欧美精品久久久久久久免费 | 欧美日韩在线视频一区 | 亚洲精品日韩av | 午夜私人影院久久久久 | 国产视频亚洲 | 中文在线天堂资源 | 免费看的黄网站 | 中文字幕国产一区 | 欧美,日韩 | 热99在线视频 | 99亚洲精品视频 | 国产成人精品不卡 | avhd高清在线谜片 | 99精品国产一区二区 | 国产99久久 | 欧美一区二区视频97 | 日韩超碰在线 | 中文av在线天堂 | 黄色大片av| 中文字幕在线观看免费观看 | 又大又硬又黄又爽视频在线观看 | 在线播放 日韩专区 | 国产精品久久久久免费 | 探花系列在线 | 中午字幕在线观看 | 中文字幕人成乱码在线观看 | 欧美在线日韩在线 | 69av国产| 中文字幕 国产视频 | 免费欧美精品 | 欧女人精69xxxxxx | 欧美色图88| 久久久久久久毛片 | 久久久久久久av | 国产精品亚洲a | 夜夜操网站| 一区二区三区观看 | 婷婷深爱激情 | 欧美成人在线免费 | 国产亚洲精品xxoo | 欧美伦理一区二区三区 | 亚洲在线看 | 欧美最新大片在线看 | 久久人人爽人人人人片 | 欧美激情视频在线免费观看 | 亚洲国产成人在线观看 | 日日日日 | 黄色大片视频网站 | 九九交易行官网 |