精品欧美一区二区三区在线观看 _久久久久国色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)

亚洲电影第三页| 亚洲黄网站黄| 色先锋久久影院av| 久久天堂精品| 精品国产一区二区三区久久久狼| 网站在线你懂的| 羞羞的视频在线观看| 99国产欧美久久久精品| 国产成人精品免高潮在线观看| 婷婷丁香综合网| 福利片一区二区| 在线观看一区日韩| 国产树林野战在线播放| 右手影院亚洲欧美| 亚洲国产精品成人久久蜜臀| 亚洲高清二区| 色噜噜国产精品视频一区二区| 三上悠亚 电影| 精品亚洲美女网站| 亚洲成年人影院| 致1999电视剧免费观看策驰影院| 天堂av2024| 极品美女销魂一区二区三区免费| 亚州av一区二区| 91麻豆免费视频网站| 人人网欧美视频| 日韩免费福利电影在线观看| 欧美一区二区三区在线观看| 欧美性潮喷xxxxx免费视频看| 川上优的av在线一区二区| 国产中文字幕视频| 9999精品视频| 欧美亚洲一区二区在线| 少妇av一区二区三区无码| 成人片在线看| 国产精品成人免费| 日本不卡一区| 天天爽夜夜爽夜夜爽| 国产大陆a不卡| 国产一区二区香蕉| 伊人网视频在线| 日本午夜精品一区二区三区电影| 午夜精品国产精品大乳美女| 欧美国产精品一二三| 欧美高清视频手机在在线| 亚洲精品视频在线播放| 波多野结衣加勒比| 激情小说一区| 91传媒久久久| 在线免费观看亚洲视频| 成人一区二区| 亚洲天堂av网| 手机看片福利视频| 国内成人精品| 尤物99国产成人精品视频| 色哟哟精品观看| 久久av网址| 亚洲欧美精品在线| 免费看污片网站| 精品在线播放| 国产一区二区三区网| 欧美日韩国产激情| 每日在线更新av| 成人免费看黄| 欧美午夜一区二区| 岛国av免费在线| 精品视频91| 欧美不卡123| 少妇激情一区二区三区视频| 日本久久成人网| 亚洲男女性事视频| 特级西西www444人体聚色| 精品毛片免费观看| 北条麻妃久久精品| 青青草原国产视频| 国产精品久久久久9999高清| 欧洲s码亚洲m码精品一区| 男人天堂视频网| 久久精品国产成人一区二区三区 | 69久久夜色精品国产69蝌蚪网| 999在线观看| 亚洲成人黄色| 日韩高清人体午夜| 国产探花在线视频| 国产精品多人| 国产精品9999| 国产高清在线观看视频| 久久综合久久鬼色中文字| 伊人久久青草| 国产高清自产拍av在线| 欧美色大人视频| 在线观看免费视频黄| 国产精选一区| 久久99国产精品自在自在app| 日韩av大片在线观看| 精品一区二区影视| 精品国产一区二区三区麻豆小说| av网站在线免费观看| 亚洲图片欧美一区| 91精品无人成人www| 白嫩白嫩国产精品| 神马久久桃色视频| 黄网在线观看视频| 国产一区二区三区不卡在线观看 | 国产精品第一第二| www.久久久久久| 国产三级欧美三级日产三级99| 女人色极品影院| 国产极品嫩模在线观看91精品| 国色天香久久精品国产一区| 色八戒一区二区三区| 想看黄色一级片| 九九视频免费观看视频精品 | 91嫩草国产在线观看| 手机av免费在线观看| 综合久久久久综合| 国产视频在线视频| 国产图片一区| 久久福利视频导航| 亚洲一卡二卡在线| 国产亚洲婷婷免费| 九色在线视频观看| av成人资源网| 久久亚洲国产成人| 中文字幕人妻一区二区三区视频 | 日韩欧美美女一区二区三区| 这里只有久久精品| 一本一道久久综合狠狠老精东影业| 成人春色激情网| jizz在线观看视频| 福利二区91精品bt7086| aaaaa黄色片| 91精品亚洲| 成人h视频在线| 色欧美激情视频在线| 在线一区二区视频| 精品无码人妻一区| 亚洲影院在线| 精品人伦一区二区三区| 不卡一本毛片| 精品美女在线观看| 国产网站在线看| 成人免费视频网站在线观看| 男人的天堂视频在线| 超碰国产精品一区二页| 中文字幕亚洲自拍| 在线观看免费黄色小视频| 国产女主播一区| 天天视频天天爽| 久久国产电影| 91视频免费网站| 日韩伦理电影网站| 精品国精品自拍自在线| 国产无遮挡又黄又爽在线观看| 国产传媒日韩欧美成人| 日本黄色片一级片| 久久视频在线观看| 欧美专区国产专区| www.视频在线.com| 欧美电影在线免费观看| 欧美成人三级在线观看| www.视频一区| 国模杨依粉嫩蝴蝶150p| 欧美日韩老妇| 成人精品久久久| 青草影视电视剧免费播放在线观看| 日韩美女主播在线视频一区二区三区| 日韩精品一区三区| 久久―日本道色综合久久| 欧美亚洲日本在线观看| 色天天久久综合婷婷女18| 91欧美日韩一区| av资源在线播放| 国产午夜一区二区| 99在线精品视频免费观看软件| 亚洲综合成人在线视频| 特级西西人体wwwww| 奇米影视在线99精品| 免费日韩在线观看| 亚洲动漫在线观看| 成人免费网站在线| 国产调教在线| 深夜福利亚洲导航| 欧美自拍偷拍第一页| 欧美怡红院视频| 激情五月婷婷小说| 久久蜜臀中文字幕| 日本黄色www| 久久久久网站| 久久av高潮av| 精品久久美女| 国产日产精品一区二区三区四区| 日本中文字幕一区二区| 欧美激情视频在线免费观看 欧美视频免费一| 中文字幕精品三级久久久 | 日韩女优一区二区| 91免费观看视频在线| 九九九九九国产| 亚洲欧美日韩综合国产aⅴ| 日本黄色a视频| 亚洲都市激情| 99国精产品一二二线| 日本精品裸体写真集在线观看| 欧美黄色免费网站| 97电影在线| 日韩高清免费观看| 亚洲精品久久久久久无码色欲四季 | www国产成人| 性一交一黄一片| 久久精品国产77777蜜臀| a√天堂在线观看| 中文字幕一区二区三区乱码图片| 欧美一区二区三区四区在线观看地址 | 欧美日韩精品综合| 国产精品视频3p| 91夜夜未满十八勿入爽爽影院| 欧亚一区二区| 2019中文字幕全在线观看| 日本中文字幕中出在线| yellow中文字幕久久| www.国产精品.com| 亚洲视频在线观看免费| 亚洲欧洲精品视频| 亚洲第一精品久久忘忧草社区| 国产视频在线观看免费 | 黄色片网站免费在线观看| 欧美另类变人与禽xxxxx| 亚洲国产精品无码久久久| 精品久久久久人成| 中文字幕一区二区三区手机版 | 成人av在线播放| 国产在线视频91| 懂色aⅴ精品一区二区三区| 日韩av免费在线| 成人性生交大片免费网站| 91精品国产乱码久久久久久蜜臀| 牛牛精品在线视频| 欧美夫妻性生活视频| av黄色在线| 欧美成人免费一级人片100| 成人片在线看| 欧美高清激情视频| 美女日批视频在线观看| 色综合久久88| 丁香花在线高清完整版视频| 欧美福利视频网站| 国产夫妻在线| 欧美在线影院在线视频| 一区二区三区短视频| 欧美最顶级的aⅴ艳星| 午夜欧美巨大性欧美巨大 | 在线观看视频一区二区三区| 97人人模人人爽人人少妇| 欧州一区二区三区| 国产成人精品免费视频大全最热 | www.久久久.com| 97视频中文字幕| 红杏成人性视频免费看| 久久精品人成| 成人系列视频| 五月天男人天堂| 激情成人综合| 日韩人妻精品无码一区二区三区| 三级不卡在线观看| 国产永久免费网站| 丁香另类激情小说| www.久久av| 国产精品国产自产拍高清av王其| 成人免费精品动漫网站| 亚洲超碰97人人做人人爱| 在线观看日本视频| 欧美日韩高清影院| 亚洲av无码专区在线| 日韩高清不卡av| 好操啊在线观看免费视频| 久久久久久97| 韩国成人在线| 91精品国产一区二区三区动漫| 久久精品色综合| 亚洲精品在线免费| 黄色av成人| 高清一区二区视频| 国产成人8x视频一区二区 | 四虎成人av| 欧美图片激情小说| 免费看黄色91| 不许穿内裤随时挨c调教h苏绵| 99精品欧美一区| 欧美另类videoxo高潮| 亚洲福利电影网| 亚洲无码精品在线播放| 亚洲韩国青草视频| 久草资源在线| 国产成人亚洲综合青青| 欧美国产亚洲精品| 日韩欧美99| 亚洲每日更新| 无码人妻一区二区三区在线视频| 久久综合九色综合97_久久久| 91色在线porny| 97视频免费在线观看| 欧美日韩五码| 98国产高清一区| 国产免费播放一区二区| 青青在线免费视频| 视频一区在线视频| 日韩精品国产一区| 国产精品伦理在线| 黄色激情视频在线观看| 欧美高清视频在线高清观看mv色露露十八| 亚洲黄色在线观看视频| 中文字幕亚洲一区二区三区五十路| 丁香花在线影院| 92福利视频午夜1000合集在线观看| 日韩av三区| 日韩免费在线观看av| 久久精品噜噜噜成人av农村| 久久人人爽人人爽人人片| 一区二区三区在线观看网站| 中文字幕欧美人妻精品一区蜜臀| 亚洲毛片一区二区| 国产区美女在线| 亚洲综合社区网| 久久久久久久久久久久久久| 国产av人人夜夜澡人人爽| 91视视频在线观看入口直接观看www | 日韩在线视频导航| 欧美一区 二区 三区| 激情小说综合区| 影音先锋亚洲一区| 少妇伦子伦精品无吗| 亚洲日本护士毛茸茸| 亚洲综合精品国产一区二区三区 | 91精品国产综合久久福利| 国产乱理伦片a级在线观看| 18性欧美xxxⅹ性满足| 风间由美一区二区av101| 国产一区二区三区乱码| 国产成人欧美日韩在线电影| 国产女片a归国片aa| 欧美一区二区久久久| 国产成人无吗| 91久久精品www人人做人人爽 | 精品中文字幕视频| а天堂中文最新一区二区三区| 超碰免费在线公开| 国产成人免费av在线| 免费毛片在线播放免费| 精品欧美乱码久久久久久1区2区| 亚洲男同gay网站| 国产麻豆乱码精品一区二区三区| 亚洲人www| 少妇精品一区二区三区| 色女孩综合影院| av男人的天堂在线| 成人黄色中文字幕| 国产一区二区三区四区老人| 色哟哟视频在线| 黑人巨大精品欧美一区二区三区| 青青免费在线视频| 国产精品吴梦梦| 亚洲成人一区| 黄色污在线观看| 在线中文字幕一区| 国产原创视频在线观看| 国产精品国产精品| 久久av最新网址| 欧美aaa级片| 日韩精品一区二区三区在线观看| 毛片在线导航| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 国产**成人网毛片九色 | 四虎亚洲精品| 久精品国产欧美| 日韩成人精品在线| 久草视频手机在线| 亚洲精品xxx| 国产精品66| 久无码久无码av无码| 久久精品一区二区三区不卡 | 日韩大尺度黄色| 麻豆中文字幕在线观看| av亚洲精华国产精华精| 国语对白做受69按摩| 美女精品久久久| 性人久久久久| 女王人厕视频2ⅴk| 色综合中文字幕| h片在线播放| 青娱乐一区二区| 国产iv一区二区三区| 天天干天天插天天射| 欧美激情亚洲另类| 日韩国产在线| 玖草视频在线观看| 日韩美女一区二区三区四区| 日韩在线免费| 精品人妻少妇一区二区| 国产精品乱码一区二区三区软件| 色呦呦中文字幕|