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

千萬級日訂單下,餓了么異地多活數(shù)據(jù)實(shí)施DRC的應(yīng)用實(shí)踐

數(shù)據(jù)庫 MySQL
我主要分享餓了么多活的底層數(shù)據(jù)實(shí)施,和大家介紹在整個多活的設(shè)計和實(shí)施過程中,我們是怎么處理異地數(shù)據(jù)同步的,而這個數(shù)據(jù)同步組件在我們公司內(nèi)部稱之為 DRC。

[[198675]]

今天,我主要分享餓了么多活的底層數(shù)據(jù)實(shí)施,和大家介紹在整個多活的設(shè)計和實(shí)施過程中,我們是怎么處理異地數(shù)據(jù)同步的,而這個數(shù)據(jù)同步組件在我們公司內(nèi)部稱之為 DRC。

[[198676]]

餓了么異地多活背景

在講 DRC 或者講數(shù)據(jù)復(fù)制之前,先跟大家回顧一下異地多活的背景。

去年,我們在做多活調(diào)研的時候,整個公司所有的業(yè)務(wù)服務(wù)都是部署在北京機(jī)房,服務(wù)器大概有四千多臺,災(zāi)備的機(jī)器是在云端,都是虛擬機(jī),大概有三千多臺。

當(dāng)時,我們峰值的業(yè)務(wù)訂單數(shù)量已經(jīng)接近了千萬級別,但是基本上北京機(jī)房(IDC)已經(jīng)無法再擴(kuò)容了,也就是說我們沒有空余的機(jī)架,沒有辦法添加新的服務(wù)器了,必須要再建一個新的機(jī)房。

于是,我們在上海新建一個機(jī)房,在今年的 4 月份投入使用,所以在上海機(jī)房建成之后,異地多活項目能具備在生產(chǎn)環(huán)境上進(jìn)行灰度。

異地多活的底層數(shù)據(jù)同步實(shí)施

這是異地多活的底層數(shù)據(jù)同步實(shí)施的一個簡單的概要圖,大家可以看到,我們有兩個機(jī)房,一個是北京機(jī)房,一個是上海機(jī)房。

在這個時候,我們期望目標(biāo)是北方所有的用戶請求、用戶流量全部進(jìn)入北京機(jī)房,南方所有的用戶請求、用戶流量進(jìn)入上海機(jī)房。

困難的地方是,這個用戶有可能今天在北方,明天在南方,因為他在出差,還有就是存在一些區(qū)域在我們劃分南北 shard 的時候,它是在邊界上面的,這種情況會加劇同一個用戶流量在南北機(jī)房來回漂移的發(fā)生。

還有個情況,當(dāng)我們某個機(jī)房出現(xiàn)故障,如核心交換機(jī)壞掉導(dǎo)致整個機(jī)房服務(wù)不可用,我們希望可以把這個機(jī)房的所有流量快速切到另外的數(shù)據(jù)中心去,從而提高整個餓了么服務(wù)的高可用性。

以上所有的因素,都需要底層數(shù)據(jù)庫的數(shù)據(jù)之間是打通的。而今天我所要分享的 DRC 項目就是餓了么異地 MySQL 數(shù)據(jù)庫雙向復(fù)制的組件服務(wù),即上圖中紅色框標(biāo)記的部分。

異地多活對底層數(shù)據(jù)的要求

我們在前期調(diào)研 DRC 實(shí)現(xiàn)的時候,主要總結(jié)了的三點(diǎn),而在后續(xù)的設(shè)計和實(shí)施當(dāng)中,基本上也是圍繞這三點(diǎn)來去解決問題:

  • 我們覺得是延遲要低,當(dāng)時給自己定的目標(biāo)是秒級的,我們希望在北京機(jī)房或上海機(jī)房寫入的數(shù)據(jù),需要在 1 秒鐘之內(nèi)同步到上海或者北京機(jī)房。整個延遲要小于 1 秒鐘。
  • 我們要確保數(shù)據(jù)的一致性,數(shù)據(jù)是不能丟也不能錯的,如果出現(xiàn)數(shù)據(jù)的不一致性,可能會給上層的業(yè)務(wù)服務(wù)、甚至給產(chǎn)品帶來災(zāi)難性的問題。
  • 保證整個復(fù)制組件具備高吞吐處理能力,指的是它可以面對各種復(fù)雜的環(huán)境,比方說業(yè)務(wù)正在進(jìn)行數(shù)據(jù)的批量操作、數(shù)據(jù)的維護(hù)、數(shù)據(jù)字典的變更情況。

這些會產(chǎn)生瞬間大量的變更數(shù)據(jù),DRC 需要面對這種情況,需要具備高吞吐能力去扛住這些情況。

數(shù)據(jù)低延遲和一致性之間,我們認(rèn)為主要從數(shù)據(jù)的并發(fā)復(fù)制這個策略上去解決,安全、可靠、高效的并發(fā)策略,才能保證數(shù)據(jù)是低延遲的復(fù)制,在大量數(shù)據(jù)需要復(fù)制時,DRC 并發(fā)處理才能快速在短時間內(nèi)解決。

數(shù)據(jù)一致性,用戶的流量可能被路由到兩個機(jī)房的任何一個機(jī)房去,也就是說同樣一條記錄可能在兩個機(jī)房中被同時更改,所以 DRC 需要做數(shù)據(jù)沖突處理,最終保持?jǐn)?shù)據(jù)一致性,也就是數(shù)據(jù)不能出錯。

如果出現(xiàn)沖突且 DRC 自身無法自動處理沖突,我們還提供了一套數(shù)據(jù)沖突訂正平臺,會要求業(yè)務(wù)方一道來制定數(shù)據(jù)訂正規(guī)則。

高吞吐剛才已經(jīng)介紹了,正常情況用戶流量是平穩(wěn)的,DRC 是能應(yīng)對的,在 1 秒鐘之內(nèi)將數(shù)據(jù)快速復(fù)制到對端機(jī)房。

當(dāng) DBA 對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行數(shù)據(jù)歸檔、大表 DDL 等操作時,這些操作會在短時間內(nèi)快速產(chǎn)生大量的變更數(shù)據(jù)需要我們復(fù)制,這些數(shù)據(jù)可能遠(yuǎn)遠(yuǎn)超出了 DRC 的最大處理能力,最終會導(dǎo)致 DRC 復(fù)制出現(xiàn)延遲。

所以 DRC 與現(xiàn)有的 DBA 系統(tǒng)需要進(jìn)行交互,提供一種彈性的數(shù)據(jù)歸檔機(jī)制,如當(dāng) DRC 出現(xiàn)大的復(fù)制延遲時,終止歸檔 JOB,控制每輪歸檔的數(shù)據(jù)規(guī)模。

如 DRC 識別屬于大表 DDL 產(chǎn)生的 binlog events,過濾掉這些 events,避免這些數(shù)據(jù)被傳輸?shù)狡渌麢C(jī)房,占用機(jī)房間帶寬資源。

以上是我們在實(shí)施異地多活的數(shù)據(jù)層雙向復(fù)制時對 DRC 項目提出的主要要求。

數(shù)據(jù)集群規(guī)模(多活改造前)

這是我們在做多活之前的北京數(shù)據(jù)中心的數(shù)據(jù)規(guī)模,這個數(shù)據(jù)中心當(dāng)時有超過 250 套 MySQL 的集群,一千多臺 MySQL 的實(shí)例,Redis 也超過四百個集群。

DRC 服務(wù)的目標(biāo)對象就是這 250 套 MySQL 集群,因為在正在建設(shè)的第二個數(shù)據(jù)中心里未來也會有對應(yīng)的 250 套 MySQL 集群,我們需要把兩個機(jī)房業(yè)務(wù)對等的集群進(jìn)行數(shù)據(jù)打通。

多活下 MySQL 的用途分類

我們按照業(yè)務(wù)的用途,給它劃分了多種 DB 服務(wù)類型。為什么要總結(jié)這個呢?因為有一些類型,我們是不需要復(fù)制的,所以要甄別出來,首先第一個多活 DB,我們認(rèn)為它的服務(wù)需要做多活的。

比方說支付、訂單、下單,一個機(jī)房掛了,用戶流量切到另外新的機(jī)房,這些業(yè)務(wù)服務(wù)在新的機(jī)房是工作的。

我們把這些多活服務(wù)依賴的 DB 稱為多活 DB,我們優(yōu)先讓業(yè)務(wù)把 DB 改造成多活 DB,DRC 對多活 DB 進(jìn)行數(shù)據(jù)雙向復(fù)制,保障數(shù)據(jù)一致性。

多活 DB 的優(yōu)勢剛才已經(jīng)講了,如果機(jī)房出現(xiàn)故障、核心交換機(jī)出問題,整個機(jī)房垮了,運(yùn)維人員登不進(jìn)機(jī)房機(jī)器,那么我們可以在云端就把用戶流量切到其它的機(jī)房。

有些業(yè)務(wù)對數(shù)據(jù)有強(qiáng)一致性要求,后面我會講到其實(shí) DRC 是沒有辦法做到數(shù)據(jù)的強(qiáng)一致性要求的,它是有數(shù)據(jù)沖突發(fā)生的,需要引入數(shù)據(jù)訂正措施。

業(yè)務(wù)如果對數(shù)據(jù)有強(qiáng)一致性要求,比方說用戶注冊,要求用戶登錄名全局唯一(DB字段上可能加了唯一約束),兩個機(jī)房可能會在同一時間接收了相同用戶登錄名的注冊請求。

這種情況下,DRC 是無法自身解決掉這個沖突,而且業(yè)務(wù)方對這個結(jié)果也是無法接受的,這種 DB 我們會把它歸納到 GlobalDB 里面,它的特性是什么呢?

它的特性是單機(jī)房可寫,多機(jī)房可讀,因為你要保證數(shù)據(jù)的強(qiáng)一致性的話,必須讓所有機(jī)房的請求處理結(jié)果,最終寫到固定的一個機(jī)房中。

這種 DB 的上層業(yè)務(wù)服務(wù),在機(jī)房掛掉之后是有損的。比方說機(jī)房掛了,用戶注冊功能可能就不能使用了。

最后一個非多活 DB,它是很少的,主要集中于一些后端的管理平臺,這種項目本身基本上不是多活的,所以這種 DB 我們不動它,還是采用原生的主備方式。

DRC 總體架構(gòu)設(shè)計

這是 DRC 復(fù)制組件的總體架構(gòu)設(shè)計。我們有一個組件叫 Replicator,它會從 MySQL 集群的 Master 上把 binlog 日志記錄抽取出來,解析 binlog 記錄并轉(zhuǎn)換成我們自定義的數(shù)據(jù),存放到一個超大的 event buffer 里面,event buffer 支持 TB 級別的容量。

在目標(biāo)機(jī)房里,我們會部署一個 Applier 服務(wù),這個服務(wù)啟一個 TCP 長連接到 Replicator 服務(wù),Replicator 會不斷的推送數(shù)據(jù)到 Applier,Applier 通過 JDBC 最終把數(shù)據(jù)寫入到目標(biāo)數(shù)據(jù)庫。

我們會通過一個 Console 控制節(jié)點(diǎn)來進(jìn)行配置管理、部署管理以及進(jìn)行各個組件的 HA 協(xié)調(diào)工作。

DRC Replicator Server

這是 DRC Replicator Server 組件比較細(xì)的結(jié)構(gòu)描述,主要是包含了一個 MetaDB 模塊,MetaDB 主要用來解決歷史的 Binlog 的解析問題。

我們成功解析 Binlog 記錄之后,會把它轉(zhuǎn)換成我們自己定義的一種數(shù)據(jù)結(jié)構(gòu),這種結(jié)構(gòu)相對于原生的結(jié)構(gòu),Size 更小,MySQL binlog event 的定義在 Size 角度上考慮事實(shí)上已經(jīng)很極致了。

但是可以結(jié)合我們自己的特性,我們會把不需要的 event 全部過濾掉(如table_map_event),把可以忽略的數(shù)據(jù)全部忽略掉。我們比對的結(jié)果是需要復(fù)制的 event 數(shù)據(jù)只有原始數(shù)據(jù) Size 的 70%。

DRC Applier Server

往目標(biāo)的 MySQL 集群復(fù)制寫的時候,由 DRC Applier Server 負(fù)責(zé),它會建一個長連接到 Replicator 上去,Replicator PUSH 數(shù)據(jù)給 Applier。

Applier 把數(shù)據(jù)拿到之后做事務(wù)的還原,最后通過 JDBC 把事務(wù)重新寫到目標(biāo) DB 里面,寫的過程當(dāng)中,我們應(yīng)用了并發(fā)的策略。

并發(fā)策略在提供復(fù)制吞吐能力,降低復(fù)制延遲上起到?jīng)Q定的作用,還有冪等也是非常重要的,后面有很多運(yùn)維操作,還有一些 Failover 回退操作,會導(dǎo)致發(fā)生數(shù)據(jù)被重復(fù)處理的情況,冪等操作保障重復(fù)處理數(shù)據(jù)不會發(fā)生問題。

DRC 防止循環(huán)復(fù)制

在做復(fù)制的時候,大家肯定會碰到解決循環(huán)復(fù)制的問題。我們在考慮這個問題的時候,查了很多資料,也問了很多一些做過類似項目的前輩,當(dāng)時我們認(rèn)為有兩大類辦法。

第一大類辦法一開始否決了,因為我們對 MySQL 的內(nèi)核原碼不熟悉,而且時間上也來不及,雖然我們知道通過 MySQL 的內(nèi)核解決回路復(fù)制是最佳的、最優(yōu)的。

靠 DRC 自身解決這個問題,也有兩種辦法:

  • 一種辦法是我們在 Apply 數(shù)據(jù)到目標(biāo) DB 的時候把 binlog 關(guān)閉掉。
  • 另外一種辦法就是寫目標(biāo) DB 的時候在事物中額外增加 checkpoint 表的數(shù)據(jù),用于記錄源 DB的server_id。

后來我們比較了一下,第一個辦法是比較簡單,實(shí)現(xiàn)容易,但是因為 Binlog 記錄沒有產(chǎn)生,導(dǎo)致不支持級聯(lián)復(fù)制,也對后續(xù)的運(yùn)維帶來麻煩。

所以我們最后選擇的是第二個辦法,通過把事務(wù)往目標(biāo) DB 復(fù)制的時候,在事務(wù)中 hack 一條 checkpoint 的數(shù)據(jù)來標(biāo)識事務(wù)產(chǎn)生的原始 server,DRC 在解析 MySQL binlog 記錄時就能正確分辨出數(shù)據(jù)的真正來源。

DRC 數(shù)據(jù)一致性保障

在剛開始研發(fā)、設(shè)計的時候,數(shù)據(jù)一致性保障是我們很頭疼的問題。并不是在一開始就把所有的點(diǎn)都想全了,是在做的過程當(dāng)中出現(xiàn)了問題,一步步解決的,回顧一下,我們大概從三個方面去保證數(shù)據(jù)的一致性:

首先,因為數(shù)據(jù)庫是多活的,我們必須從數(shù)據(jù)中心層面盡可能把數(shù)據(jù)沖突發(fā)生的概率降到最低,避免沖突,怎么避免呢?就是合理的流量切分,你可以按照用戶的維度,按照地域的維度,對流量進(jìn)行拆分。

剛才我們講的,北方用戶的所有數(shù)據(jù)在北京機(jī)房,這些北方用戶的下單、支付等的所有操作數(shù)據(jù)都是在北方機(jī)房產(chǎn)生的,所以用戶在同一個機(jī)房中發(fā)生的數(shù)據(jù)變更操作絕對是安全的。

我們最怕的是同一個數(shù)據(jù)同時或者是在相近的時間里同時在兩個機(jī)房被修改,我們怕的是這個問題,因為這種情況就會引發(fā)數(shù)據(jù)沖突。所以我們通過合理的流量切分,保證絕大部分時候數(shù)據(jù)是不會沖突的。

第二個我們認(rèn)為你要保障數(shù)據(jù)一致性,首先你要確保數(shù)據(jù)不丟,一旦發(fā)生可能數(shù)據(jù)丟失的情況,我們會做一個比較保險的策略,就是把數(shù)據(jù)復(fù)制的時間位置回退,即使重復(fù)處理數(shù)據(jù),也避免丟數(shù)據(jù)的可能。

但是這個時候會帶來數(shù)據(jù)重復(fù)處理的問題,所以數(shù)據(jù)的冪等操作特別重要。

這些都是我們避免數(shù)據(jù)發(fā)生沖突的方法,那沖突實(shí)際上是不可避免的,沖突發(fā)生后,我們怎么解決?

最終采用的辦法是在數(shù)據(jù)庫表上隱含地加一個時間字段(數(shù)據(jù)最后更新時間),這個字段對業(yè)務(wù)是透明的,主要用來輔助 DRC 復(fù)制。

一旦數(shù)據(jù)發(fā)生沖突,DRC 復(fù)制組件可以通過這個時間來判斷兩個機(jī)房或者三個機(jī)房中的哪條數(shù)據(jù)是最后被更新的,最新優(yōu)先的原則,誰最后的修改時間是最新的,就以它為準(zhǔn)。

DRC 數(shù)據(jù)復(fù)制低延遲保障

剛才我們講的是數(shù)據(jù)的一致性,還有一個點(diǎn)非常重要,就是數(shù)據(jù)復(fù)制的低延遲保障。我們現(xiàn)在延遲包括用戶高峰時間也是小于 1 秒的,只有在凌晨之后,各種歸檔、批量數(shù)據(jù)處理、DDL 變更等操作會導(dǎo)致 DRC 延遲出現(xiàn)毛刺和抖動。

如果你的延遲很高的話,第一在做流量切換時,因為運(yùn)維優(yōu)先保障產(chǎn)品服務(wù)的可用性,在不得以的情況會不考慮你的復(fù)制延遲,不會等數(shù)據(jù)復(fù)制追平之后再切流量,所以你的數(shù)據(jù)沖突的概率就變的很大。

為了保證復(fù)制低延遲,我們認(rèn)為主要策略、或者你在實(shí)施時主要的做法還是并發(fā),因為你只有用高效的安全的并發(fā)復(fù)制策略,服務(wù)才有足夠的吞吐處理能力,而不至于你的復(fù)制通道因為遇到“海量”數(shù)據(jù)而導(dǎo)致數(shù)據(jù)積壓,從而加劇了復(fù)制延遲的產(chǎn)生。

我們一開始采用的基于表級別的并發(fā),但是表級別的并發(fā)在很多情況下,并發(fā)策略沒辦法被有效的利用。

比方說有的業(yè)務(wù)線的數(shù)據(jù)庫可能 90% 的數(shù)據(jù)集中在一張表或者是幾個表里面,而大部分表數(shù)據(jù)量很小,那基于表的并發(fā)策略就并發(fā)不起來了。我們現(xiàn)在跑的是基于行級別的并發(fā),這種并發(fā)它更能容忍和適應(yīng)很多場景。

DRC & MySQL Master切換

這個是 DRC 復(fù)制組件與 MySQL 集群的關(guān)系關(guān)聯(lián)圖,一旦 MySQL 集群里面的 Master 發(fā)生了主備切換,原來的 Master 掛了,DRC 怎么處理?

目前的解決方案是 DBA 系統(tǒng)的 MHA 工具會通知 DRC 控制中心,DRC 的控制中心會找到對應(yīng)的復(fù)制鏈路,然后把復(fù)制鏈路從老的 Master 切到新的 Master。

但是關(guān)鍵點(diǎn)是 MHA 在通知之前先把老的 Master 設(shè)置為不可寫,阻斷 DRC 可能往老的 Master 繼續(xù)寫數(shù)據(jù)。

DRC 線上運(yùn)行狀況(規(guī)模)

這個是我們 DRC 上線之后的運(yùn)行狀況。現(xiàn)在大概有將近 400 多條復(fù)制鏈路。這個復(fù)制鏈路是指單向的鏈路。我們提供的消息訂閱大概有 17 個業(yè)務(wù)方接入,每天產(chǎn)生超過 1 億條的消息。

DRC 線上運(yùn)行狀況(性能)

這是 DRC 線上運(yùn)行的一個性能監(jiān)控快照,我們可以看到,它是上午 11 點(diǎn)多到 12 點(diǎn)多的一個小時的性能,你會發(fā)現(xiàn)其實(shí)有一個 DB 是有毛刺的,有一個復(fù)制鏈路有毛刺,復(fù)制延遲最高達(dá)到 4s,但是大部分的復(fù)制鏈路的延遲大概也是在 1 秒或 1 秒以下。

[[198678]]

陳永庭

餓了么框架工具部高級架構(gòu)師

主要負(fù)責(zé) MySQL 異地雙向數(shù)據(jù)復(fù)制,支撐餓了么異地多活項目。曾就職于 WebEx、Cisco、騰訊等公司。

責(zé)任編輯:武曉燕 來源: DBAplus社群
相關(guān)推薦

2018-01-03 09:57:19

異地雙活數(shù)據(jù)庫

2018-04-02 09:33:03

多活技術(shù)架構(gòu)運(yùn)維

2017-12-05 15:03:45

人工智能餓了么大數(shù)據(jù)

2021-02-04 10:00:09

異地多中心容災(zāi)

2022-01-10 08:17:40

異地設(shè)計實(shí)踐

2023-11-28 07:45:48

Rust自動化測試

2017-11-08 13:53:35

餓了么程炎嶺多活

2018-08-30 09:43:11

DBA數(shù)據(jù)庫運(yùn)維

2021-04-23 09:55:27

技術(shù)開發(fā)實(shí)踐

2015-03-31 18:19:37

餓了么動畫效果

2024-04-26 00:28:14

異地多活架構(gòu)

2017-12-22 09:21:02

API架構(gòu)實(shí)踐

2020-11-20 09:23:01

高可用異地淘寶

2018-11-29 09:36:56

大數(shù)據(jù)調(diào)度系統(tǒng)

2017-07-21 14:48:47

AI物流O2O

2024-08-12 08:04:00

2019-03-18 10:32:33

容災(zāi)雙活同城

2018-05-02 14:53:08

超融合云途騰訂單

2022-09-22 09:24:01

架構(gòu)改造

2016-08-26 22:36:18

大數(shù)據(jù)
點(diǎn)贊
收藏

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

成人免费在线观看av| 九色porny在线| 国产亚洲精品bv在线观看| 亚洲区一区二区| 三级黄色片播放| 91福利在线免费| 亚洲国产精品二十页| 91在线无精精品一区二区| 亚洲黄色三级视频| 国产精品久久久久久影院8一贰佰| 日韩免费一区二区| 成人免费视频久久| 久久久123| 中文字幕av一区二区三区高| 国产精品乱码| 国产又粗又黄又爽的视频| 亚洲精品四区| 欧美成人精品一区二区三区| 六月婷婷七月丁香| 成人动态视频| 7777女厕盗摄久久久| 成年人观看网站| 天堂亚洲精品| 国产精品国产三级国产aⅴ原创| 精品不卡在线| 亚洲av无码国产精品永久一区| 六月天综合网| 97超级碰在线看视频免费在线看 | 91亚洲精品视频在线观看| 在线免费观看日本一区| 毛片在线视频播放| 欧美aaa免费| 亚洲免费色视频| 亚洲一区二区三区四区中文| 久久久影视精品| 成人激情五月天| 亚洲图片久久| 日韩精品www| 亚洲精品国产成人av在线| 蜜桃精品视频| 日韩欧美亚洲另类制服综合在线 | 免费一级片在线观看| 欧美丰满日韩| 色妞在线综合亚洲欧美| 美国精品一区二区| 四虎成人精品永久免费av九九| 亚洲欧洲日本专区| 最近中文字幕在线mv视频在线| 免费观看成人www动漫视频| 精品蜜桃在线看| 制服.丝袜.亚洲.中文.综合懂| 欧美一区在线观看视频| 欧美一区二区三区免费大片 | 白白在线精品| 精品久久国产老人久久综合| wwwxx日本| 卡一精品卡二卡三网站乱码 | 91九色露脸| 国产黄色片网站| 国产成人亚洲综合a∨猫咪| 99国产视频| 好吊色一区二区| www.欧美日韩国产在线| 国内精品二区| 国产综合在线观看| 欧美激情一区二区三区蜜桃视频| 深田咏美在线x99av| 午夜在线视频播放| 亚洲女同ⅹxx女同tv| 一级特黄妇女高潮| 国偷自产av一区二区三区麻豆| 日本激情在线观看| 亚洲欧洲综合另类| 成人在线国产视频| 三妻四妾的电影电视剧在线观看| 日韩欧美国产黄色| 中文字幕22页| jizzjizzjizz欧美| 亚洲欧美视频在线| 中文字幕第69页| 欧美国产三区| 欧美自拍大量在线观看| 五月天中文字幕| 国产乱码精品一区二区三| 国产精品一区而去| 国产系列在线观看| 亚洲日穴在线视频| www.爱色av.com| 日韩午夜电影免费看| 欧美成人伊人久久综合网| 国产网站无遮挡| 日韩在线不卡| 国语自产精品视频在线看一大j8 | 久久99精品久久久久久水蜜桃| 精彩国产在线| 亚洲黄色尤物视频| 无遮挡又爽又刺激的视频| 精品国产三级| 亚洲区中文字幕| 九九精品在线观看视频| 日韩不卡一区二区三区| 99国产在线视频| 草草影院在线观看| 午夜私人影院久久久久| 亚洲这里只有精品| 啪啪国产精品| 欧美巨乳美女视频| 无码人妻一区二区三区线 | xxxx日本免费| 欧美性色综合| 国产精品男女猛烈高潮激情| 欧美 日韩 国产 成人 在线| 精品久久av| 国产成人在线色| 午夜欧美性电影| 极品av在线| 日韩欧美在线不卡| 亚洲色图27p| 免费在线播放第一区高清av| av成人午夜| 黄色在线观看网站| 欧美撒尿777hd撒尿| 日本黄色录像片| 激情欧美一区二区三区| 成人精品福利视频| av在线中文| 一本大道久久a久久综合婷婷| 年下总裁被打光屁股sp| 亚洲欧美偷拍自拍| 国产精品一区久久| av在线免费播放网站| 日韩欧美999| 色综合久久五月| 好看的日韩av电影| 91嫩草免费看| av中文字幕在线播放| 69久久夜色精品国产69蝌蚪网 | 亚洲欧洲av另类| 污色网站在线观看| 精品一区av| 国产精品高精视频免费| 伦理片一区二区三区| 欧美日韩亚洲激情| 波多野结衣 在线| 亚洲女人av| 欧美日韩免费高清| 瑟瑟视频在线看| 精品亚洲一区二区三区在线播放| 日韩成人av毛片| 成人av电影在线观看| 亚洲国产精品无码av| 国产精品色在线网站| 久久免费国产视频| 特黄视频在线观看| 动漫精品一区二区| 三级黄色片网站| 日日欢夜夜爽一区| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 91九色综合| 精品国内自产拍在线观看| 国产精品怡红院| 理论片中文字幕| 久久精品视频在线免费观看| 日韩av一二三四| 成人激情开心网| 91久久精品国产91久久| caoporn免费在线视频| 欧美成人精品福利| 日韩精品视频免费播放| 久久精品这里都是精品| 五月婷婷六月丁香激情| 影视一区二区| 精品久久精品久久| 不卡一二三区| xxxxx成人.com| 蜜桃91麻豆精品一二三区| 欧美日韩另类字幕中文| 久久久久亚洲AV成人无在 | 欧美日韩人人澡狠狠躁视频| av男人的天堂av| 国产精品资源在线看| 国产素人在线观看| 精品视频久久| 91pron在线| 日本综合字幕| 欧美成人合集magnet| 亚洲欧美一区二区三| 欧美日韩一区中文字幕| 久久艹精品视频| 91亚洲精华国产精华精华液| 日韩肉感妇bbwbbwbbw| 欧美日韩三级| 日韩精品在在线一区二区中文| 一区二区三区无毛| 992tv在线成人免费观看| 日韩专区在线| 日韩精品中文字幕视频在线| 国产一区二区波多野结衣| 精品国产福利视频| 久久精品亚洲a| 26uuu精品一区二区三区四区在线| 老司机午夜性大片| 蜜桃伊人久久| 欧美高清中文字幕| 欧美熟乱15p| 久久艹中文字幕| 日韩激情精品| 国产精品久久久久久久美男| 99thz桃花论族在线播放| 色偷偷888欧美精品久久久| 在线播放av网址| 日本精品在线播放| 国产精品久久久999| 国产盗摄精品一区二区酒店| 色爱av美腿丝袜综合粉嫩av | 99精品视频免费在线观看| 天天影视色综合| 丝袜国产日韩另类美女| 黄色一级片在线看| 欧美一区国产在线| 一区二区三区的久久的视频| 国产精品亚洲二区| 精品国产乱码久久久久久郑州公司| 韩国三级大全久久网站| 国产精品永久在线| 日本成人片在线| 欧美与欧洲交xxxx免费观看| 国产丝袜在线观看视频| 久久久国产精品x99av| 欧美日韩国产综合视频| 日韩av影视综合网| 男人天堂网在线视频| 欧美一级高清片| 国产又粗又黄又爽视频| 欧美日韩国产综合久久| 夜夜躁日日躁狠狠久久av| 欧美日韩一区二区三区在线免费观看| 国产在线综合网| 亚洲国产精品视频| 成人免费毛片东京热| 中文字幕永久在线不卡| 激情无码人妻又粗又大| 国产精品少妇自拍| 欧美福利在线视频| 日韩理论片中文av| 国产成人免费在线观看视频| 国产精品视频在线看| 长河落日免费高清观看| 中文一区二区在线观看| 任你操精品视频| 成人免费视频在线观看| 天海翼在线视频| 亚洲欧美激情小说另类| 欧美成人综合色| 亚洲成人免费在线| 久久久久久久久久影院| 欧美午夜www高清视频| 久久久精品毛片| 精品视频999| 国产乱码久久久| 精品久久99ma| 四虎在线免费看| 亚洲视频网站在线观看| 日本在线www| 蜜臀久久久99精品久久久久久| 国产精品丝袜高跟| 国产精品美女久久久久| 成人激情av| 免费av一区| 亚洲在线欧美| 欧美日韩ab| 无码aⅴ精品一区二区三区浪潮| 日韩黄色片在线观看| 中日韩av在线播放| 国产91精品精华液一区二区三区| 成人在线视频免费播放| 国产亚洲成av人在线观看导航| 国产人与禽zoz0性伦| 亚洲欧美日韩中文播放| 日本a在线观看| 欧美亚洲综合久久| 国产av精国产传媒| 亚洲毛片在线观看| 欧美激情午夜| 久久青草精品视频免费观看| 日韩av中字| 国产精品乱子乱xxxx| 精品成人影院| av免费看网址| 久久精品国产色蜜蜜麻豆| 扒开伸进免费视频| 国产欧美日韩一区二区三区在线观看| 黄色香蕉视频在线观看| 精品日韩视频在线观看| 国产一区二区自拍视频| 日韩久久免费电影| caopen在线视频| 日韩免费av片在线观看| 精品国产亚洲一区二区三区在线| 久久精品日韩| 午夜欧美理论片| 91最新在线观看| av影院午夜一区| 久久高清内射无套| 欧美性大战久久久久久久蜜臀| 欧美 日韩 国产 成人 在线 91| 亚洲香蕉伊综合在人在线视看| 久久免费电影| 成人激情免费在线| 国产a久久精品一区二区三区| 日本a在线天堂| 美女爽到高潮91| av女人的天堂| 亚洲第一福利一区| 国产精品美女一区| 国产亚洲精品成人av久久ww| 草美女在线观看| 亚洲最大福利网站| 日韩欧美高清| 在线视频日韩一区| 久久久午夜电影| 日韩成人免费观看| 精品国产麻豆免费人成网站| 蜜芽在线免费观看| 国产精品久久久久久影视| www免费网站在线观看| 成人性色生活片免费看爆迷你毛片| 扒开伸进免费视频| 一区二区三区免费| 国产福利视频导航| 另类图片亚洲另类| www.久久草.com| 最新av在线免费观看| 精品亚洲成a人| av黄色免费在线观看| 欧美午夜片在线观看| а√天堂中文在线资源bt在线| 日本中文字幕久久看| 丝袜美腿综合| 精品免费国产一区二区| 91视频xxxx| 无码视频一区二区三区| 亚洲图片在线综合| 久久91导航| 日韩国产欧美精品| 男人操女人的视频在线观看欧美 | 亚洲三级免费观看| 国产精选久久久| 久久中国妇女中文字幕| 国产 日韩 欧美| 肉大捧一出免费观看网站在线播放 | 欧美一区三区| 蜜臀av免费观看| **性色生活片久久毛片| 国产黄色小视频在线观看| 欧美激情视频免费观看| 成人在线视频你懂的| 久色视频在线播放| 2020国产精品自拍| 国产精品va无码一区二区三区| 国产亚洲a∨片在线观看| jizz久久久久久| 国产日韩第一页| 成人黄色av电影| 波多野结衣视频网站| 国产一区二区三区日韩欧美| 国产成人77亚洲精品www| 天天爱天天做天天操| 成人网在线播放| 亚洲综合久久网| 日韩中文综合网| 66精品视频在线观看| 波多野结衣家庭教师在线| 久久午夜老司机| 91尤物国产福利在线观看| 欧美刺激性大交免费视频| 全国精品免费看| 国产小视频精品| 亚洲在线视频网站| 免费a在线观看| 亚洲一区二区三区四区视频 | 一区二区三区欧美| 无码精品视频一区二区三区| 国产成人精品久久| 91高清一区| 三上悠亚影音先锋| 欧美一区二区视频在线观看| 美女扒开腿让男人桶爽久久软| 相泽南亚洲一区二区在线播放| 精品一区二区在线观看| 曰本女人与公拘交酡| 亚洲偷熟乱区亚洲香蕉av| 久久视频社区| mm1313亚洲国产精品无码试看| 亚洲欧美二区三区| 国产小视频在线| 国产精品.com| 美腿丝袜在线亚洲一区| 91蜜桃视频在线观看| 日韩专区在线播放|