精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

256變4096:分庫分表擴容如何實現(xiàn)平滑數(shù)據(jù)遷移?

開發(fā) 前端
此次進行擴分庫分表的背景是,原4實例4庫、每個庫64張表一共256張表,部分單表已超千萬量級,按當前每日單量量級,一年內(nèi)單表會達到上億條記錄,單表數(shù)據(jù)量過大會帶來數(shù)據(jù)庫性能問題。

[[384169]]

一、背景

2020年, 筆者負責的一個高德打車彈外訂單系統(tǒng)進行了一次擴分庫分表和數(shù)據(jù)庫遷移。 該訂單系統(tǒng)整體部署在阿里云上,服務(wù)使用阿里云ECS部署,數(shù)據(jù)庫采用阿里云RDS,配置中心基于阿里云ACM自 研,數(shù) 據(jù)同步基于阿里云DTS自研以及自研分庫分表組件、分布式ID組件等等。

此次進行擴分庫分表的背景是,原4實例4庫、每個庫64張表一共256張表,部分單表已超千萬量級,按當前每日單量量級,一年內(nèi)單表會達到上億條記錄,單表數(shù)據(jù)量過大會帶來數(shù)據(jù)庫性能問題。

注 : 【彈內(nèi)彈外】彈是指彈性計算,彈內(nèi)與彈外其實是指兩套獨立的彈性計算網(wǎng)絡(luò)環(huán)境。 彈內(nèi)主要是指部署在阿里生產(chǎn)網(wǎng)的彈性計算環(huán)境,最早是基于原有淘寶技術(shù)構(gòu)建的,主要用于支撐淘寶業(yè)務(wù)。 彈外主要是指部署在阿里公有云的彈性計算環(huán)境,支撐了阿里云計算業(yè)務(wù)。

二、容量規(guī)劃

1.當前分庫分表情況

4實例(16C/64G/3T SSD),4庫(每個實例一個庫),每庫64張表,共256張表。

通過RDS后臺一鍵診斷功能,來計算表空間使用情況(這里 拿測試環(huán)境數(shù)據(jù)庫舉例) 。

2.容量計算

實例數(shù)

數(shù)據(jù)庫的瓶頸主要體現(xiàn)在:磁盤、CPU、內(nèi)存、網(wǎng)絡(luò)、連接數(shù),而連接數(shù)主要是受 CPU 和內(nèi)存影響。 CPU 和內(nèi)存可以通過動態(tài)升配來提升,但是SSD磁盤容量最大支持到6T(32C以下最大3T、32C及以上最大6T)。

但是現(xiàn)階段兼顧成本,可先將實例擴容一倍,采用8個實例(16C/64G/3T SSD),每個實例建4個庫(database)、每個庫128張表(這里實際上是一個成本取舍的過程,理論上應(yīng)該采取"多庫少表"的原則,單庫128張表其實太多了,單庫建議32或64張表為宜) 。

后續(xù)如果實例壓力提升可進行實例配置升級(16C/128G、32C/128G、32C/256G等);未來如出現(xiàn)單實例升配無法解決,在考慮擴容實例,只需要將database遷移至新實例,遷移成本較小。

表數(shù)

按單表最多1000w條數(shù)據(jù)評估,4096張表可支持日5000w單*3年(10.1壓測標準)、日2000w單*5年的架構(gòu)。(因業(yè)務(wù)表比較多,此處忽略掉單條數(shù)據(jù)大小的計算過程)

庫數(shù)

32個庫,每個庫128張表。未來可最大擴容到32個實例,無需rehash,只需要遷移數(shù)據(jù)。  

阿里云RDS規(guī)格和價格一覽

三、數(shù)據(jù)遷移

因擴分庫分表涉及到rehash過程(256表變4096表),而阿里云DTS只支持同構(gòu)庫數(shù)據(jù)遷移,所以我們基于DTS的binlog轉(zhuǎn)kafka能力自研了數(shù)據(jù)同步中間件。

整個數(shù)據(jù)遷移工作包括:前期準備、數(shù)據(jù)同步環(huán)節(jié)(歷史數(shù)據(jù)全量同步、增量數(shù)據(jù)實時同步、rehash)、數(shù)據(jù)校驗環(huán)節(jié)(全量校驗、實時校驗、校驗規(guī)則配置)、數(shù)據(jù)修復(fù)工具等。

1.準備工作

唯一業(yè)務(wù)ID

在進行數(shù)據(jù)同步前,需要先梳理所有表的唯一業(yè)務(wù)ID,只有確定了唯一業(yè)務(wù)ID才能實現(xiàn)數(shù)據(jù)的同步操作。

需要注意的是:

  • 業(yè)務(wù)中是否有使用數(shù)據(jù)庫自增ID做為業(yè)務(wù)ID使用的,如果有需要業(yè)務(wù)先進行改造,還好訂單業(yè)務(wù)里沒有。

  • 每個表是否都有唯一索引,這個在梳理的過程中發(fā)現(xiàn)有幾張表沒有唯一索引。

一旦表中沒有唯一索引,就會在數(shù)據(jù)同步過程中造成數(shù)據(jù)重復(fù)的風險,所以我們先將沒有唯一索引的表根據(jù)業(yè)務(wù)場景增加唯一索引(有可能是聯(lián)合唯一索引)。

在這里順便提一下,阿里云DTS做同構(gòu)數(shù)據(jù)遷移,使用的是數(shù)據(jù)庫自增ID做為唯一ID使用的,這種情況如果做雙向同步,會造成數(shù)據(jù)覆蓋的問題。解決方案也有,之前我們的做法是,新舊實體采用自增ID單雙號解決,保證新舊實例的自增ID不會出現(xiàn)沖突就行。因為這次我們使用的自研雙向同步組件,這個問題這里不細聊。

分表規(guī)則梳理

分表規(guī)則不同決定著rehash和數(shù)據(jù)校驗的不同。需逐個表梳理是用戶ID緯度分表還是非用戶ID緯度分表、是否只分庫不分表、是否不分庫不分表等等。

2.數(shù)據(jù)同步

數(shù)據(jù)同步整體方案見下圖,數(shù)據(jù)同步基于binlog,獨立的中間服務(wù)做同步,對業(yè)務(wù)代碼無侵入。

接下來對每一個環(huán)節(jié)進行介紹。

歷史數(shù)據(jù)全量同步

單獨一個服務(wù),使用游標的方式從舊庫分批select數(shù)據(jù),經(jīng)過rehash后批量插入(batch insert)到新庫,此處需要配置jdbc連接串參數(shù)rewriteBatchedStatements=true才能使批處理操作生效。

另外特別需要注意的是,歷史數(shù)據(jù)也會存在不斷的更新,如果先開啟歷史數(shù)據(jù)全量同步,則剛同步完成的數(shù)據(jù)有可能不是最新的。所以這里的做法是,先開啟增量數(shù)據(jù)單向同步(從舊庫到新庫),此時只是開啟積壓kafka消息并不會真正消費;然后在開始歷史數(shù)據(jù)全量同步,當歷史全量數(shù)據(jù)同步完成后,在開啟消費kafka消息進行增量數(shù)據(jù)同步(提高全量同步效率減少積壓也是關(guān)鍵的一環(huán)),這樣來保證遷移數(shù)據(jù)過程中的數(shù)據(jù)一致。

增量數(shù)據(jù)實時同步

增量數(shù)據(jù)同步考慮到灰度切流穩(wěn)定性、容災(zāi)和可回滾能力,采用實時雙向同步方案,切流過程中一旦新庫出現(xiàn)穩(wěn)定性問題或者新庫出現(xiàn)數(shù)據(jù)一致問題,可快速回滾切回舊庫,保證數(shù)據(jù)庫的穩(wěn)定和數(shù)據(jù)可靠。

增量數(shù)據(jù)實時同步采用基于阿里云DTS的數(shù)據(jù)訂閱自研數(shù)據(jù)同步組件data-sync實現(xiàn),主要方案是DTS數(shù)據(jù)訂閱能力會自動將被訂閱的數(shù)據(jù)庫binlog轉(zhuǎn)為kafka,data-sync組件訂閱kafka消息、將消息進行過濾、合并、分組、rehash、拆表、批量insert/update,最后再提交offset等一系列操作,最終完成數(shù)據(jù)同步工作。

  • 過濾循環(huán)消息:需要過濾掉循環(huán)同步的binlog消息,這個問題比較重要后面將進行單獨介紹。

  • 數(shù)據(jù)合并:同一條記錄的多條操作只保留最后一條。為了提高性能,data-sync組件接到kafka消息后不會立刻進行數(shù)據(jù)流轉(zhuǎn),而是先存到本地阻塞隊列,然后由本地定時任務(wù)每X秒將本地隊列中的N條數(shù)據(jù)進行數(shù)據(jù)流轉(zhuǎn)操作。此時N條數(shù)據(jù)有可能是對同一張表同一條記錄的操作,所以此處只需要保留最后一條(類似于redis aof重寫) 。

  • update轉(zhuǎn)insert:數(shù)據(jù)合并時,如果數(shù)據(jù)中有insert+update只保留最后一條update,會執(zhí)行失敗,所以此處需要將update轉(zhuǎn)為insert語句。

  • 按新表合并:將最終要提交的N條數(shù)據(jù),按照新表進行拆分合并,這樣可以直接按照新表緯度進行數(shù)據(jù)庫批量操作,提高插入效率。

整個過程中有幾個問題需要注意:

問題1:怎么防止因異步消息無順序而導(dǎo)致的數(shù)據(jù)一致問題?

首先kafka異步消息是存在順序問題的,但是要知道的是binlog是順序的,所以dts在對詳細進行kafka消息投遞時也是順序的,此處要做的就是一個庫保證只有一個消費者就能保障數(shù)據(jù)的順序問題、不會出現(xiàn)數(shù)據(jù)狀態(tài)覆蓋,從而解決數(shù)據(jù)一致問題。

問題2:是否會有丟消息問題,比如消費者服務(wù)重啟等情況下?

這里沒有采用自動提交offset,而是每次消費數(shù)據(jù)最終入庫完成后,將offset異步存到一個mysql表中,如果消費者服務(wù)重啟宕機等,重啟后從mysql拿到最新的offset開始消費。這樣唯一的一個問題可能會出現(xiàn)瞬間部分消息重復(fù)消費,但是因為上面介紹的binlog是順序的,所以能保證數(shù)據(jù)的最終一致。

問題3:update轉(zhuǎn)insert會不會丟字段?

binlog是全字段發(fā)送,不會存在丟字段情況。

問題4:循環(huán)消息問題。

后面進行單獨介紹。

rehash

前文有提到,因為是256表變4096表,所以數(shù)據(jù)每一條都需要經(jīng)過一次rehash重新做分庫分表的計算。

要說rehash,就不得不先介紹下當前訂單數(shù)據(jù)的分庫分表策略,訂單ID中冗余了用戶ID的后四位,通過用戶ID后四位做hash計算確定庫號和表號。

數(shù)據(jù)同步過程中,從舊庫到新庫,需要拿到訂單ID中的用戶ID后四位模4096,確定數(shù)據(jù)在新庫中的庫表位置;從新庫到舊庫,則需要用用戶ID后四位模256,確定數(shù)據(jù)在舊庫中的庫表位置。

雙向同步時的binlog循環(huán)消費問題

想象一下,業(yè)務(wù)寫一條數(shù)據(jù)到舊實例的一張表,于是產(chǎn)生了一條binlog;data-sync中間件接到binlog后,將該記錄寫入到新實例,于是在新實例也產(chǎn)生了一條binlog;此時data-sync中間件又接到了該binlog......不斷循環(huán),消息越來越多,數(shù)據(jù)順序也被打亂。

怎么解決該問題呢?我們采用數(shù)據(jù)染色方案,只要能夠標識寫入到數(shù)據(jù)庫中的數(shù)據(jù)使data-sync中間件寫入而非業(yè)務(wù)寫入,當下次接收到該binlog數(shù)據(jù)的時候就不需要進行再次消息流轉(zhuǎn)。

所以data-sync中間件要求,每個數(shù)據(jù)庫實例創(chuàng)建一個事務(wù)表,該事務(wù)表tb_transaction只有id、tablename、status、create_time、update_time幾個字段,status默認為0。

再回到上面的問題,業(yè)務(wù)寫一條數(shù)據(jù)到舊實例的一張表,于是產(chǎn)生了一條binlog;data-sync中間件接到binlog后,如下操作:

  1. # 開啟事務(wù),用事務(wù)保證一下sql的原子性和一致性 
  2. start transaction; 
  3. set autocommit = 0
  4. # 更新事務(wù)表status=1,標識后面的業(yè)務(wù)數(shù)據(jù)開始染色 
  5. update tb_transaction set status = 1 where tablename = ${tableName}; 
  6. # 以下是業(yè)務(wù)產(chǎn)生binlog 
  7. insert xxx; 
  8. update xxx; 
  9. update xxx; 
  10. # 更新事務(wù)表status=0,標識后面的業(yè)務(wù)數(shù)據(jù)失去染色 
  11. update tb_transaction set status = 0 where tablename = ${tableName}; 
  12. commit; 

此時data-sync中間件將上面這些語句打包一起提交到新實例,新實例更新數(shù)據(jù)后也會生產(chǎn)對應(yīng)上面語句的binlog;當data-sync中間件再次接收到binlog時,只要判斷遇到tb_transaction表status=1的數(shù)據(jù)開始,后面的數(shù)據(jù)都直接丟棄不要,直到遇到status=0時,再繼續(xù)接收數(shù)據(jù),以此來保證data-sync中間件只會流轉(zhuǎn)業(yè)務(wù)產(chǎn)生的消息。

3.數(shù)據(jù)校驗

數(shù)據(jù)校驗?zāi)K由數(shù)據(jù)校驗服務(wù)data-check模塊來實現(xiàn),主要是基于數(shù)據(jù)庫層面的數(shù)據(jù)對比,逐條核對每一個數(shù)據(jù)字段是否一致,不一致的話會經(jīng)過配置的校驗規(guī)則來進行重試或者報警。

全量校驗

  • 以舊庫為基準,查詢每一條數(shù)據(jù)在新庫是否存在,以及個字段是否一致。

  • 以新庫為基準,查詢每一條數(shù)據(jù)在舊庫是否存在,以及個字段是否一致。

實時校驗

  • 定時任務(wù)每5分鐘校驗,查詢最近5+1分鐘舊庫和新庫更新的數(shù)據(jù),做diff。

  • 差異數(shù)據(jù)進行二次、三次校驗(由于并發(fā)和數(shù)據(jù)延遲存在),三次校驗都不同則報警。

4.數(shù)據(jù)修復(fù)

經(jīng)過數(shù)據(jù)校驗,一旦發(fā)現(xiàn)數(shù)據(jù)不一致,則需要對數(shù)據(jù)進行修復(fù)操作。

數(shù)據(jù)修復(fù)有兩種方案,一種是適用于大范圍的數(shù)據(jù)不一致,采用重置kafka offset的方式,重新消費數(shù)據(jù)消息,將有問題的數(shù)據(jù)進行覆蓋。

第二種是適用于小范圍的數(shù)據(jù)不一致,數(shù)據(jù)修復(fù)模塊自動拉取數(shù)據(jù)校驗data-check模塊記錄的sls日志,進行日志解析,生成同步語句,更新到目標庫。

四、灰度切換數(shù)據(jù)源

1.整體灰度切流方案

整體灰度方案:SP+用戶緯度來實現(xiàn),SP緯度:依靠灰度環(huán)境切量來做,用戶緯度:依賴用戶ID后四位百分比切流。

灰度切量的過程一定要配合停寫(秒級),為什么要停寫,因為數(shù)據(jù)同步存在一定延遲(正常毫秒級),而所有業(yè)務(wù)操作一定要保障都在一個實例上,否則在舊庫中業(yè)務(wù)剛剛修改了一條數(shù)據(jù),此時切換到新庫如果數(shù)據(jù)還沒有同步過來就是舊數(shù)據(jù)會有數(shù)據(jù)一致問題。所以步驟應(yīng)該是:

  • 先停寫

  • 觀察數(shù)據(jù)全部同步完

  • 在切換數(shù)據(jù)源

  • 最后關(guān)閉停寫,開始正常業(yè)務(wù)寫入

2.切流前準備——ABC驗證

雖然在切流之前,在測試環(huán)境進過了大量的測試,但是測試環(huán)境畢竟和生產(chǎn)環(huán)境不一樣,生產(chǎn)環(huán)境數(shù)據(jù)庫一旦出問題就可能是滅頂之災(zāi),雖然上面介紹了數(shù)據(jù)校驗和數(shù)據(jù)修復(fù)流程,但是把問題攔截在發(fā)生之前是做服務(wù)穩(wěn)定性最重要的工作。

因此我們提出了ABC驗證的概念,灰度環(huán)境ABC驗證準備:

  • 新購買兩套數(shù)據(jù)庫實例,當前訂單庫為A,新買的兩套為分別為B、C

  • 配置DTS從A單項同步到B(dts支持同構(gòu)不需要rehash的數(shù)據(jù)同步),B做為舊庫的驗證庫,C庫做為新庫

  • 用B和C做為生產(chǎn)演練驗證

  • 當B和C演練完成之后,在將A和C配置為正式的雙向同步

3.灰度切流步驟

具體灰度方案和數(shù)據(jù)源切換流程:

  • 代碼提前配置好兩套數(shù)據(jù)庫分庫分表規(guī)則。

  • 通過ACM配置灰度比例。

  • 代碼攔截mybatis請求,根據(jù)用戶id后四位取模,和ACM設(shè)置中設(shè)置的灰度比例比較,將新庫標識通過ThreadLocal傳遞到分庫分表組件。

  • 判斷當前是否有灰度白名單,如命中將新庫標識通過ThreadLocal傳遞到分庫分表組件。

  • 分庫分表組件根據(jù)ACM配置拿到新分庫的分表規(guī)則,進行數(shù)據(jù)庫讀寫操作。

  • 切量時會配合ACM配置灰度比例命中的用戶進行停寫。

五、總結(jié)

整個數(shù)據(jù)遷移過程還是比較復(fù)雜的,時間也不是很充裕(過程中還穿插著十一全鏈路壓測改造),在有限的時間內(nèi)集大家之力重復(fù)討論挖掘可能存在的問題,然后論證解決方案,不放過任何一個可能出現(xiàn)問題的環(huán)節(jié),還是那句話,把問題攔截在發(fā)生之前是做服務(wù)穩(wěn)定性最重要的工作。

過程中的細節(jié)還是很多的,從數(shù)據(jù)遷移的準備工作到數(shù)據(jù)同步測試,從灰度流程確定到正式生產(chǎn)切換,尤其是結(jié)合業(yè)務(wù)和數(shù)據(jù)的特點,有很多需要考慮的細節(jié),文中沒有一一列出。

最終經(jīng)過近兩個月的緊張工作,無業(yè)務(wù)代碼侵入、零事故、平穩(wěn)地完成了擴分庫分表和數(shù)據(jù)遷移的工作。

 

責任編輯:張燕妮 來源: 阿里技術(shù)
相關(guān)推薦

2023-11-14 08:44:55

數(shù)倍數(shù)據(jù)

2018-03-14 09:49:35

數(shù)據(jù)庫遷移

2019-04-25 10:40:02

分庫分表MySQL數(shù)據(jù)庫

2024-11-15 09:54:58

2022-02-23 08:55:06

數(shù)據(jù)遷移分庫分表數(shù)據(jù)庫

2019-07-29 10:18:17

數(shù)據(jù)庫高可用架構(gòu)

2020-07-28 09:04:09

NewSQL分庫分表

2019-01-29 19:24:06

分庫分表數(shù)據(jù)庫

2020-07-30 17:59:34

分庫分表SQL數(shù)據(jù)庫

2009-01-18 11:11:36

InnoDBMySQLMVCC

2022-07-11 08:16:47

NewSQL關(guān)系數(shù)據(jù)庫系統(tǒng)

2024-11-22 15:32:19

2019-11-12 09:54:20

分庫分表數(shù)據(jù)

2019-01-16 14:00:54

數(shù)據(jù)庫分庫分表

2019-10-10 09:35:01

分庫分表JDK

2024-08-02 15:47:28

數(shù)據(jù)庫分庫分表

2025-07-03 08:21:16

2022-12-05 07:51:24

數(shù)據(jù)庫分庫分表讀寫分離

2018-06-01 14:00:00

數(shù)據(jù)庫MySQL分庫分表

2022-06-15 07:32:24

數(shù)據(jù)庫分庫分表
點贊
收藏

51CTO技術(shù)棧公眾號

jizz国产在线| 波多野结衣片子| 欧美人动性xxxxz0oz| 国产成人a级片| 81精品国产乱码久久久久久| av网在线播放| 欧美一级片网址| 日韩欧美在线观看视频| 国产精品av免费| 香蕉视频国产在线| 精品一区二区三区的国产在线播放| 美日韩精品视频免费看| 国产精品亚洲无码| 日日夜夜精品视频| 欧美性生交片4| 免费极品av一视觉盛宴| 国产特黄在线| 成人在线视频首页| 国产日韩在线播放| 日韩字幕在线观看| 911精品美国片911久久久| 精品无人区乱码1区2区3区在线| 男女污污的视频| 超碰97国产精品人人cao| 中文字幕av资源一区| 久久久久久国产精品免费免费| 一级黄色片网站| 亚洲专区一区二区三区| 欧美黑人视频一区| 手机免费观看av| 一呦二呦三呦国产精品| 亚洲成色999久久网站| 性欧美极品xxxx欧美一区二区| 里番在线播放| 亚洲日本在线a| 日韩中文字幕一区| 日本一级在线观看| 成人av资源在线观看| 91亚洲精品久久久| 最近中文字幕免费在线观看| 毛片一区二区| 欧美在线一级va免费观看| 久久黄色小视频| 亚洲第一天堂| 俺去亚洲欧洲欧美日韩| 免费在线观看a视频| 香蕉视频一区二区三区| 亚洲精品久久久久久久久久久| 国产乱码一区二区三区四区| 成人一级视频| 欧美视频一区在线观看| 国产精品人人妻人人爽人人牛| 国产在线精彩视频| 香蕉影视欧美成人| 日本欧美视频在线观看| 欧美xxxx做受欧美88bbw| 亚洲人成伊人成综合网小说| 天天做天天爱天天高潮| 青青青青在线| 亚洲精品亚洲人成人网在线播放| 中文字幕一区二区三区有限公司 | 粉嫩av性色av蜜臀av网站| 国产精品探花在线观看| 亚洲美女又黄又爽在线观看| 成年人网站免费在线观看 | 日韩精品一区二区三区在线观看 | 一色桃子一区二区| 免费看的黄色网| 91视频久久| 另类视频在线观看| 欧美精品99久久久| 在线成人黄色| 欧美一级片免费在线| 欧美一级淫片免费视频黄| 久久亚洲欧洲| 国产免费一区二区三区香蕉精| 在线免费观看高清视频| 国产一区二区在线视频| 91在线短视频| 特黄aaaaaaaaa真人毛片| 久久免费视频一区| 亚洲精品免费在线看| 精品视频在线一区二区| 亚洲在线成人精品| 国产极品粉嫩福利姬萌白酱 | 黑丝美女久久久| 日韩手机在线观看视频| 国产亚洲精彩久久| 日韩午夜在线影院| 中出视频在线观看| 日韩极品一区| 久久免费国产视频| 超碰在线观看91| 国产精一区二区三区| 精品免费国产| 欧美激情午夜| 午夜成人免费电影| 久久婷五月综合| 2020最新国产精品| 亚洲天堂av在线免费| 日韩在线中文字幕视频| 99国产精品久久久久久久 | 日韩在线观看一区二区三区| 亚洲高清av在线| 日本猛少妇色xxxxx免费网站| 欧美va天堂在线| 欧洲亚洲免费视频| av手机免费看| 国产网站一区二区| 欧妇女乱妇女乱视频| 国产精品高清乱码在线观看| 日韩免费成人网| 欧美激情视频二区| 日韩视频在线一区二区三区| 国产欧美久久一区二区| 无码精品在线观看| 亚洲三级电影网站| 成人精品视频一区二区| 国产伦理久久久久久妇女 | caoporn-草棚在线视频最| 在线视频你懂得一区二区三区| 亚洲欧美日韩中文字幕在线观看| 精品99在线| 97免费在线视频| 99久久久久久久| 中文在线免费一区三区高中清不卡| 热99这里只有精品| 2020最新国产精品| 欧美成人午夜激情| 影音先锋国产资源| 久久久久久久久97黄色工厂| 免费拍拍拍网站| 日本超碰一区二区| 精品国偷自产在线| 亚洲在线免费观看视频| 国产亚洲短视频| 国产乱子夫妻xx黑人xyx真爽| 高清日韩中文字幕| 久久久久久久激情视频| 国产视频手机在线观看| 国产精品久久久久久久午夜片 | 日韩亚洲视频| 国精产品一区一区三区四川| 亚洲乱码国产乱码精品精天堂| 国产一级做a爱免费视频| 国产一区二区在线观看免费| 在线不卡日本| 国产精品久久久久久妇女| 亚洲精品日韩欧美| 一级片中文字幕| 97久久久精品综合88久久| 成年人看的毛片| www.亚洲一二| 久久久久免费精品国产| 性欧美videos另类hd| 亚洲精品国产a| 免费在线观看日韩av| 国产精品二区影院| 国产在线视频欧美一区二区三区| 丁香花在线观看完整版电影| 亚洲国产精品大全| 日韩 欧美 综合| 91蝌蚪porny成人天涯| 各处沟厕大尺度偷拍女厕嘘嘘| 色爱av综合网| 国产成人a亚洲精品| av在线电影网| 制服.丝袜.亚洲.另类.中文| 久草中文在线视频| 99视频精品免费视频| 国产日韩一区二区在线观看| 欧美亚洲国产一区| 91网站在线看| wwwwxxxx在线观看| 日韩精品日韩在线观看| 无码久久精品国产亚洲av影片| 欧美激情在线看| 一级片免费在线观看视频| 欧美精品黄色| 欧美激情导航| 婷婷精品久久久久久久久久不卡| 欧美老少配视频| 西西人体44www大胆无码| 91九色02白丝porn| www青青草原| 99re热视频精品| 国产精品v日韩精品v在线观看| 欧美一区精品| 久久久神马电影| avtt久久| 91成人在线视频| 麻豆tv免费在线观看| 亚洲国产精品国自产拍av秋霞| 久久精品久久久久久久| 亚洲精品免费在线播放| 美国黄色a级片| 激情综合亚洲精品| 人妻精品无码一区二区三区| 色爱综合网欧美| 国精产品一区二区| 一区二区三区日本视频| 日本欧美精品在线| 中文字幕有码在线观看| 亚洲天堂av在线免费观看| 精品女同一区二区三区| 色香蕉成人二区免费| 亚洲二区在线播放| 91丝袜美腿高跟国产极品老师 | 中文字幕日韩亚洲| 2018日韩中文字幕| av在线影院| 亚洲图片欧洲图片av| 亚洲高清精品视频| 欧美日韩综合不卡| av黄色在线播放| 一区二区三区影院| 国产三级在线观看完整版| 成人爱爱电影网址| 青青草原播放器| 日本午夜精品视频在线观看| 香港三级韩国三级日本三级| 91精品高清| 亚洲精品第一区二区三区| 欧美网色网址| 成人在线观看网址| 9999精品免费视频| 国产精品∨欧美精品v日韩精品| 黄污视频在线观看| 精品自拍视频在线观看| 日本在线观看www| 在线视频日韩精品| 国产在线高清| 精品视频在线播放免| 熟妇人妻av无码一区二区三区| 日韩美女天天操| 国产夫妻在线观看| 91精品国产综合久久精品图片 | 久久免费99精品久久久久久| 都市激情久久| 高清视频在线观看一区| 日韩一区免费| 福利视频久久| 午夜久久av| 99久久精品久久久久久ai换脸| 成人51免费| 成人免费网站在线看| 婷婷激情成人| 亚洲a成v人在线观看| 精品视频一区二区三区| 亚洲a中文字幕| 美女国产精品久久久| 国产成人一区二| 韩日精品一区| 国产精品视频在线观看| 久久99国产精品二区高清软件| 国产精品久久在线观看| 性欧美1819sex性高清| 国产成人精品日本亚洲| 成人看片毛片免费播放器| 成人国产精品日本在线| www.久久热| 91av免费看| 精品在线网站观看| 久久精品综合一区| 禁断一区二区三区在线| 色就是色欧美| 香蕉av一区二区| 黄色一级片黄色| 亚洲麻豆av| 日韩无套无码精品| 精品一区二区三区免费播放| 中国老熟女重囗味hdxx| 成人精品在线视频观看| 欧美特黄一区二区三区| 欧美激情一区二区三区蜜桃视频| 日本美女黄色一级片| 夜夜精品视频一区二区| 四虎精品永久在线| 欧美午夜精品一区二区三区| 国产成人精品a视频| 日韩h在线观看| 国产特黄在线| 欧美日本中文字幕| 手机av在线| 成人疯狂猛交xxx| 麻豆视频一区| 一本久久a久久精品vr综合| 欧美日本在线| 国产精品无码av无码| 国产高清精品在线| 人妻少妇精品视频一区二区三区| 国产欧美一区二区在线观看| a在线视频播放观看免费观看| 婷婷中文字幕一区三区| 亚洲一级视频在线观看| 亚洲黄色有码视频| 日韩免费网站| 91成人福利在线| 国产精品一区二区三区av| 久久99精品久久久久久青青日本 | 国产女教师bbwbbwbbw| 美女视频一区免费观看| 日本少妇激三级做爰在线| 91在线国产福利| 日日噜噜夜夜狠狠久久波多野| 欧美日韩中文字幕日韩欧美| 国产精品久久无码一三区| 精品一区二区三区四区| 91cn在线观看| 国产精品久久国产精品99gif| 国产 日韩 欧美 综合 一区| 正在播放一区| 日韩精品每日更新| 日本少妇xxxx| 亚洲欧美日韩久久| 国产成人av免费| 日韩av中文字幕在线| 肉肉视频在线观看| 国产主播在线一区| 国产乱码精品一区二区亚洲| 又大又硬又爽免费视频| 久久99精品久久久久久国产越南| 亚洲综合网在线观看| 午夜精品视频在线观看| 精品国产乱码一区二区三| 中文字幕亚洲欧美| 日韩成人动漫| 久久久福利视频| 亚洲第一区色| 成年人看片网站| 国产精品久99| 中文字幕第315页| 国产一区二区三区直播精品电影| 亚洲妇女成熟| 精品久久久久久一区| 国精品一区二区三区| 伊人精品视频在线观看| 国产精品久久久久久久午夜片| 国产精品高清无码| 国产午夜精品免费一区二区三区| 中文字幕在线官网| 久久精品成人一区二区三区蜜臀| 亚洲精品男同| 亚洲男女在线观看| 亚洲第一主播视频| 人人妻人人澡人人爽精品日本| 欧美激情国内偷拍| 国产伦精品一区二区三区在线播放 | 欧美成年人视频在线观看| 欧美激情一区二区三区在线| 中文字幕一区二区人妻痴汉电车 | 日本不卡影院| 国产成人精品免费视频大全最热| 韩日精品在线| 亚洲精品乱码久久久久久蜜桃图片| 亚洲狠狠爱一区二区三区| 免费看黄色一级视频| 97视频在线观看网址| 西野翔中文久久精品国产| 成年人黄色片视频| 欧美激情在线观看视频免费| 一区二区小视频| 深夜福利一区二区| 久久女人天堂| 黄色污污在线观看| 丁香激情综合国产| 可以免费看的av毛片| 国产亚洲精品高潮| 久久人体av| www.亚洲成人网| 97aⅴ精品视频一二三区| 日日夜夜狠狠操| 日韩在线观看免费网站| 日韩免费高清视频网站| 国产主播自拍av| 久久久综合视频| 91肉色超薄丝袜脚交一区二区| 久精品免费视频| 欧美日韩看看2015永久免费 | 亚洲欧美日韩成人| 日韩久久一区| 欧美久久久久久久久久久久久| 久久先锋影音av鲁色资源网| 国产又黄又粗又硬| 国外成人在线播放| 色婷婷色综合| 特级特黄刘亦菲aaa级| 91极品美女在线| a篇片在线观看网站| 久久久久免费网| 精品亚洲国内自在自线福利| 日韩久久精品视频| 中文字幕在线日韩| 欧美国产极品| 依人在线免费视频| 欧美天天综合色影久久精品| 成人黄色网址| 日韩av高清| 成人动漫一区二区| 中文字幕乱码中文字幕|