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

Apache Flink 漫談系列 - Watermark是個(gè)啥?

原創(chuàng)
開發(fā)
本文以一個(gè)流計(jì)算常見的亂序問題介紹了Apache Flink如何利用Watermark機(jī)制來處理亂序問題。

實(shí)際問題(亂序)

在介紹Watermark相關(guān)內(nèi)容之前我們先拋出一個(gè)具體的問題,在實(shí)際的流式計(jì)算中數(shù)據(jù)到來的順序?qū)τ?jì)算結(jié)果的正確性有至關(guān)重要的影響,比如:某數(shù)據(jù)源中的某些數(shù)據(jù)由于某種原因(如:網(wǎng)絡(luò)原因,外部存儲(chǔ)自身原因)會(huì)有5秒的延時(shí),也就是在實(shí)際時(shí)間的第1秒產(chǎn)生的數(shù)據(jù)有可能在第5秒中產(chǎn)生的數(shù)據(jù)之后到來(比如到Window處理節(jié)點(diǎn)).選具體某個(gè)delay的元素來說,假設(shè)在一個(gè)5秒的Tumble窗口(詳見后續(xù)Window篇介紹),有一個(gè)EventTime是 11秒的數(shù)據(jù),在第16秒時(shí)候到來了。圖示第11秒的數(shù)據(jù),在16秒到來了,如下圖:

圖片

那么對(duì)于一個(gè)Count聚合的Tumble(5s)的window,上面的情況如何處理才能window2=4,window3=2 呢?

Apache Flink的時(shí)間類型

開篇我們描述的問題是一個(gè)很常見的TimeWindow中數(shù)據(jù)亂序的問題,亂序是相對(duì)于事件產(chǎn)生時(shí)間和到達(dá)Apache Flink 實(shí)際處理算子的順序而言的,關(guān)于時(shí)間在Apache Flink中有如下三種時(shí)間類型,如下圖:

圖片

  • ProcessingTime 是數(shù)據(jù)流入到具體某個(gè)算子時(shí)候相應(yīng)的系統(tǒng)時(shí)間。ProcessingTime 有最好的性能和最低的延遲。但在分布式計(jì)算環(huán)境中ProcessingTime具有不確定性,相同數(shù)據(jù)流多次運(yùn)行有可能產(chǎn)生不同的計(jì)算結(jié)果。
  • IngestionTimeIngestionTime是數(shù)據(jù)進(jìn)入Apache Flink框架的時(shí)間,是在Source Operator中設(shè)置的。與ProcessingTime相比可以提供更可預(yù)測(cè)的結(jié)果,因?yàn)镮ngestionTime的時(shí)間戳比較穩(wěn)定(在源處只記錄一次),同一數(shù)據(jù)在流經(jīng)不同窗口操作時(shí)將使用相同的時(shí)間戳,而對(duì)于ProcessingTime同一數(shù)據(jù)在流經(jīng)不同窗口算子會(huì)有不同的處理時(shí)間戳。
  • EventTimeEventTime是事件在設(shè)備上產(chǎn)生時(shí)候攜帶的。在進(jìn)入Apache Flink框架之前EventTime通常要嵌入到記錄中,并且EventTime也可以從記錄中提取出來。在實(shí)際的網(wǎng)上購物訂單等業(yè)務(wù)場(chǎng)景中,大多會(huì)使用EventTime來進(jìn)行數(shù)據(jù)計(jì)算。

開篇描述的問題和本篇要介紹的Watermark所涉及的時(shí)間類型均是指EventTime類型。

什么是Watermark

Watermark是Apache Flink為了處理EventTime 窗口計(jì)算提出的一種機(jī)制,本質(zhì)上也是一種時(shí)間戳,由Apache Flink Source或者自定義的Watermark生成器按照需求Punctuated或者Periodic兩種方式生成的一種系統(tǒng)Event,與普通數(shù)據(jù)流Event一樣流轉(zhuǎn)到對(duì)應(yīng)的下游算子,接收到Watermark Event的算子以此不斷調(diào)整自己管理的EventTime clock。Apache Flink 框架保證Watermark單調(diào)遞增,算子接收到一個(gè)Watermark時(shí)候,框架知道不會(huì)再有任何小于該Watermark的時(shí)間戳的數(shù)據(jù)元素到來了,所以Watermark可以看做是告訴Apache Flink框架數(shù)據(jù)流已經(jīng)處理到什么位置(時(shí)間維度)的方式。Watermark的產(chǎn)生和Apache Flink內(nèi)部處理邏輯如下圖所示: 

圖片

Watermark的產(chǎn)生方式

目前Apache Flink 有兩種生產(chǎn)Watermark的方式,如下:

  • Punctuated數(shù)據(jù)流中每一個(gè)遞增的EventTime都會(huì)產(chǎn)生一個(gè)Watermark。 在實(shí)際的生產(chǎn)中Punctuated方式在TPS很高的場(chǎng)景下會(huì)產(chǎn)生大量的Watermark在一定程度上對(duì)下游算子造成壓力,所以只有在實(shí)時(shí)性要求非常高的場(chǎng)景才會(huì)選擇Punctuated的方式進(jìn)行Watermark的生成。
  • Periodic周期性的(一定時(shí)間間隔或者達(dá)到一定的記錄條數(shù))產(chǎn)生一個(gè)Watermark。在實(shí)際的生產(chǎn)中Periodic的方式必須結(jié)合時(shí)間和積累條數(shù)兩個(gè)維度繼續(xù)周期性產(chǎn)生Watermark,否則在極端情況下會(huì)有很大的延時(shí)。

所以Watermark的生成方式需要根據(jù)業(yè)務(wù)場(chǎng)景的不同進(jìn)行不同的選擇。

Watermark的接口定義

對(duì)應(yīng)Apache Flink Watermark兩種不同的生成方式,我們了解一下對(duì)應(yīng)的接口定義,如下:

  • Periodic Watermarks - AssignerWithPeriodicWatermarks
/**
* Returns the current watermark. This method is periodically called by the
* system to retrieve the current watermark. The method may return {@code null} to
* indicate that no new Watermark is available.
*
* <p>The returned watermark will be emitted only if it is non-null and itsTimestamp
* is larger than that of the previously emitted watermark (to preserve the contract of
* ascending watermarks). If the current watermark is still
* identical to the previous one, no progress in EventTime has happened since
* the previous call to this method. If a null value is returned, or theTimestamp
* of the returned watermark is smaller than that of the last emitted one, then no
* new watermark will be generated.
*
* <p>The interval in which this method is called and Watermarks are generated
* depends on {@link ExecutionConfig#getAutoWatermarkInterval()}.
*
* @see org.Apache.flink.streaming.api.watermark.Watermark
* @see ExecutionConfig#getAutoWatermarkInterval()
*
* @return {@code Null}, if no watermark should be emitted, or the next watermark to emit.
*/
@Nullable
Watermark getCurrentWatermark();
  • Punctuated Watermarks - AssignerWithPunctuatedWatermarks
public interface AssignerWithPunctuatedWatermarks<T> extends TimestampAssigner<T> {

/**
* Asks this implementation if it wants to emit a watermark. This method is called right after
* the {@link #extractTimestamp(Object, long)} method.
*
* <p>The returned watermark will be emitted only if it is non-null and its timestamp
* is larger than that of the previously emitted watermark (to preserve the contract of
* ascending watermarks). If a null value is returned, or the timestamp of the returned
* watermark is smaller than that of the last emitted one, then no new watermark will
* be generated.
*
* <p>For an example how to use this method, see the documentation of
* {@link AssignerWithPunctuatedWatermarks this class}.
*
* @return {@code Null}, if no watermark should be emitted, or the next watermark to emit.
*/
@Nullable
Watermark checkAndGetNextWatermark(T lastElement, long extractedTimestamp);
}
  • AssignerWithPunctuatedWatermarks 繼承了TimestampAssigner接口 -TimestampAssigner
public interface TimestampAssigner<T> extends Function {

/**
* Assigns a timestamp to an element, in milliseconds since the Epoch.
*
* <p>The method is passed the previously assigned timestamp of the element.
* That previous timestamp may have been assigned from a previous assigner,
* by ingestion time. If the element did not carry a timestamp before, this value is
* {@code Long.MIN_VALUE}.
*
* @param element The element that the timestamp will be assigned to.
* @param previousElementTimestamp The previous internal timestamp of the element,
* or a negative value, if no timestamp has been assigned yet.
* @return The new timestamp.
*/
long extractTimestamp(T element, long previousElementTimestamp);
}

從接口定義可以看出,Watermark可以在Event(Element)中提取EventTime,進(jìn)而定義一定的計(jì)算邏輯產(chǎn)生Watermark的時(shí)間戳。

Watermark解決如上問題

從上面的Watermark生成接口和Apache Flink內(nèi)部對(duì)Periodic Watermark的實(shí)現(xiàn)來看,Watermark的時(shí)間戳可以和Event中的EventTime 一致,也可以自己定義任何合理的邏輯使得Watermark的時(shí)間戳不等于Event中的EventTime,Event中的EventTime自產(chǎn)生那一刻起就不可以改變了,不受Apache Flink框架控制,而Watermark的產(chǎn)生是在Apache Flink的Source節(jié)點(diǎn)或?qū)崿F(xiàn)的Watermark生成器計(jì)算產(chǎn)生(如上Apache Flink內(nèi)置的 Periodic Watermark實(shí)現(xiàn)), Apache Flink內(nèi)部對(duì)單流或多流的場(chǎng)景有統(tǒng)一的Watermark處理。

回過頭來我們?cè)诳纯碬atermark機(jī)制如何解決上面的問題,上面的問題在于如何將遲來的EventTime 位11的元素正確處理。要解決這個(gè)問題我們還需要先了解一下EventTime window是如何觸發(fā)的?EventTime window 計(jì)算條件是當(dāng)Window計(jì)算的Timer時(shí)間戳 小于等于 當(dāng)前系統(tǒng)的Watermak的時(shí)間戳?xí)r候進(jìn)行計(jì)算。 

  • 當(dāng)Watermark的時(shí)間戳等于Event中攜帶的EventTime時(shí)候,上面場(chǎng)景(Watermark=EventTime)的計(jì)算結(jié)果如下:

圖片

上面對(duì)應(yīng)的DDL定義如下:

create table t1(
ts timestamp(3),
other bigint,
WATERMARK FOR ts AS ts
) with (
'connector' = 'xx'
)
  • 如果想正確處理遲來的數(shù)據(jù)可以定義Watermark生成策略為 Watermark = EventTime -5s, 如下:

圖片

上面對(duì)應(yīng)的DDL定義如下: 

create table t1(
ts timestamp(3),
other bigint,
WATERMARK FOR ts AS ts - interval '5' SECOND
) with (
'connector' = 'xx'
)

上面正確處理的根源是我們采取了 延遲觸發(fā) window 計(jì)算 的方式正確處理了 Late Event. 與此同時(shí),我們發(fā)現(xiàn)window的延時(shí)觸發(fā)計(jì)算,也導(dǎo)致了下游的LATENCY變大,本例子中下游得到window的結(jié)果就延遲了5s.

多流的Watermark處理

在實(shí)際的流計(jì)算中往往一個(gè)job中會(huì)處理多個(gè)Source的數(shù)據(jù),對(duì)Source的數(shù)據(jù)進(jìn)行GroupBy分組,那么來自不同Source的相同key值會(huì)shuffle到同一個(gè)處理節(jié)點(diǎn),并攜帶各自的Watermark,Apache Flink內(nèi)部要保證Watermark要保持單調(diào)遞增,多個(gè)Source的Watermark匯聚到一起時(shí)候可能不是單調(diào)自增的,這樣的情況Apache Flink內(nèi)部是如何處理的呢?如下圖所示:

圖片

Apache Flink內(nèi)部實(shí)現(xiàn)每一個(gè)邊上只能有一個(gè)遞增的Watermark, 當(dāng)出現(xiàn)多流攜帶Eventtime匯聚到一起(Join or Union)時(shí)候,Apache Flink會(huì)選擇所有流入的Eventtime中最小min(stream1, stream2...streamN)的一個(gè)向下游流出。從而保證watermark的單調(diào)遞增和保證數(shù)據(jù)的完整性.如下圖:

圖片

小結(jié)

本節(jié)以一個(gè)流計(jì)算常見的亂序問題介紹了Apache Flink如何利用Watermark機(jī)制來處理亂序問題. 本篇內(nèi)容在一定程度上也體現(xiàn)了EventTime Window中的Trigger機(jī)制依賴了Watermark(后續(xù)Window篇章會(huì)介紹)。Watermark機(jī)制是流計(jì)算中處理亂序,正確處理Late Event的核心手段。更多細(xì)節(jié)歡迎關(guān)注《Apache Flink 知其然,知其所以然》系列視頻課程!

作者介紹

孫金城,51CTO社區(qū)編輯,Apache Flink PMC 成員,Apache Beam Committer,Apache IoTDB PMC 成員,ALC Beijing 成員,Apache ShenYu 導(dǎo)師,Apache 軟件基金會(huì)成員。關(guān)注技術(shù)領(lǐng)域流計(jì)算和時(shí)序數(shù)據(jù)存儲(chǔ)。

責(zé)任編輯:張燕妮 來源: 孫金城
相關(guān)推薦

2018-10-09 10:55:52

Apache FlinWatermark流計(jì)算

2022-06-10 17:26:07

數(shù)據(jù)集計(jì)算

2018-09-26 08:44:22

Apache Flin流計(jì)算計(jì)算模式

2018-09-26 07:50:52

Apache Flin流計(jì)算計(jì)算模式

2018-10-16 08:54:35

Apache Flin流計(jì)算State

2022-07-13 12:53:59

數(shù)據(jù)存儲(chǔ)

2018-11-20 07:59:43

Apache Flin JOIN算子代碼

2018-11-29 09:01:26

Apache FlinJOIN代碼

2018-11-14 09:01:23

Apache FlinSQL代碼

2018-10-22 21:43:39

Apache Flin流計(jì)算Fault Toler

2019-01-03 10:17:53

Apache FlinTable API代碼

2018-12-11 17:28:22

Apache FlinJOIN代碼

2022-07-12 10:38:25

分布式框架

2018-11-07 08:48:31

Apache Flin持續(xù)查詢流計(jì)算

2019-01-15 08:50:12

Apache FlinKafka分布式

2018-10-30 14:08:45

Apache Flin流表對(duì)偶duality

2018-12-29 08:16:32

Apache FlinJOIN代碼

2024-04-09 07:50:59

Flink語義Watermark

2015-04-27 10:39:26

程序員

2020-06-02 07:44:04

AQS JavaNode
點(diǎn)贊
收藏

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

亚洲精美视频| 国产精品吹潮在线观看| 少妇伦子伦精品无吗| 国产三级伦理在线| 久久久99精品久久| 成人激情视频免费在线| 久久久久97国产| 伊人久久大香线蕉无限次| 在线一区二区三区四区| 日本黄xxxxxxxxx100| 天堂在线观看免费视频| 蜜臀久久久99精品久久久久久| 久久精品久久精品亚洲人| 最新版天堂资源在线| 国产精品专区免费| 亚洲欧美另类小说| 免费av在线一区二区| 一本色道久久综合无码人妻| 999亚洲国产精| 日韩在线精品一区| 亚洲天堂成人av| 国产精品3区| 日韩欧美大尺度| 国产精品啪啪啪视频| 粉嫩av一区| av中文字幕亚洲| 亚洲最大福利网站| 国产99久久久久久免费看| 亚洲午夜一级| 久久久成人精品视频| 97超碰在线资源| 超碰97久久| 91精品国产色综合久久不卡蜜臀| 蜜臀av午夜一区二区三区| 欧美色图天堂| 亚洲欧美另类小说| 一区二区三区偷拍| 国产高清视频在线| 2021中文字幕一区亚洲| 国产91视觉| 国产精品美女一区| 麻豆精品视频在线观看免费| 欧美一区二区三区免费观看 | 亚洲人成亚洲精品| 日韩精品专区在线影院观看| 亚洲色图欧美自拍| 欧美激情三区| 欧美日韩国产综合久久| 欧美日韩怡红院| 韩国成人动漫| 狠狠色香婷婷久久亚洲精品| 我的公把我弄高潮了视频| 在线中文字幕-区二区三区四区 | 免费视频一二三区| 亚洲精品在线观看91| 日韩有码视频在线| 四虎影视一区二区| 欧美3p视频| 日韩视频亚洲视频| 免费看一级大片| 亚洲区综合中文字幕日日| 久久爱www.| 久久久久久久久久看片| 欧美最大成人综合网| 青青草在线免费观看| 97久久超碰国产精品电影| 激情伦成人综合小说| 欧美视频一二区| 成av人片一区二区| 激情小说综合网| 免费一级毛片在线观看| 国产香蕉久久精品综合网| 欧美日韩一区二区三区在线观看免 | www日韩tube| 亚洲国产精品高清| 在线不卡日本| 中文在线免费| 午夜精品久久久| 激情综合网婷婷| 朝桐光一区二区| 欧美一区二区在线播放| www.com日本| 亚洲欧洲美洲国产香蕉| 中文字幕精品视频| 欧美日韩综合一区二区| 国产欧美一区二区色老头| 国产精品aaa| 国产人妻精品一区二区三区| 成人h精品动漫一区二区三区| 免费成人深夜夜行视频| 日本www在线| 亚洲线精品一区二区三区八戒| 欧美 日韩 国产在线观看| 香蕉成人av| 91精品综合久久久久久| 国产精品无码一区二区三| 精品一区av| 欧美肥老妇视频| 日韩免费av网站| 国产一区二区三区四| 免费99视频| 亚洲性图自拍| 91成人免费在线| 欧美日韩一区二区区| 夜夜躁狠狠躁日日躁2021日韩| 色999日韩欧美国产| 久一视频在线观看| 久久精品国产999大香线蕉| 国产精品视频免费一区| 2019中文字幕在线视频| 午夜在线成人av| 色播五月综合网| 欧美福利在线播放网址导航| www.xxxx欧美| 日本特级黄色片| 国产美女视频一区| 色噜噜一区二区| 黄色漫画在线免费看| 在线不卡免费av| 91网站免费视频| 怡红院精品视频在线观看极品| 国产精品一久久香蕉国产线看观看| 成人免费一级视频| 国产精品久久网站| 99热成人精品热久久66| 国产厕拍一区| 欧美成人精品xxx| 伊人成年综合网| 久久亚洲一级片| 黄页免费在线观看视频| 日韩中文字幕一区二区高清99| 在线亚洲男人天堂| 一级黄色在线视频| 99久久夜色精品国产网站| 青青视频免费在线观看| 日本电影久久久| 国产一区二区日韩精品欧美精品| 在线观看亚洲欧美| av一区二区三区四区| 国产1区2区3区中文字幕| 日韩国产一二三区| 色综合影院在线| 无码人妻一区二区三区线| 播五月开心婷婷综合| 无码 制服 丝袜 国产 另类| 7m精品国产导航在线| 欧美国产日韩精品| 高潮一区二区三区乱码| 亚洲精品国产a久久久久久| 91精产国品一二三产区别沈先生| 成人影院在线| 国产色视频一区| 日本欧美在线视频免费观看| 欧美日本国产视频| 我要看一级黄色录像| 韩国午夜理伦三级不卡影院| 91社在线播放| 欧美电影院免费观看| 欧美国产在线视频| 人成网站在线观看| 欧美日韩免费一区| 欧美特级黄色录像| 免费成人在线网站| 99亚洲精品视频| a级日韩大片| 4444欧美成人kkkk| 免费在线观看一级毛片| 91国内精品野花午夜精品| 欧美一区二区三区粗大| 精品一区二区在线观看| 免费观看中文字幕| www.亚洲一二| 欧洲美女7788成人免费视频| 成人高潮成人免费观看| 在线不卡a资源高清| 黄色一级片在线免费观看| aaa国产一区| 日韩一级片播放| 国产韩日影视精品| 国产伦精品一区二区三区免| 91九色国产在线播放| 精品一区二区三区四区在线| 中文字幕在线观看精品| 亚洲精品视频在线观看网站| 亚洲精品乱码久久| 日韩成人dvd| 久久久国内精品| 台湾色综合娱乐中文网| 国产日韩视频在线观看| 成人免费一区二区三区牛牛| 日韩精品中文字幕在线播放| 在线观看毛片av| 亚洲成人一区在线| 日本一级免费视频| 国产丶欧美丶日本不卡视频| 国产麻花豆剧传媒精品mv在线| 91精品国产91久久综合| 精品国产一区二区三区日日嗨| 免费视频成人| 久久久久久久久久久国产| 国产精品一级伦理| 亚洲精品一区二区三区四区高清| 中文天堂在线资源| 亚洲电影在线免费观看| 国产三级精品三级观看| 99久久精品国产网站| 中文字幕成人免费视频| 亚洲在线日韩| 日韩在线视频在线| 欧美独立站高清久久| 精品一区二区三区自拍图片区| 亚洲一区二区三区久久久| 97av视频在线| 日韩伦理电影网站| 中文字幕综合在线| 色就是色亚洲色图| 亚洲成人教育av| av手机免费看| 欧美日韩精品一二三区| 超碰超碰超碰超碰| 亚洲福利一二三区| 激情五月少妇a| 成人免费一区二区三区视频 | 人体久久天天| 亚洲在线免费看| 国产成人a视频高清在线观看| 午夜精品久久久99热福利| 天天综合视频在线观看| 亚洲日本欧美日韩高观看| 乱精品一区字幕二区| 欧美一区二区在线不卡| 亚洲视频在线观看免费视频| 色婷婷av一区二区| 天天操天天爽天天干| 亚洲一区在线观看视频| 欧美日韩精品一区二区三区视频播放| 国产精品久久福利| 毛片aaaaaa| 国产日韩欧美在线一区| 人人人妻人人澡人人爽欧美一区| 99久久国产综合精品女不卡| 无码任你躁久久久久久老妇| 懂色av一区二区三区免费观看| 色网站在线视频| 激情六月婷婷久久| 91视频这里只有精品| 国产资源在线一区| 91性高潮久久久久久久| 国产精品一区2区| 妖精视频在线观看| 国产高清不卡二三区| 91精品人妻一区二区三区蜜桃2| 国产酒店精品激情| 4438x全国最大成人| 国产成人免费视| 中文视频在线观看| av欧美精品.com| 在线 丝袜 欧美 日韩 制服| 久久精品夜色噜噜亚洲a∨| 永久免费成人代码| 中文字幕国产一区| 亚洲波多野结衣| 一区二区三区精品在线观看| 亚洲一区二区91| 亚洲一区自拍偷拍| 西西44rtwww国产精品| 91国偷自产一区二区开放时间 | 3d成人动漫网站| 国产v在线观看| 亚洲成人av片| 噜噜噜噜噜在线视频| 最新国产成人av网站网址麻豆| 九七久久人人| 性视频1819p久久| 肉色欧美久久久久久久免费看| 国产精品美女无圣光视频| 95精品视频| 国产日韩精品推荐| 精品久久成人| 喜爱夜蒲2在线| 日韩视频在线一区二区三区| 黄色一级大片在线观看| 久草中文综合在线| 极品人妻一区二区| 国产午夜精品在线观看| 91视频青青草| 第一福利永久视频精品| 91精东传媒理伦片在线观看| 亚洲国产日韩欧美在线动漫| 福利片在线看| 欧美激情精品久久久久久黑人| 欧美18av| 成人av资源| 成人av国产| 男人添女荫道口图片| 免费xxxx性欧美18vr| 黄色免费看视频| 亚洲欧洲日韩av| 国产一级18片视频| 日韩一区二区在线看| 免费在线观看一级毛片| 九九视频这里只有精品| 成人啊v在线| 国产女人水真多18毛片18精品 | 亚洲AV无码成人精品区东京热| 欧美日韩国产片| 人成在线免费视频| 欧美日韩国产成人在线| 精品国产欧美日韩一区二区三区| 懂色中文一区二区三区在线视频 | 在线日韩中文字幕| 成年人国产在线观看| 国产欧美日韩丝袜精品一区| 欧美性生活一级片| 粉嫩av一区二区三区天美传媒| 日韩av二区在线播放| 欧美双性人妖o0| 亚洲欧美偷拍三级| 中文字幕一区二区三区人妻四季| 亚洲国产日韩欧美综合久久| 色呦呦在线观看视频| 成人羞羞国产免费| 精品国精品国产自在久国产应用| 美女日批免费视频| 国产成人精品免费视频网站| 中文字幕乱码av| 欧美又粗又大又爽| 青青色在线视频| 8x拔播拔播x8国产精品| 成人免费在线电影网| 992tv快乐视频| 国产曰批免费观看久久久| 国产一二三四视频| 欧洲生活片亚洲生活在线观看| 亚洲av片在线观看| 97国产精品免费视频| 成人午夜网址| 免费看毛片的网址| 成人网在线播放| 国产精品第72页| 亚洲黄色www| 97人人爽人人澡人人精品| 高清av免费一区中文字幕| 欧美日韩亚洲国产精品| 亚洲高清视频免费| 亚洲美女精品一区| 国产黄色av片| 欧美激情区在线播放| 成人av影音| 人妻少妇精品无码专区二区| 波多野结衣亚洲一区| 久久一区二区三区视频| 亚洲欧美三级伦理| 巨胸喷奶水www久久久免费动漫| 欧美一区二区综合| 日韩成人av影视| 男人在线观看视频| 日韩欧美资源站| 高清在线视频不卡| 欧美日韩综合久久| 蜜桃av一区二区三区| 天天操天天操天天操天天操天天操| 在线不卡中文字幕播放| 欧美xxxx少妇| 国产精品亚洲综合| 亚洲综合二区| 欧美激情视频二区| 91精品国产91热久久久做人人| 青青草原av在线| 久久免费看av| 日本午夜精品视频在线观看| 小嫩苞一区二区三区| 精品区一区二区| 成人动漫一区| 亚洲午夜精品久久久中文影院av| 国产一区二区三区黄视频| 国产极品美女高潮无套嗷嗷叫酒店| 日韩电影网在线| 另类一区二区| 人妻夜夜添夜夜无码av| 国产三级一区二区| 国产sm主人调教女m视频| 国产91精品青草社区| 欧美a级片视频| 制服丝袜av在线| 欧美性大战久久久久久久蜜臀| 怡红院在线播放| 久久精品magnetxturnbtih| 毛片不卡一区二区| 国产无遮挡免费视频| 尤物精品国产第一福利三区 | 欧美aaa级片| 日韩一级高清毛片| 欧美成人资源| 强开小嫩苞一区二区三区网站| 99久久久精品| 国产精品无码在线播放| 91国内在线视频| 香蕉精品视频在线观看| 制服丝袜第二页|