国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

TiDB 實(shí)踐 | Flink on TiDB —— 便捷可靠的實(shí)時(shí)數(shù)據(jù)業(yè)務(wù)支撐

共 8286字,需瀏覽 17分鐘

 ·

2021-07-12 21:51

作者介紹

林佳,網(wǎng)易互娛計(jì)費(fèi)數(shù)據(jù)中心實(shí)時(shí)業(yè)務(wù)負(fù)責(zé)人,實(shí)時(shí)開(kāi)發(fā)框架 JFlink-SDK 和實(shí)時(shí)業(yè)務(wù)平臺(tái) JFlink 的主程,F(xiàn)link Code Contributor。


本文由網(wǎng)易互娛計(jì)費(fèi)數(shù)據(jù)中心實(shí)時(shí)業(yè)務(wù)負(fù)責(zé)人林佳老師分享,主要介紹網(wǎng)易數(shù)據(jù)中心在處理實(shí)時(shí)業(yè)務(wù)時(shí)為什么選擇 Flink 和 TiDB,以及兩者的結(jié)合應(yīng)用情況。

今天主要從開(kāi)發(fā)的角度來(lái)跟大家聊一聊為什么網(wǎng)易數(shù)據(jù)中心在處理實(shí)時(shí)業(yè)務(wù)時(shí),選擇 Flink 和 TiDB。

首先,TiDB 是一個(gè)混合型的 HTAP 分布式數(shù)據(jù)庫(kù),具備一鍵水平伸縮、強(qiáng)一致性的多副本數(shù)據(jù)安全、分布式事務(wù)、實(shí)時(shí) OLAP 等重要特性,同時(shí)兼容 MySQL 協(xié)議和生態(tài),遷移便捷,運(yùn)維成本極低。而 Flink 是目前最熱門的開(kāi)源計(jì)算框架,在處理實(shí)時(shí)數(shù)據(jù)方面,其高吞吐量、低延遲的優(yōu)異性能以及對(duì) Exactly Once 語(yǔ)義的保障為網(wǎng)易游戲?qū)崟r(shí)業(yè)務(wù)處理提供了便捷支持。

Flink on TiDB 究竟可以創(chuàng)造怎樣的業(yè)務(wù)價(jià)值?本文將從一個(gè)實(shí)時(shí)累加值的故事來(lái)跟大家分享。


從一個(gè)實(shí)時(shí)累加值的故事說(shuō)起


接觸過(guò)線上業(yè)務(wù)的同學(xué)應(yīng)該對(duì)上述數(shù)據(jù)非常熟悉,這是一張經(jīng)典的線上實(shí)時(shí)業(yè)務(wù)表,也可以理解為日志或某種單調(diào)遞增的數(shù)據(jù),包含了事實(shí)發(fā)生的時(shí)間戳、賬戶、購(gòu)買物品、購(gòu)買數(shù)量等。
針對(duì)這類數(shù)據(jù)的分析,假設(shè)使用 Flink 等實(shí)時(shí)計(jì)算框架,可以通過(guò)分桶處理,如 groupby 用戶 ID,groupby 道具,再對(duì)時(shí)間進(jìn)行分桶,最終將產(chǎn)生如下的持續(xù)數(shù)據(jù)。

如果將上述持續(xù)數(shù)據(jù)落入 TiDB,與此同時(shí) TiDB 仍保持已有的線上維度表,如賬戶信息、道具信息等,通過(guò)對(duì)表做一個(gè) JOIN 操作就能快速?gòu)氖聦?shí)的統(tǒng)計(jì)數(shù)據(jù)中分析出時(shí)序數(shù)據(jù)所代表的價(jià)值,再對(duì)接到可視化應(yīng)用,能發(fā)現(xiàn)很多不一樣的東西。

整個(gè)過(guò)程看起來(lái)非常簡(jiǎn)單又完美, Flink 解決計(jì)算問(wèn)題,TiDB 解決海量存儲(chǔ)問(wèn)題。但,事實(shí)真的如此嗎?

實(shí)際接觸線上數(shù)據(jù)的同學(xué)可能會(huì)遇到類似的問(wèn)題,如:

  • 多種數(shù)據(jù)源:各個(gè)業(yè)務(wù)方的外部系統(tǒng)日志,并且存在有的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù),有的需要以日志的方式調(diào)用,還有以 rest 接口調(diào)用的方式。

  • 數(shù)據(jù)格式多樣:各個(gè)業(yè)務(wù)或渠道打的數(shù)據(jù)格式完全不同,有的是 JSON,有的是 Encoded URL。

  • 亂序到達(dá):數(shù)據(jù)到達(dá)順序被打亂。

基于上述問(wèn)題,我們引入了 Flink 。在數(shù)據(jù)中心內(nèi)部,我們封裝了一套稱之為 JFlink - SDK 的框架,主要基于 Flink 對(duì) ETL 、亂序處理、分組聚合以及一些常用需求進(jìn)行模塊化、配置化,然后通過(guò)線上數(shù)據(jù)源的配置,計(jì)算得到一些事實(shí)的統(tǒng)計(jì)或事實(shí)數(shù)據(jù),最后入到可以容納海量數(shù)據(jù)的 TiDB 中。

但是, Flink 在處理這批數(shù)據(jù)時(shí),為了故障恢復(fù),會(huì)通過(guò) CheckPoint 保存數(shù)據(jù)當(dāng)前的計(jì)算狀態(tài)。如果在兩次保存期間,發(fā)生了數(shù)據(jù)計(jì)算的 commit,即這部分計(jì)算結(jié)果已經(jīng)刷出 TiDB 了,然后發(fā)生了故障,那么 Flink 會(huì)自動(dòng)回退到上一個(gè) CheckPoint 的位置,即回退到上一次正確的狀態(tài)。此時(shí),如圖的 4 筆數(shù)據(jù)就會(huì)被重算,重算之后可能會(huì)被更新到 TiDB 中。


如果數(shù)據(jù)是個(gè)累加值的話,可以看到其累加值被錯(cuò)誤地累加了兩遍,這是使用 Flink on TiDB 可能出現(xiàn)的問(wèn)題之一。


Flink 的準(zhǔn)確保證


Flink 的準(zhǔn)確保證


Flink 如何提供準(zhǔn)確性保證?首先,需要了解 Flink 的 CheckPoint 機(jī)制。CheckPoint 類似于 MySQL 的事務(wù)保存點(diǎn),指在做實(shí)時(shí)數(shù)據(jù)處理時(shí),對(duì)臨時(shí)狀態(tài)的保存。

CheckPoint 分為 At least Once 和 Exactly Once,但即使選擇使用 Exactly Once 也無(wú)法解決上面累加值重復(fù)計(jì)算的問(wèn)題。比如從 Kafka 讀了數(shù)據(jù),以上述事實(shí)表為基礎(chǔ) account 是 1000、購(gòu)買物品為 a 、購(gòu)買數(shù)量分別為 1 件和 2 件,此時(shí) Flink 處理數(shù)據(jù)就會(huì)被分到分桶里。與此同時(shí),另一種 Key 會(huì)被 Keyby,相當(dāng)于 MySQL 的 groupby 分到另一個(gè)桶里去計(jì)算,然后通過(guò)聚合函數(shù)刷到 TiDB Sink 中。


計(jì)算狀態(tài)的保存


Flink 通過(guò) CheckPoint 機(jī)制來(lái)保證數(shù)據(jù)的 Exactly Once。假設(shè)需要進(jìn)行一個(gè)比較簡(jiǎn)單的執(zhí)行計(jì)劃 DAG,只有一個(gè) source,然后通過(guò) MAP 刷 TiDB sink。在這個(gè)過(guò)程中,F(xiàn)link 是線性的,通過(guò)在數(shù)據(jù)流里面插入 CheckPoint barrier 機(jī)制來(lái)完成,相當(dāng)于 CheckPoint barrier 走到哪里,哪里就觸發(fā)線性執(zhí)行計(jì)劃中的算子保存點(diǎn)。

假設(shè)從 source 開(kāi)始,那么會(huì)保存 source,如果是 Kafka,需要存一下 Kafka 的當(dāng)前消費(fèi)位置。在節(jié)點(diǎn)保存完畢之后,需要做下一個(gè)算子的狀態(tài)保存,此處的 MAP 假設(shè)是分桶計(jì)算,那么它其實(shí)就已經(jīng)存了桶里的累積數(shù)據(jù)。

在此之后,CheckPoint barrier 就到達(dá)了 sink,此時(shí) sink 也去做相應(yīng)的狀態(tài)儲(chǔ)存。當(dāng)相應(yīng)的狀態(tài)存儲(chǔ)分別做完之后,總的 Job Manager (相當(dāng)于 Master) 匯報(bào)狀態(tài)存儲(chǔ)的 CheckPoint 已經(jīng)完成了。

而當(dāng) Master 確認(rèn)了所有的子任務(wù)都已經(jīng)完成了分布式任務(wù)的 CheckPoint 之后,會(huì)分發(fā)一個(gè) Complete 的信息。如上圖模型所示,可以聯(lián)想到它其實(shí)就是 2PC,分布式二階段提交協(xié)議,每個(gè)分布式子任務(wù)分別提交自己的事務(wù),然后再整體提交整個(gè)事務(wù)。被存下來(lái)的狀態(tài)將存儲(chǔ)在 RocksDB 中,當(dāng)出現(xiàn)故障時(shí),可以從 RocksDB 恢復(fù)數(shù)據(jù),然后從斷點(diǎn)重新計(jì)算整個(gè)流程。


Exactly Once 語(yǔ)義支持


回看 Exactly Once,上述方式真的能實(shí)現(xiàn) Exactly Once 嗎?其實(shí)不能,但為何 Flink 官方稱這是 Exactly Once 呢?以下將詳述其中緣由。

從上圖的代碼可以看出,Exactly Once CheckPoint 是無(wú)法保證端到端的,只能保證 Flink 內(nèi)部算子的 Exactly Once。因此,將計(jì)算數(shù)據(jù)去寫入 TiDB 時(shí),如果 TiDB 無(wú)法與 Flink 聯(lián)動(dòng),就無(wú)法保證端到端的 Exactly Once 了。

類比一下什么是端到端,其實(shí) Kafka 就支持這種語(yǔ)義,因?yàn)?Kafka 對(duì)外暴露了 2PC 的接口,允許用戶手動(dòng)調(diào)整接口來(lái)控制 Kafka 事務(wù)的 2PC 過(guò)程,也因此可以利用 CheckPoint 機(jī)制來(lái)避免算錯(cuò)的情況。

但如果不能手動(dòng)控制,那會(huì)怎么樣呢?

我們來(lái)看看如下實(shí)例,假設(shè)仍然將用戶設(shè)置為 1000,購(gòu)買道具為 A 的數(shù)據(jù)寫入到 TiDB 的累加表,會(huì)生成如下 SQL:INSERT VALUES ON DUPLICATE UPDATE。當(dāng) CheckPoint 發(fā)生時(shí),能否保證該語(yǔ)句被執(zhí)行到 TiDB?

如果不加特殊處理,簡(jiǎn)單執(zhí)行這條 SQL 的話,其實(shí)不能保證這條 SQL 究竟有沒(méi)有被執(zhí)行,如未執(zhí)行,則會(huì)報(bào)錯(cuò),退回到上一個(gè) CheckPoint,皆大歡喜。因?yàn)樗鼘?shí)際上沒(méi)有計(jì)算,沒(méi)有累加,也不會(huì)重復(fù)計(jì)算一遍,所以是對(duì)的。但如果已經(jīng)寫出,再去重復(fù)的退回上一個(gè) CheckPoint,那么將會(huì)出現(xiàn)重復(fù)累加 3 的情況。

Flink 為了解決這個(gè)問(wèn)題,提供了一種接口,可以手動(dòng)實(shí)現(xiàn) SinkFunction,控制事務(wù)的開(kāi)始,Pre Commit、Commit、Rollback。

而 CheckPoint 機(jī)制本質(zhì)是一種 2PC,當(dāng)分布式算子在執(zhí)行內(nèi)部事務(wù)時(shí),其實(shí)算子關(guān)聯(lián)到 Pre Commit。同理,假設(shè)在 Kafka 中,可以通過(guò) Pre Commit 事務(wù)將 Kafka 事務(wù)預(yù)提交。當(dāng)算子收到 Job Manager(即 Master)同步的所有算子 CheckPoint 的狀態(tài)保存都已完成時(shí),此時(shí) Commit,事務(wù)是必定成功的。

如果其他算子失敗了,則需要進(jìn)行 Rollback,確保事務(wù)沒(méi)有被成功地提交到遠(yuǎn)端。這里如果有 2PC SinkFunction 加上 XA 全 section 語(yǔ)義的話,其實(shí)就可以做到嚴(yán)格意義的 Exactly Once。

但不是所有的 sink 都支持二階段提交協(xié)議,比如 TiDB 內(nèi)部是二階段提交來(lái)管理協(xié)調(diào)其事務(wù),但是目前來(lái)說(shuō),并沒(méi)有把二階段提交協(xié)議提供給用戶手動(dòng)控制。


冪等計(jì)算


那么,如何做到保證業(yè)務(wù)的 Exactly Once 結(jié)果落到 TiDB?其實(shí)也很簡(jiǎn)單,采用 At Least Once 語(yǔ)義加上一個(gè) Unique Key,即冪等計(jì)算。

如何選擇 Unique Key?如果一份數(shù)據(jù)有一個(gè)唯一標(biāo)志,我們自然會(huì)選擇其唯一標(biāo)志。比如一份數(shù)據(jù)有唯一 ID,當(dāng)一張表通過(guò) Flink 同步到另一張表的時(shí)候,這就是很經(jīng)典的利用其 Primary key 做 insert ignore 或者 replace into 的語(yǔ)義去重。如果是日志,可以選擇日志文件特有的屬性。而如果通過(guò) Flink 去計(jì)算聚合結(jié)果,則可以用聚合的 Key 加上窗口邊界值,或者其他的冪等方式來(lái)計(jì)算出數(shù)值,作為最終計(jì)算的唯一鍵。

如此,就可以實(shí)現(xiàn)結(jié)果是可重入的。既然可重入,再加上 CheckPoint 的可回退特性,就可以把 Flink 跟 TiDB 結(jié)合起來(lái),做到精準(zhǔn)的 Exactly Once 結(jié)果寫入。


Flink on TiDB


在 Flink on TiDB 部分,我們內(nèi)部的 JFlink 框架對(duì) Flink 進(jìn)行封裝,然后在與 TiDB 聯(lián)動(dòng)上又做了什么?以下將詳述。


數(shù)據(jù)連接器的設(shè)計(jì)


首先,是數(shù)據(jù)連接器的設(shè)計(jì)。因?yàn)?Flink 對(duì)于 TiDB 的支持或者說(shuō)對(duì)關(guān)系型數(shù)據(jù)庫(kù)的支持都比較慢,F(xiàn)link Conector JDBC 在 Flink 1.11 版本才出現(xiàn),時(shí)間還不太長(zhǎng)。

目前,我們將 TiDB 作為數(shù)據(jù)源,把數(shù)據(jù)放在 Flink 處理,主要是通過(guò) TiDB 官方提供的 CDC 工具,相當(dāng)于通過(guò)監(jiān)聽(tīng) TiDB 的變更,將數(shù)據(jù)落到 Kafka。而 Kafka 又是非常經(jīng)典的流式數(shù)據(jù)管道,所以通過(guò) Kafka 將數(shù)據(jù)進(jìn)行消費(fèi)處理,然后再通過(guò) Flink 進(jìn)行處理。

但不是所有業(yè)務(wù)都可以用 CDC 模式,比如落數(shù)據(jù)時(shí)要增加一些比較復(fù)雜的過(guò)濾條件,或者落數(shù)據(jù)時(shí)需要定期讀取某些配置表,亦或者先需要了解外部的一些配置項(xiàng)才能知道切分情況時(shí),可能就需要手動(dòng)的自定義 source。

而 JFlink 在封裝時(shí),其實(shí)是封裝了業(yè)務(wù)字段的單調(diào)表來(lái)進(jìn)行切片讀取。單調(diào)是指某張表一定會(huì)有某個(gè)字段,單調(diào)變化的,或者是 append only。

在實(shí)現(xiàn)上,TiDB 和 Flink 之間,封裝了 JFlink TiDB Connect,通過(guò)一個(gè)連接詞去創(chuàng)建跟 TiDB 的鏈接。然后通過(guò)異步線程來(lái)?yè)茢?shù)據(jù),再通過(guò)阻塞隊(duì)列進(jìn)行阻塞。阻塞隊(duì)列的作用主要是為了流控。

對(duì)于 Flink 的主線程,主要通過(guò)監(jiān)聽(tīng)阻塞隊(duì)列上的有非空信號(hào)。當(dāng)收到非空信號(hào)時(shí),就把數(shù)據(jù)拉出來(lái),通過(guò)反序列化器作為整個(gè)實(shí)時(shí)處理框架的流轉(zhuǎn)對(duì)象,然后可以對(duì)接后面各種模塊化了的 UDF。在實(shí)現(xiàn) source 的 At Least Once 語(yǔ)義時(shí),如果借助 Flink 的 CheckPoint 機(jī)制,就變得非常簡(jiǎn)單了。

因?yàn)槲覀円呀?jīng)有個(gè)大前提,即這張表是一張由某個(gè)字段組成的單調(diào)表,在單調(diào)表上進(jìn)行數(shù)據(jù)切分時(shí),就可以記下當(dāng)前的切分位置。如果發(fā)生故障,讓整條流回退到上一個(gè) CheckPoint,source 也會(huì)回退到上一個(gè)保存的切片位置,此時(shí)就能夠保證不漏數(shù)據(jù)的消費(fèi),即實(shí)現(xiàn)了 source 的 At Least Once。

對(duì)于 sink,其實(shí) Flink 官方是提供了 JDBC sink,當(dāng)然 source 也提供了JDBC sink,但是 Flink 官方提供的 JDBC sink 實(shí)現(xiàn)比較樸素,使用同步批量插入的語(yǔ)義。

其實(shí)同步批量插入是比較保守的,當(dāng)數(shù)據(jù)量比較大時(shí),且沒(méi)有嚴(yán)格的先來(lái)先提交的語(yǔ)義,此時(shí)使用同步提交相對(duì)來(lái)說(shuō)性能不是很高,如果使用異步提交的話,性能就會(huì)提升很多,相當(dāng)于充分利用了 TiDB 分布式數(shù)據(jù)庫(kù)的特性,支持小事務(wù)高并發(fā),有助于提升 QPS。

當(dāng)我們實(shí)現(xiàn) sink 時(shí),實(shí)際上原理也非常簡(jiǎn)單。我們這里先講講 Flink 官方是怎么實(shí)現(xiàn)。Flink 官方是通過(guò)將 Flink 的主線程寫到一張 buffer 中,當(dāng) buffer 寫滿時(shí)進(jìn)行換頁(yè),同時(shí)拉起一條線程將數(shù)據(jù)同步到 TiDB。

而我們的改進(jìn)是通過(guò)一個(gè)阻塞隊(duì)列來(lái)進(jìn)行流控,然后把數(shù)據(jù)寫到某個(gè) buffer 頁(yè),當(dāng) buffer 頁(yè)寫滿時(shí),馬上拉起一條異步線程去刷出,這樣就可以保證在非 FIFO 語(yǔ)義下提升 QPS 的性能。實(shí)踐證明,通過(guò)這種方式,我們可以把官方寫出的 QPS 從大概 3 萬(wàn)多提升到接近 10 萬(wàn)。

不過(guò)在實(shí)現(xiàn) sink 的 At Least Once 語(yǔ)義的時(shí)候就相對(duì)來(lái)說(shuō)復(fù)雜一點(diǎn)?;叵?CheckPoint 機(jī)制,如果我們要實(shí)現(xiàn) sink 的 At Least Once,就必須保證 CheckPoint 完成時(shí),sink 是干凈的,即所有數(shù)據(jù)都刷出了,這樣才能保證其 At Least Once。在這種情況下,可能就需要將 CheckPoint 的線程、普通刷出的主線程以及其他的換頁(yè)線程等都加上。當(dāng)觸發(fā) CheckPoint 的時(shí)候,同步把所有數(shù)據(jù)都保證刷干凈之后,才去完成 CheckPoint。如此,一旦 CheckPoint 完成,sink 必然是干凈的,也意味著前面流過(guò)來(lái)的所有數(shù)據(jù)都正確更新到 TiDB 了。

在我們優(yōu)化完畢之后,實(shí)現(xiàn)了 100k 左右的 OPS。在我們測(cè)試環(huán)境上,大概是三臺(tái)物理機(jī)混布 PD、TiKV、TiDB 這些節(jié)點(diǎn)。


業(yè)務(wù)場(chǎng)景


我們目前技術(shù)中心計(jì)費(fèi)數(shù)據(jù)中心使用 TiDB 跟 Flink 結(jié)合的應(yīng)用場(chǎng)景非常多。如:

  • 海量業(yè)務(wù)日志數(shù)據(jù)的實(shí)時(shí)格式化入庫(kù);

  • 基于海量數(shù)據(jù)的分析統(tǒng)計(jì);

  • 實(shí)時(shí) TiDB / Kafka 雙流連接的支付鏈路分析;

  • 對(duì)通數(shù)據(jù)地圖;

  • 時(shí)序數(shù)據(jù)。

所以,可以看到其實(shí) Flink on TiDB 在網(wǎng)易數(shù)據(jù)中心業(yè)務(wù)層的應(yīng)用是遍地開(kāi)花的,此處引用一句,“桃李不言,下自成蹊”,既然能用到這么廣泛,也就證明了這條路其實(shí)是非常有價(jià)值的。



DevCon 2021,邀你共同「預(yù)見(jiàn)」 


數(shù)據(jù)庫(kù)技術(shù)變革的拐點(diǎn)已經(jīng)到來(lái),我們期待與你一起推動(dòng)這場(chǎng)變革的降臨。2020 年,我們邀請(qǐng)了 80 + 位 Ti 星人來(lái)到直播間,講述他們和 TiDB 的故事。2021 年,我們將舉辦一場(chǎng) Ti 星人的大聚會(huì),從「開(kāi)放」講起,「連接」你我。

PingCAP DevCon”是由 PingCAP 舉辦的年度頂級(jí)數(shù)據(jù)技術(shù)盛會(huì),大會(huì)已連續(xù)舉辦三年,成為觀測(cè)開(kāi)源產(chǎn)業(yè)、數(shù)據(jù)庫(kù)前瞻趨勢(shì)的風(fēng)向標(biāo)。本次大會(huì)旨在探討前沿科技與數(shù)字化趨勢(shì)的融合,解讀行業(yè)領(lǐng)袖觀點(diǎn),分享技術(shù)大咖實(shí)戰(zhàn)經(jīng)驗(yàn),展示用戶場(chǎng)景的多元化創(chuàng)新,并展現(xiàn)多元化數(shù)據(jù)技術(shù)生態(tài)。掃描下方二維碼立即預(yù)約,共同「預(yù)見(jiàn)」 DevCon 2021。

了解更多詳情:推動(dòng)一場(chǎng)技術(shù)變革的降臨,PingCAP 邀你共同「預(yù)見(jiàn)」 DevCon 2021


?? 更多 TiDB、TiKV、TiSpark、TiFlash 等技術(shù)問(wèn)題可登錄 AskTUG.com ,與全球 TiDB User 隨時(shí)隨地交流使用心得~ 另外,AskTUG 「認(rèn)證功能」最新上線,完成團(tuán)隊(duì)認(rèn)證可額外獲得 +200 經(jīng)驗(yàn)值和 200 積分 ,授予 “認(rèn)證會(huì)員”徽章。更有問(wèn)題處理「加急」特權(quán)等你~詳情了解請(qǐng)點(diǎn)擊「閱讀原文」!


瀏覽 75
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 久久大陆| 日韩AV毛片| 日韩a在线| 亚洲社区在线观看| 久久青娱乐| www人人操| 青草av在| 日韩一页| 久久无码一区| 丝袜足交视频| 麻豆亚洲AV成人无码久久精品| 精品码产区一区二亚洲国产| 国产无码操逼视频| 五月婷婷俺也去| 亚洲精品国产精品乱玛不99| 亚洲秘无码一区二区三区胖子| 欧美综合激情| 靠逼久久| 一区二区三区四区视频在线| 中文字幕日韩成人| 日韩三级在线播放| 在线h网站| 国产精品久久久久久最猛| 久久日韩操| 免费爱爱视频| 精品三级| 一级免费黄色片| 国产17c精品视频一二三区| 国产3级片| 伊人综合影院| 四虎人妻| 欧美深夜福利视频| 米奇色色色| 在线观看一区二区视频| 91操美女视频| 狼友视频一国产| 免费亚洲婷婷| 神马午夜51| 亚洲爱爱视频| 亚洲黄片视频| 日韩人妻精品无码| 一级欧美一级日韩片| 天天色天天色天天色| 91人妻人人澡人人爽精品| 国产精品无码激情| 激情三区| 国产精品久免费的黄网站| 粉嫩99精品99久久久久久特污兔 | 欧美日韩精品一区二区三区钱| 国产一级免费| 免费视频一二三区| 蜜桃av在线| 国产棈品久久久久久久久久九秃| av免费网址| 国产精品久久久久精| 国产精品久久久久久无码人妻| 午夜日逼网站| 西西人体视频| 婷婷五月天影视| 亚洲黄色一级电影| 国产资源AV| 青青草原免费在线视频| 免费三级怡红院| 伊人大香焦网| 国产精品人人| 日本中文字幕在线免费观看| 国产精品777777| 高清在线无码视频| 国产69视频在线观看| 91亚洲精华国产精华精华液| 开心五月色婷婷综合开心网| 中文字幕无码免费| 1024大香蕉| jzzijzzij亚洲成熟少妇在线观看| 三级视频网址| 亚洲一区高清无码| 九热视频| www.午夜福利| www.xxx| 豆花视频在线免费观看| www.色日本| 懂色av懂色av粉嫩av| 伊人影院在线看| 一本之道高清数码大全| 麻豆一区在线| 麻豆传媒免费观看| 逼逼影院| 美女乱伦视频| 亚洲日韩视频在线播放| 日韩AV中文| 男人天堂视频在线观看| 日韩中文字幕高清| 超碰九九| 久久午夜无码鲁丝片午夜精| 日本AV在线播放| 草视频| 成人网站在线免费看| 麻豆视频在线观看| 免费在线观看黄| 亚洲无码自拍| 日本欧美在线观看高清| 欧美不卡在线播放| 久久久亚洲AV| 日韩成人无码片| 五月丁香婷婷开心| 操碰99| 在线观看欧美黄片| 成人性爱免费网站| 久久精品一区二区三区不卡牛牛| 日韩亚洲天堂| 伊人一区二区三区| 国产福利电影在线观看| 成人精品久久久| 国产熟妇婬乱一区二区| 天天操夜夜骑| 精品人妻一区二区三区四区不卡在| 五月丁香欧美性爱| 操逼网站在线| 日韩精品一区二区三区在线观看免费| 东京热第一页| 午夜h片| 2021天天操| av在线资源观看| 亚洲精品国产av| 男女操网站| 麻豆91视频| 夜夜撸视频| 久久久久国产一区二区三区四区 | 日韩视频免费观看高清完整版在线观 | 黄色不卡| 羞羞视频com.入口| 91成人免费电影| 婷婷五月天激情四射| 午夜一区二区三区| 成人小视频十八禁免费观看| 亚洲一卡| 婷婷五月天啪啪| 无码在线高清| 天天视频黄色| 免费看一级片| 91五月天| 无码三级AV| 怡红院成人AV| 欧美成人电影在线观看| 精品人妻无码一区二区三区四川人| 97人人射| 国产在线视频你懂的| 亚洲天堂在线视频观看| 国外成人视频| 99国产精品久久久久久久| 午夜视频成人| 一级特黄色片| 天堂在线www| 91日逼视频| 亚洲中文无码视频| 中文字幕1| 苏妲己一级婬片A片| 国产一级婬乱片免费| 色天天干| 免费黄片视频在线观看| 九色PORNY自拍视频| 大香蕉av在线| 亚洲高清无码播放| 三级影片在线观看性| 久久免费播放视频| 特级艺体西西444WWw| 亚洲欧美日韩一区二区| 一夲道无码专区av无码A片| 欧美18禁黄免费网站| 亚洲无码在线高清| 中文字幕第一页av| 国产日韩一区二区| 久久综合五月| 99热国产| 波多野结衣99| 成人精品一区二区三区无码视频 | 51成人网站| 人妻中文字幕网| 霸道总裁雷总各种姿势白浆爱情岛论坛 | 日本中文在线| 欧美日韩精品一区二区三区| 五月天操逼网站| 色噜| 妻子互换被高潮了三次| 欧美精产国品一二三| 中文字字幕中文字幕乱码| 人妻超碰在线| 乱伦小说五月天| 二区不卡| 日本高清黄色视频| 成人免费黄片| 黄频在线免费观看| 中文字幕在线乱| 国产精品911| 免费a视频| 农村新婚夜一级A片| 欧美一区二区三区在线播放| 丰满人妻一区二区三区视频54| 精品久久久久久久久久久| 波多野结衣AV无码| 日韩高清精品在线| h视频在线观看网站| 亚洲成人一级片| 免费日逼| 黄色片免费视频网站| 亚洲中文字幕日韩精品| 九九久久99| 在线天堂视频| 91精品国产成人www| 江苏妇搡BBBB搡BBBB-百度 | 日日爱网| 免费成人视频| 日韩五月天| 中文字幕在线免费观看| 国产成人69免费看| 俺去俺来也在线www色情网| 无码激情18激情视频| 豆花视频在线观看| 91成人一区二区| 特黄特色一级特黄大片| 免费黄色小视频在线观看| 女公务员人妻呻吟求饶| 成人自拍视频| 亚洲激情网址| 国产香蕉在线播放| 在线视频播放| 黄色av免费在线| 亚洲天堂大香蕉| 在线视频一区二区三区四区| 亚洲成人综合网站| 人妻无码高清| 无码精品人妻一区二区三区漫画| 国产传媒自拍| 中文无码字幕| 伊人久久AV诱惑悠悠| 免费AV资源在线观看| 中文字幕东京热| 一级黄色免费视频| 91亚洲综合| 特级西西444WWW视频| 精东影业秘国产传媒| 婷婷激情四射| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 日韩人妻AV| 亚洲无码999| 亚洲艹逼| 另类老妇奶性生BBwBB| 青草久在线| 97精品人妻一区二区三区香蕉农| 香蕉午夜视频| 99久久婷婷国产综合精品漫| 91精品视频网站| 亚洲日韩视频在线观看| 韩国日本美国免费毛片| 亚洲播播在线视频| 大伊香蕉久久| 狠狠狠狠狠狠狠| 中文字幕AV在线观看| 三级片久久| 91人妻日韩人妻无码专区精品 | 久久久福利视频| 91天天综合| 特级毛片av| 黄色视频在线观看地址| 亚洲乱伦电影| 无码高清一区| 羞羞色院91蜜桃| 西西444WWW无码大胆在线观看| 99久久婷婷国产综合精品| 最新无码在线| 精品AV| 久久人妻无码中文字幕系列| 制服丝袜一区| 十八禁视频在线观看网站.www| 日韩欧美A片| 91麻豆精品成人一区二区| 日韩综合不卡| 中文字幕成人网站| 亚洲图片一区| www.91av| 国产AV综合网| 国产sm视频| 亚洲天堂2015| 国外成人在线视频老鸭窝| 影音先锋三级资源| 精品亚洲无码视频| 啪啪免费视频| 狼友视频免费| 亚洲一区二区成人| 无码福利电影| 日韩视频一级| 五月天综合在线| av天堂中文在线| 91热| 97欧美日韩| 国产精品久久久久无码| 久久99久久99久久99国内少妇精品 | 国产精品一区在线观看| 丰满的人妻一区二区10| 国产亚洲中文| 手机看片久久| 欧美激情伊人| 天干夜天干天天天爽视频| 91丨九色丨东北熟女| 日韩高清精品在线| 国产美女AV| 久久亚洲天堂| 国产一级A片在线观看| 久久播视频| 99青草| 51亚洲精品| h片网站在线观看| 欧美在线一区二区三区| 中文字幕亚洲观看| 男人的天堂色婷婷| 国产群交| 日本在线观看www| 四虎精品成人无码A片| 永井玛丽亚av无码中出流出| 日本少妇激情视频| 欧美aaa视频| 国产一区二区不卡| 亚洲婷婷AV| 搡BBBB| 大香蕉伊人丁香五月| av在线资源播放| 黄色视频网站免费| 日韩熟妇人妻中文字幕| 亚洲成av人无码| 日韩AV三级片| 国产成人精品一区| 日本不卡三区| 中文字幕第一页av| 色色视频网站| 欧美性爱在线网站| a4yy午夜福利| 欧美aa片| 黄片小视频在线观看| 国产又爽又黄免费视频网站| 狼人色综合| 亚洲秘无码一区二区三区av| 日韩字幕无码| 中文字幕AV无码| 爱爱高清视频| 日韩精品中文字幕无码| 麻豆疯狂做受XXXX高潮视频 | 欧亚无码| 黄片无码视频| 丰满人妻一区二区三区| 亚洲黄色在线看| 日韩精品免费| 丁香六月婷婷综合缴| 少妇熟女网| 影音先锋男人天堂| 亚洲人成色777777无码| 欧美一区二区三区激情| av无码免费观看| 五月色婷婷撸| 久久大屌| 国产操老女人| 婷婷狠狠操| 爱爱帝国综合社区| 欧美后门菊门交3p| 色色色色色色色色欧美| 国产视频在线播放| 久久亚洲日韩天天做日日做综合亚洲 | 亚洲图片在线| 91绿帽人妻-ThePorn| 国产精品在线免费| 日韩中文字幕一区| 国产91无码精品秘入口| 黄色在线免费观看| gogogo日本免费观看高清电视剧的注意| 无码三级在线观看| 婷婷五月天啪啪| a片在线免费观看| 北条麻妃AV在线播放| 91精品人妻一区二区| 91爱逼| 激情导航| WWWA片| 伊人久久久影视大全| 国产肏逼视频| 一级AAAAA片裸体做受| 久久av电影| 免费黄片在线| 风情万种AV| 婷婷深爱| 女侠吕四娘第二部| 人人操人人操人人操人人| 污污污污污www网站免费民国| 少妇超碰| 操逼视频试看| 精品免费国产一区二区三区四区的使用方法 | 国内精品久久久久久久久98| 亚洲中文字幕av| 精品日韩一区二区三区| 爆菊花综合网| 天天爽天天爽| 日韩一级毛| 久久手机电影| 91探花视频在线观看| 亚洲天堂在线免费观看视频| 中文字幕精品视频| 欧美久久性爱| 无码网站内射| 亚洲v视频| 欧美色逼逼| 国产精品国内自产拍| 99免费观看视频| 特级特黄AAAA免费看| 奇米久久| 一本一道伊人99久久综| 亚洲福利网| 99re视频在线观看| 五月婷婷五月| 亚洲AV永久无码国产精品久久| 黑人AV在线| 午夜福利视频91| 久久露脸国语精品国产91| 国产精成人品| 一二三四区视频| 黄页网站视频| 中文在线视频| 2018人人操| 日本三区视频| 毛片毛片毛片毛片| 免费18禁网站| 久操久操久操| 天天操操操| 强伦轩一区二区三区四区| 亚洲欧美在线视频观看| 韩国毛片基地久久| h片在线观看免费| 无码二区三区| 中文字幕无码精品三级在线欧美| 91搞搞| 亚洲国产天堂| 51妺嘿嘿午夜福利视频| 亚洲国产女人| 国产操片| 日韩无码电| 操熟女视频| 精品看片| 美日韩毛片| 激情婷婷网| 精品女同一区二区三区四区外站在线| 中文字幕+乱码+中文乱码91 | 四个熟妇搡BBBB搡BBBB| 黄片观看| 欧洲肥胖BBBBBBBBBB| 精品成人电影| 中国无码视频| 色五月激情小说| 中字无码av| 少妇做爱视频| 国产一区二区三区无码| 成人无码免费一区二区中文| 亚洲三级视频在线播出| 亚洲性爱专区| 黄色www| 丝袜足交在线| 亚洲激情无码视频| 成人免费av| 亚洲三区视频| 黄色日逼| 91小仙女jK白丝袜呻吟| 国产精品VA| 国产又爽又黄A片| YOUjiZZ欧美大全| 91大神免费观看| 激情一区二区三区| 日韩无码人妻一区二区| 色综合天天操| 精品无码二区| 强伦轩人妻一区二区三区最新版本更新内容 | 精品欧美无人区乱码毛片| 亚洲视频在线免费播放| 一区二区三区四区五区无码| 波多野结衣在线精品| 国产青青操| 久久免费精品视频| 小黄片免费| 欧美性爱福利视频| 亚洲男人的天堂网| 91三级片在线观看| 色欲一区二区三区| 婷婷五月18永久免费视频| 久久久久久久| 欧美日韩A片| 成人午夜无码福利视频| 91免费看片| 99热精品国产| 99国产在线观看免费视频| 亚洲高清无码视频在线播放| 亚洲欧美激情小说另类| 败火老熟女ThePorn视频| 成人自拍视频| 91豆花视频18| 亚洲欧美国产精品专区久久| 人人澡人人爱| 成人免看一级a一片A片| 成人午夜小视频| 韩国三级HD中文字幕的背景音乐| 屁屁影院CCYYCOM国产| 一卡二卡在线视频| 国产免费高清无码| 中文字幕在线观看一区二区三区| 翔田千里被操120分钟| 人妻在线观看| 日日av| 久久久福利| 天天日天天射天天干| 亚洲福利网站| AV中文在线观看| 亚洲人妻无码一区| 操逼电影网站| 操逼中文字幕| 乌克兰性爱视频| 天天躁夜夜躁狠狠躁AV| a片一级片| 天天艹天天干| 可以免费看av的网站| 丁香综合网| 色欧美视频| 北条麻妃91视频| 天天草天天草| 久久精品人人| 无码不卡中文字幕| 丝袜二区| 五月天四房播播| 二区三区无码| 欧洲精品在线免费观看| 国产一二| 99精品国产一区二区| 99精品9| 五月丁香婷婷在线观看| 伊人激情五月| 懂色av懂色av粉嫩av| 黄色视频免费网站| 国产成人无码一区二区在线观看| 五月丁香婷婷基地| 开心激情网五月天| 无码av一区二区| 精品aaa| 久久久久无码精品国产91福利| 国产高清无码18| 国产精品成人在线| 东京热国产| 久久午夜视频| 91天天干| 亚洲精品一区二区三区在线观看| 日韩一级A片| 人人操人人爱人人拍| 老司机精品在线观看| 97人妻人人操| 欧美成人综合色| 在桌下含她的花蒂和舌头H视频 | 青青网站| 免费一级做a爱片毛片A片小说| 天天操中文字幕| 麻豆91麻豆国产传媒| 精品无码一区二区三区| 囯产精品久久久久久久久久久久久久| 中文字幕资源站| 日本久久不卡| 国产69AV| 日韩欧美在线中文字幕| www.日本黄色视频| 中文字幕四区| 久久久久久久性爱| 闷骚艳岳的婬乱生活视频| 国产精品国产自产拍高清AV| 日韩无码18| 欧美日韩一级黄色片| 色五月激情小说| 一区二区无码精品| 欧美精品18| 91av| 翔田千里被操120分钟| 亚洲一区免费| 中国AV网| 少妇人妻精品| 国产一级A片久久久免费看快餐| 特级西西444www高清| 91视频导航| 777欧美| 久久久久久久久黄色| 成人毛片在线视频| 日韩黄色无码视频| www.久久99| 91大神久久| 黄色一级片在线看| 欧美激情四射| 三级网站免费观看| 欧美人妻精品| www.水蜜桃| Al激情欧美| 色综合99久久久无码国产精品| 高清无码不卡在线观看| 国产日韩欧美综合在线| 一级免费视频| 欧美日韩不卡在线| 超碰1999| 黄片小视频在线观看| 91久久国产性奴调教| 中国熟女网站| 手机看片1024久久| 色噜噜一区二区三区| 亚洲精品成人视频| 山东熟妇搡BBBB搡BBBB| 一区在线看| 国产乱子伦无码视频免费| 日本成人久久| 在线黄网| 蝌蚪窝免费在线视频| 婷婷伊人中文字幕| 日批免费网站| 成人视频网| 色婷婷7777| 爆乳一区二区三区| 国产传媒视频| 国产91白浆四溢| 人人弄| 亚洲天码中字| 免费国产视频| 起碰在线视频| 欧美在线无码| 在线天堂视频| 思思热99热| 黄片无码视频| 久久无码一区二区三区| 成人视频91| 欧美性猛交ⅩXXX无码视频| 伊人影院在线视频| 日本免费黄色| 亚洲无码69| 亚洲欧美日本在线观看| 日韩一级黄色电影| 日本黄色大片网站| 久一视频| 日韩A片一级无码免费蜜桃| av一区在线| 免费中文字幕AV| 91sese| 欧美成人免费观看| 国产色综合视频| 色色99| 日本熟妇无码一区二区| 成人做爰100部免费网站| 2025四虎在线视频观看| 边添小泬边狠狠躁视频| 国产激情| 亚洲精品一区中文字幕乱码| 2024天天操| 日屄视频在线观看| 91久久久久久久久久久| 天天爽天天爽成人A片影院 | 国产女人在线观看| 男女视频网站在线观看| 久久成人三级片| 大香蕉一区二区| 中文字幕+乱码+中文乱码视频在线观看| 国产精品一区在线| 免费操b视频| 一级特黄录像免费播放下载软件 | 影音先锋aV成人无码电影| 久久久在线视频| www.99精品| 丁香婷婷久久久综合精品国产| 亚洲色射| 蜜柚av| 亚洲精品国产精品国自产A片同性| 一级特黄大片录像i| 国产一级AA大片毛片| 韩国精品一区二区三区| 天天操免费| 熟女人妻在线观看| 99热这里有精品| 国产久久久久久久久久| 亚洲免费专区| 日韩干| 91av在线免费观看| 黄色a片在线观看| 另类老妇奶BBBBwBB| 国产久视频| 激情五月天在线观看| 黄色网址av| 一道本无码在线视频| 另类老妇性BBwBBw| 久久久免费观看视频| 国产在线小视频| 国产免费福利| 五月AV| 五月天婷婷影院影院| 国产裸体美女网站| 青草青在线| 亚洲AV成人无码| 黄色在线不卡| 免费无码国产在线53| 丁香五月天天| 人人操人妻| 黄色内射视频| 成人网站在线观看免费| 亚洲午夜av| 午夜3D动漫AV| 成人丁香| 亚洲欧美熟妇久久久久久久久| 精品欧美一区二区三区久久久 | 日本不卡视频| 日韩AV一级| 91羞羞网站| 欧美在线免费观看| 国产特级婬片免费看| 日韩a视频| 三级操逼| 国产精品黄| eeuss久久| 天天干夜夜爽| 国产嫩苞又嫩又紧AV在线| 美女视频一区二区三区| 久久不卡视频| 在线中出| 高清国产mv在线观看| 亚洲有码在线视频| 久久在线视频| 99热国产在线观看| 欧美自拍视频| 台湾成人综合网| 日韩视频在线观看一区| 久久精品免费观看| 成人理伦A级A片在线论坛| 激情AV在线观看| AV无码观看| 影音先锋麻豆传媒| 粗长哭叫打桩H体育生| 天天夜夜狠狠| 欧美丰满人妻免费视频人| 做爰视频毛片下载蜜桃视频| 成年人久久| 99久久久精品| 无码人妻精品一区| 久久久久亚洲AV成人片乱码| 日韩无码激情| 国产亲子乱XXXXimim/| 超碰老熟女| 亚洲精品国产av| 色婷久久| 99国产免费| 日本AI高清无码在线观看网址 | 四川BBB搡BBB爽爽爽电影| 人人操人人看人人摸| 中文字幕人妻丰满熟妇| 亚洲秘无码一区二区三区电影| 在线成人一区二区| 精品国产一区二区三区久久久蜜月 | 伊人五月婷婷| 国产成人精品视频免费| 91操b| 色色丁香五月天| 日韩黄色在线观看| 久久久久久无码| 成人黄色一级A片| 亚洲成人黄色| 黄色直播在线观看| P站免费版-永久免费的福利视频平台| 少妇爆射| 中文字幕国产精品| 青娱乐网站| 亚洲精品天堂无码| 国内自拍偷拍| 成人国产在线无码AV免费| 成人H动漫精品一区二区无码| 成人AV毛片| 亚洲综合中文字幕在线| 日本三级片中文字幕| 国产精品成人视频| 俺来也俺也啪WWW色| 91久久婷婷亚洲精品成人| 亚洲va在线∨a天堂va欧美va | 无码一区二区三区免费看| 国产日韩欧美在线| 欧美污网站| 99天天操| 欧美一级A片免费看视频小说| 国产在线观看免费视频今夜| 中文字幕AⅤ在线| 国产成人自拍视频在线观看| 日本绿色精品视频| 日韩欧美视频| 亚洲精品一区二区三区在线观看| 欧美老妇操逼视频| 操屄视频免费观看| 免费一级片视频| 乱婬妺妺躁爽A片| 久久五月丁香| 翔田千里无码播放| 北条麻妃无码视频在线| 中文字幕国产| 在线天堂视频| 怡红院欧美| 天天艹天天干| 精精国产| se婷婷| 九九九国产| 色婷婷国产| 91超碰人人操| 69国产精品无码免费| 黄色搞逼视频| 久久亚洲中文| 国产视频导航| 日本a级视频| 亚洲日韩欧美一区二区| 国产精品天天| 操b视频免费| 91麻豆国产福利精品| 最新中文字幕| 精品久久久久久久久久| 日韩中文字幕人妻| 日韩视频网址| 1区2区视频| 欧美性xxxxx| 黄频在线免费观看| 久久夜色视频网| 青草福利视频| 色色五月婷婷| 美女被操91| 日韩无码精品电影| 国产午夜视频在线| 四川少BBB搡BBB爽爽爽| 欧美一区二区三区四| 大香煮伊在75| 日韩人妻精品无码久久边| 青草免费视频| 搞搞视频| 亚洲无码自拍偷拍| 爱搞视频在线播放| 日本特黄AA片免费视频| 欧美日韩免费在线| 精品久久免费视频| 在桌下含她的花蒂和舌头H视频 | 黄色视频网站国产| 久久久成人片| 精品人妻无码一区二区三区四川人| 成人精品一区日本无码网站suv| 亚洲高清视频在线播放| 无码一区二区三区免费看| 日本欧美一级片| 大香蕉伊人成人网| 日本三级片免费观看| 国产一级黄片| 最新中文字幕| 青青草视频在线观看| 人人色人人爱| 久久麻豆| 日本黄色免费| 久久成人毛片| 秋霞一级| 伊人天天干| 一区二区三区无码在线| 亚洲天堂一区二区| 国产精品自拍小视频| 久操视频免费在线观看| av东方在线| 午夜福利视频网| 五月婷婷婷婷| 中文无码字幕在线| 超碰97免费在线| 日韩视频――中文字幕| 天天操天天射天天日| 再深点好爽灬轻点久久国产| 操逼操123| 四虎A片| 亚洲高清无码免费观看| 青青青草视频在线观看| 一区二区水蜜桃| 亚洲国产精品成人久久蜜臀| 国产精品二区高清在线苍井空| 中文字幕+乱码+中文乱码电影| www.A片| 中文字幕在线观看免费高清电影| 成人免费黄色| 九九视频免费在线观看| 色五月丁香婷婷| 天堂资源在线| 日韩www| 日韩中文字| 中文在线最新版天堂8| 欧美性爱动态| 在线观看一级片| AV资源在线免费观看| 蜜桃亚洲AV无码一区二区三区| 欧美亚洲日韩一区二区| 精品人妻二区三区蜜桃| 久久久久久久久久久成人| 成人毛片在线播放| 亚洲免费播放| 中文字幕在线观看视频www| a无码| 午夜操一操一级|