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

區(qū)分理解Flink水印延遲與窗口允許延遲的概念

大數(shù)據(jù)
本文接下將展開討論分析“水印延遲”與“窗口允許延遲”概念及區(qū)別。

link 在開窗處理事件時(shí)間(Event Time) 數(shù)據(jù)時(shí),可設(shè)置水印延遲以及設(shè)置窗口允許延遲(allowedLateness)以保證數(shù)據(jù)的完整性。這兩者因都是設(shè)置延遲時(shí)間所以剛接觸時(shí)容易混淆。本文接下將展開討論分析“水印延遲”與“窗口允許延遲”概念及區(qū)別。

[[350692]]

水印延遲(WaterMark)

(1) 水印

由于采用了事件時(shí)間,脫離了物理掛鐘。窗口不知道什么時(shí)候需要關(guān)閉并進(jìn)行計(jì)算,這個(gè)時(shí)候需要借助水印來解決該問題。當(dāng)窗口遇到水位標(biāo)識時(shí)就默認(rèn)是窗口時(shí)間段內(nèi)的數(shù)據(jù)都到齊了,可以觸發(fā)窗口計(jì)算。

(2) 水印延遲

設(shè)置水印延遲時(shí)間的目的是讓水印延遲到達(dá),從而可以解決亂序問題。通過水印延遲到達(dá)讓在延遲時(shí)間范圍內(nèi)到達(dá)的遲到數(shù)據(jù)可以加入到窗口計(jì)算中,保證了數(shù)據(jù)的完整性。當(dāng)水印到達(dá)后就會觸發(fā)窗口計(jì)算,在水印之后到達(dá)的遲到數(shù)據(jù)則會被丟棄。

區(qū)分理解Flink水印延遲與窗口允許延遲的概念

窗口允許延遲(allowedLateness)

區(qū)分理解Flink水印延遲與窗口允許延遲的概念

使用 StreamAPI 時(shí),在進(jìn)行開窗后可設(shè)置 allowedLateness 窗口延遲。官網(wǎng)中對其解釋如下:

默認(rèn)情況下,當(dāng)水印到達(dá)窗口末端時(shí),遲到元素將會被刪除。但Flink允許為window operators指定允許的最大延遲。允許延遲指定元素在被刪除之前延遲的時(shí)間,默認(rèn)值為0。當(dāng)元素在水印經(jīng)過窗口末端后到達(dá),且它的到達(dá)時(shí)間在窗口末端加上運(yùn)行延遲的時(shí)間之內(nèi),其仍會被添加到窗口中。根據(jù)所使用的觸發(fā)器,延遲但未被丟棄的元素可能會再次觸發(fā)窗口計(jì)算。EventTimeTrigger就是這種情況。為了做到這一點(diǎn),F(xiàn)link保持窗口的狀態(tài),直到它們允許的延遲到期。一旦發(fā)生這種情況,F(xiàn)link將刪除窗口并刪除其狀態(tài),正如窗口生命周期部分中所描述的那樣。

簡單理解:通常在水印到達(dá)之后遲到數(shù)據(jù)將會被刪除,而窗口的延遲則是指數(shù)據(jù)在被刪除之前的允許保留時(shí)間。也就是說,在水印達(dá)到之后遲到數(shù)據(jù)本該被刪除,但是如果設(shè)置了窗口延遲,那么在水印之后到窗口延遲時(shí)間段內(nèi)到達(dá)的遲到數(shù)據(jù)還是會被加入到窗口計(jì)算中,并再次觸發(fā)窗口計(jì)算。

一個(gè)Demo 兩個(gè)猜想

下面我用一個(gè) Demo 和兩個(gè)猜想來幫助大家加深理解這兩個(gè)概念。

例子:接收 Kafka 數(shù)據(jù),數(shù)據(jù)為 JSON 格式如:{"word":"a","count":1,"time":1604286564}。我們開一個(gè) 5 秒的 tumbling windows 滾動窗口,以 word 作為 key 在窗口內(nèi)對 count 值進(jìn)行累加。同時(shí)設(shè)置水印延遲 2 秒,窗口延遲 2 秒。代碼如下:

  1. public class MyExample { 
  2.  
  3.     public static void main(String[] args) throws Exception { 
  4.         // 創(chuàng)建環(huán)境 
  5.         StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); 
  6.         env.setParallelism(1); 
  7.  
  8.         // 設(shè)置時(shí)間特性為 
  9.         env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime); 
  10.         // 水印策略,其需要注入Timestamp Assigner(描述了如何訪問事件時(shí)間戳)和 Watermark Generator (事件流顯示的超出正常范圍的程度) 
  11.         WatermarkStrategy<WC> watermarkStrategy = WatermarkStrategy 
  12.                 // forBoundedOutOfOrderness 屬于(periodic周期性),周期生成器通常通過onEvent()觀察傳入的事件,然后在框架調(diào)用onPeriodicEmit()時(shí)發(fā)出水印。 
  13.                 .<WC>forBoundedOutOfOrderness(Duration.ofSeconds(2)) 
  14.                 .withTimestampAssigner(new SerializableTimestampAssigner<WC>() { 
  15.                     @Override 
  16.                     public long extractTimestamp(WC wc, long l) { 
  17.                         return wc.getEventTime() * 1000; 
  18.                     } 
  19.                 }); 
  20.  
  21.         // Kafka 配置 
  22.         Properties properties = new Properties(); 
  23.         properties.setProperty("bootstrap.servers", "Kafka地址:9092"); 
  24.         properties.setProperty("group.id", "test"); 
  25.  
  26.         // Flink 需要知道如何轉(zhuǎn)換Kafka消息為Java對象(反序列化),默認(rèn)提供了 KafkaDeserializationSchema(序列化需要自己編寫)、JsonDeserializationSchema、AvroDeserializationSchema、TypeInformationSerializationSchema 
  27.         env.addSource(new FlinkKafkaConsumer<>("flinktest1", new JSONKeyValueDeserializationSchema(true), properties).setStartFromLatest()) 
  28.                 // map 構(gòu)建 WC 對象 
  29.                 .map(new MapFunction<ObjectNode, WC>() { 
  30.                     @Override 
  31.                     public WC map(ObjectNode jsonNode) throws Exception { 
  32.                         JsonNode valueNode = jsonNode.get("value"); 
  33.                         WC wc = new WC(valueNode.get("word").asText(),valueNode.get("count").asInt(),valueNode.get("time").asLong()); 
  34.                         return wc; 
  35.                     } 
  36.                 }) 
  37.                 // 設(shè)定水印策略 
  38.                 .assignTimestampsAndWatermarks(watermarkStrategy) 
  39.                 .keyBy(WC::getWord) 
  40.                 // 窗口設(shè)置,這里設(shè)置為滾動窗口 
  41.                 .window(TumblingEventTimeWindows.of(Time.seconds(5))) 
  42.                                 // 設(shè)置窗口延遲 
  43.                 .allowedLateness(Time.seconds(2)) 
  44.                 .reduce(new ReduceFunction<WC>() { 
  45.                     @Override 
  46.                     public WC reduce(WC wc, WC t1) throws Exception { 
  47.                         return new WC(wc.getWord(), wc.getCount() + t1.getCount()); 
  48.                     } 
  49.                 }) 
  50.                 .print(); 
  51.  
  52.         env.execute(); 
  53.     } 
  54.  
  55.  
  56.     static class WC { 
  57.         public String word; 
  58.         public int count; 
  59.         public long eventTime; 
  60.  
  61.         public long getEventTime() { 
  62.             return eventTime; 
  63.         } 
  64.  
  65.         public void setEventTime(long eventTime) { 
  66.             this.eventTime = eventTime; 
  67.         } 
  68.  
  69.         public String getWord() { 
  70.             return word; 
  71.         } 
  72.  
  73.         public void setWord(String word) { 
  74.             this.word = word; 
  75.         } 
  76.  
  77.         public int getCount() { 
  78.             return count; 
  79.         } 
  80.  
  81.         public void setCount(int count) { 
  82.             this.count = count; 
  83.         } 
  84.  
  85.         public WC(String word, int count) { 
  86.             this.word = word; 
  87.             this.count = count; 
  88.         } 
  89.          
  90.         public WC(String word, int count,long eventTime) { 
  91.             this.word = word; 
  92.             this.count = count; 
  93.             this.eventTime = eventTime; 
  94.         } 
  95.        
  96.         @Override 
  97.         public String toString() { 
  98.             return "WC{" + 
  99.                     "word='" + word + '\'' + 
  100.                     ", count=" + count + 
  101.                     '}'; 
  102.         } 
  103.     } 

猜想1:

水印延遲 2s 達(dá)到,所以會在第 5 + 2 = 7s 時(shí)認(rèn)為 [ 0 ,5 ) 窗口的數(shù)據(jù)全部到齊,并觸發(fā)窗口計(jì)算。

  1. // 往 Kafka 中寫入數(shù)據(jù) 
  2. {"word":"a","count":1,"time":1604286560}   //2020-11-02 11:09:20 
  3. {"word":"a","count":1,"time":1604286561}   //2020-11-02 11:09:21 
  4. {"word":"a","count":1,"time":1604286562}   //2020-11-02 11:09:22 
  5. {"word":"a","count":1,"time":1604286566}   //2020-11-02 11:09:26 
  6. {"word":"a","count":1,"time":1604286567}   //2020-11-02 11:09:27 (觸發(fā)了窗口計(jì)算) 

區(qū)分理解Flink水印延遲與窗口允許延遲的概念

控制臺輸出

分析:通過測試發(fā)現(xiàn)最后在第 7s 也就是 11:09:27 時(shí)觸發(fā)了窗口計(jì)算,這符合了我們的猜想一。水印延遲 2s 達(dá)到,所以會在第 5 + 2 = 7s 時(shí)認(rèn)為 [ 0 ,5 ) 窗口的數(shù)據(jù)全部到齊,并觸發(fā)窗口計(jì)算。計(jì)算結(jié)果為3,這是因?yàn)橹挥凶钋懊娴?條數(shù)據(jù)屬于 [0,5) 窗口計(jì)算范圍之內(nèi)。

猜想2:

設(shè)置了窗口延遲2秒,那么只要在水印之后到窗口允許延遲的時(shí)間范圍內(nèi)達(dá)到且屬于 [ 0,5) 窗口的遲到數(shù)據(jù)會被加入到窗口中,且再次觸發(fā)窗口運(yùn)算:

  1. // 繼續(xù)往 Kafka 中寫入數(shù)據(jù) 
  2. {"word":"a","count":1,"time":1604286568}   //2020-11-02 11:09:28 時(shí)間到達(dá)了第 8 秒 
  3. {"word":"a","count":1,"time":1604286563}   //2020-11-02 11:09:23 模擬一個(gè)在水印之后、在窗口允許延遲范圍內(nèi)、且屬于[0,5) 窗口的遲到數(shù)據(jù),該數(shù)據(jù)還是會觸發(fā)并參與到[0,5) 窗口的計(jì)算 

區(qū)分理解Flink水印延遲與窗口允許延遲的概念

控制臺輸出新增了一行

  1. // 我們再繼續(xù)往 Kafka 中寫入數(shù)據(jù) 
  2. {"word":"a","count":1,"time":1604286569}  //2020-11-02 11:09:29  時(shí)間到達(dá)第9秒 
  3. {"word":"a","count":1,"time":1604286563}  //2020-11-02 11:09:23 模擬一個(gè)在水印之后且超出窗口允許延遲范圍、且屬于[0,5) 窗口的遲到數(shù)據(jù),該數(shù)據(jù)不會參與和觸發(fā)[0,5)窗口計(jì)算 

查看控制臺并沒有發(fā)現(xiàn)新的輸出打印。

區(qū)分理解Flink水印延遲與窗口允許延遲的概念

解析:水印因延遲在第 7s 到達(dá)之后會觸發(fā)[0,5) 窗口計(jì)算,如果沒有設(shè)置窗口延遲的情況下,水印之后遲到且屬于 [0,5) 窗口的數(shù)據(jù)會被丟棄。上面我們實(shí)驗(yàn)設(shè)置窗口延遲 2s,實(shí)現(xiàn)的效果就是在水印之后,窗口允許延遲時(shí)間之內(nèi)(7 + 2 = 9s 之間),遲到且屬于 [0,5) 窗口的數(shù)據(jù)還是會觸發(fā)一次窗口計(jì)算,并參與到窗口計(jì)算中。而在 9s 之后,也就是超過窗口允許延時(shí)時(shí)間,那么遲到且屬于[0,5)的數(shù)據(jù)就會被丟棄。

總結(jié)

  • WaterMark 到達(dá)之前,窗口在攢數(shù)據(jù),不會觸發(fā)計(jì)算。
  • WaterMark 等于 windowEndTime 時(shí),第一次觸發(fā)窗口計(jì)算。
  • WaterMark 到達(dá)之后,allowlateness之前,如果來了數(shù)據(jù),每條數(shù)據(jù)都會觸發(fā)窗口計(jì)算。
  • 超過了allowlateness之后到達(dá)的遲到數(shù)據(jù)會丟棄。

水印用于解決亂序問題保證數(shù)據(jù)的完整性。而之所以有allowlateness的出現(xiàn)是因?yàn)槿绻鸚aterMark 加大會導(dǎo)致窗口計(jì)算延遲。WaterMark 設(shè)定的時(shí)間,是第一次觸發(fā)窗口計(jì)算的時(shí)間。allowlateness 表示,WaterMark 觸發(fā)窗口計(jì)算以后,還可以再等多久的遲到數(shù)據(jù),每次符合條件的數(shù)據(jù)到達(dá)都會再次觸發(fā)一次窗口計(jì)算。allowlateness 是在 Watermark 基礎(chǔ)上再做了一層遲到數(shù)據(jù)的保證。

 

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2020-11-13 16:40:05

RocketMQ延遲消息架構(gòu)

2011-06-08 14:22:51

延遲加載

2025-03-03 09:10:00

C++開發(fā)

2023-06-29 07:48:35

異步加載JavaScript

2009-07-02 09:39:37

Hibernate延遲

2024-04-30 11:44:24

2023-12-28 11:18:01

MySQL數(shù)據(jù)庫級聯(lián)從庫

2012-08-15 11:36:13

Hibernate

2023-10-23 10:02:58

RabbitMQ延遲隊(duì)列

2024-07-05 10:17:08

數(shù)據(jù)流系統(tǒng)CPU

2011-11-24 21:03:10

ibmdw

2009-07-15 17:11:31

JDBC的概念

2024-11-11 10:34:55

2009-06-17 11:18:02

Hibernate延遲

2009-09-24 11:41:46

Hibernate延遲

2018-03-26 14:21:51

音視頻延遲架構(gòu)網(wǎng)絡(luò)

2019-08-29 07:04:29

網(wǎng)絡(luò)延遲IP網(wǎng)絡(luò)

2009-09-25 10:47:25

Hibernate延遲

2010-01-26 13:28:42

24口全千兆交換機(jī)

2015-04-09 10:40:29

HTTP協(xié)議TCPHTTP事務(wù)延遲
點(diǎn)贊
收藏

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

久久久久久久久久久久久久久久av| www.日韩欧美| a在线视频观看| 青青久草在线| 美腿丝袜一区二区三区| 欧美精品一区三区| 免费成人深夜夜行p站| 国产一区二区主播在线| 樱花影视一区二区| 欧美日韩精品不卡| 国产成人a人亚洲精品无码| 中文精品在线| 久久天堂电影网| 亚洲永久精品ww.7491进入| 精品亚洲a∨一区二区三区18| 欧美午夜精品久久久久久浪潮 | 成人毛片视频免费看| 三级精品在线观看| 韩国视频理论视频久久| 亚洲aaa视频| 伊人久久综合影院| 精品国产亚洲在线| 日韩av.com| 国精产品一区一区三区四川| 亚洲成人第一页| 中文字幕一区二区三区最新 | 五月丁香综合缴情六月小说| 欧美成人xxx| 久久精品视频一区二区三区| 成人免费视频网站| 国产情侣一区二区| 麻豆精品久久久| 国产国产精品人在线视| 成年人免费看毛片| 欧美午夜不卡影院在线观看完整版免费| 影音先锋欧美精品| 少妇无套高潮一二三区| 亚洲成aⅴ人片久久青草影院| 亚洲第一页自拍| www.黄色网| 欧美影院在线| 日韩欧美在线123| 亚洲激情在线看| 韩国女主播一区二区| 色先锋资源久久综合| www.浪潮av.com| a国产在线视频| 亚洲天天做日日做天天谢日日欢 | 老妇喷水一区二区三区| 91国产视频在线| 亚洲免费激情视频| 1024日韩| 欧美一级高清免费| 亚洲天堂一区在线| 性娇小13――14欧美| 亚洲国产视频一区| 经典三级在线视频| av文字幕在线观看| 一区二区三区四区乱视频| 国产又粗又爽又黄的视频| 女女色综合影院| 亚洲欧洲精品天堂一级| av中文字幕av| 日本aa在线| 亚洲超碰精品一区二区| 日本日本19xxxⅹhd乱影响| 9999热视频在线观看| 欧美午夜无遮挡| 久久久精品麻豆| 欧美日韩卡一| 日韩女同互慰一区二区| 特级特黄刘亦菲aaa级| 女仆av观看一区| 亚洲视频专区在线| 成人18视频免费69| 欧美国产91| 国内精品小视频| 伊人中文字幕在线观看| 久久精品久久99精品久久| 成人羞羞国产免费| 蜜桃av中文字幕| 久久婷婷久久一区二区三区| 欧美激情第一页在线观看| 69视频在线观看| 夜色激情一区二区| 亚洲成熟丰满熟妇高潮xxxxx| 欧美精选视频一区二区| 91精品国产综合久久精品app| 黄色av电影网站| 九九热爱视频精品视频| 久久久国产精品视频| 日本一级淫片色费放| 日本va欧美va瓶| 国产精华一区| 成人好色电影| 亚洲国产成人tv| 污污的网站18| 97色成人综合网站| 中文字幕欧美日韩| 国产在线一区视频| 美女脱光内衣内裤视频久久影院| 亚洲综合在线中文字幕| 黄色av网站在线| 亚洲综合久久av| 国产区二区三区| 国产欧美一区二区三区米奇| 中文字幕综合一区| 国产成人无码精品| 国内精品免费**视频| 欧美日韩精品免费看| 影音先锋男人在线资源| 在线观看三级视频欧美| www.四虎在线| 亚洲v在线看| 国产99视频精品免视看7| 亚洲第一页在线观看| 国产精品久99| 激情五月亚洲色图| 欧美毛片免费观看| 精品中文字幕视频| 亚洲一区二区人妻| 久久久影视传媒| 野外做受又硬又粗又大视频√| 国产香蕉久久| 亚洲一二在线观看| 91浏览器在线观看| 国产不卡在线播放| 成人短视频在线看| 国产a亚洲精品| 一区二区国产精品视频| 亚洲午夜18毛片在线看| 国产成人小视频| 少妇精品久久久久久久久久| 色老头在线一区二区三区| 精品国产乱码久久久久久久久| 成人在线观看高清| 久久精品国产一区二区| 五码日韩精品一区二区三区视频| 欧美香蕉视频| 国产丝袜精品视频| av黄色在线播放| 99久久精品免费| 亚洲熟妇国产熟妇肥婆| 国产精品白浆| 97av在线播放| 亚洲欧洲精品视频| 欧美日韩另类在线| 大乳护士喂奶hd| 国产视频一区免费看| 精品一区二区日本| 亚洲欧洲日本韩国| 亚洲毛茸茸少妇高潮呻吟| 亚洲婷婷综合网| 国产日韩av一区二区| 国产精品一区二区羞羞答答| 成人午夜国产| 成人精品久久久| 中文字幕资源网在线观看| 日韩西西人体444www| 久久久久久天堂| 成人精品视频一区二区三区| 久久黄色片视频| 欧美男男gaytwinkfreevideos| 国产成人在线一区| 在线视频1区2区| 欧美日韩视频专区在线播放| 手机av在线看| 成人精品小蝌蚪| 男人操女人免费软件| 精品日韩欧美一区| 91九色精品视频| 韩国日本一区| 亚洲图片欧洲图片av| 亚洲一级av毛片| 亚洲高清视频的网址| 亚洲午夜福利在线观看| 免费一级欧美片在线观看| 亚洲免费视频播放| 牛牛影视久久网| 国产精品日韩专区| 另类视频在线| 国产亚洲精品久久久久久777 | 精品日本一线二线三线不卡| 国产免费av一区二区| 国产精品嫩草影院av蜜臀| 中文字幕avav| 久久综合中文| 最近免费观看高清韩国日本大全| 麻豆精品少妇| 国产精品中文在线| 91九色在线播放| 深夜福利一区二区| 国产91麻豆视频| 欧美性猛交一区二区三区精品| 麻豆影视在线播放| 国产亚洲综合性久久久影院| 成人免费播放视频| 久久综合中文| 日本午夜激情视频| 欧美va久久久噜噜噜久久| 国产伦理一区二区三区| 日韩在线激情| 777精品视频| 2024最新电影免费在线观看| 亚洲欧洲视频在线| 丁香花免费高清完整在线播放| 91黄视频在线| 日韩大片免费在线观看| 中文字幕日韩一区二区| 中文字幕一区二区人妻在线不卡| 国产经典欧美精品| 男人插女人下面免费视频| 亚洲激情一区| 中文字幕乱码免费| 久久国产亚洲精品| 欧美aaaaa喷水| 成人午夜三级| 91在线看网站| 4438五月综合| 国产精品久久久久av| 欧美男男tv网站在线播放| 欧美尺度大的性做爰视频| aaa在线免费观看| 亚洲欧洲高清在线| 日韩有码电影| 日韩av网址在线| 亚洲第一视频在线| 日韩欧美一区在线观看| 一级二级三级视频| 欧美亚洲高清一区二区三区不卡| 日韩 欧美 综合| 亚洲大型综合色站| 欧美性猛交xxxxx少妇| 国产精品对白交换视频| 欧美一区二区三区粗大| 久久久精品tv| 性高潮久久久久久久| 久久婷婷国产综合精品青草| 成人网站免费观看| av不卡一区二区三区| 国产51自产区| 成人久久18免费网站麻豆| 亚洲精品激情视频| 成人一级片网址| 成熟妇人a片免费看网站| 成人小视频在线| 国产免费一区二区三区最新6| 国产91在线看| 秘密基地免费观看完整版中文| 成人污污视频在线观看| 超碰caoprom| 91视频你懂的| 国产肥白大熟妇bbbb视频| 国产欧美日韩在线| 日韩av片在线免费观看| 亚洲欧洲精品天堂一级| 久久久久久久久久久久国产| 亚洲综合激情另类小说区| 精品在线视频免费| 五月婷婷久久丁香| 五月天激情国产综合婷婷婷| 色视频成人在线观看免| 一区二区视频在线免费观看| 69p69国产精品| 亚洲第一天堂影院| 亚洲免费伊人电影在线观看av| 黄色视屏网站在线免费观看| xx视频.9999.com| 性欧美猛交videos| 欧美一区深夜视频| 成人四虎影院| 91国产在线免费观看| 秋霞蜜臀av久久电影网免费| 日韩视频精品| 欧美精品网站| 男人的天堂99| 国产真实乱子伦精品视频| 久久久久亚洲av无码网站| 久久午夜色播影院免费高清| 精品亚洲乱码一区二区| 亚洲高清三级视频| 波多野结衣家庭主妇| 欧美一区二区三区免费在线看 | 波多野结衣中文字幕一区二区三区| 性少妇bbw张开| 亚洲三级理论片| 黄色一级片免费看| 欧美午夜精品免费| 精品人妻一区二区三区浪潮在线 | 久久精品国产精品国产精品污| 欧美色图国产精品| 青青青在线观看视频| 久久一区亚洲| 又色又爽又黄18网站| 欧美国产一区二区| 麻豆亚洲av熟女国产一区二| 欧美私模裸体表演在线观看| 亚洲国产999| 中文字幕亚洲欧美在线| 精精国产xxx在线视频app| 成人天堂噜噜噜| 综合国产视频| 国产夫妻自拍一区| 久久国产精品色婷婷| av网页在线观看| 亚洲理论在线观看| 国产免费a视频| 亚洲娇小xxxx欧美娇小| 97超碰资源站在线观看| 国产精品久久久久久久久影视| 久久精品亚洲成在人线av网址| 一区二区三区四区不卡| 丝袜诱惑亚洲看片| 永久免费未满蜜桃| 亚洲天堂久久久久久久| av首页在线观看| 亚洲精品视频在线播放| 国产精品原创| 成人欧美视频在线| 欧美一区二区| 成人亚洲免费视频| 国产婷婷色一区二区三区在线| 欧美三级午夜理伦| 精品乱人伦小说| 黄色网页在线播放| 国产久一一精品| 欧美午夜精品一区二区三区电影| 内射国产内射夫妻免费频道| 国产成人综合在线观看| 欧美日韩色视频| 4438x成人网最大色成网站| 啊v在线视频| 国产精品久久久久久久久久久久久| 亚洲丁香日韩| 色欲av无码一区二区人妻| 久久亚洲二区三区| 五月天激情国产综合婷婷婷| 亚洲精选一区二区| 少妇视频一区| 九九久久99| 亚洲资源av| jizz中文字幕| 欧美日韩一区二区三区不卡| yjizz视频网站在线播放| 国产精品久久久久久久美男 | 亚洲乱码一区| 4444亚洲人成无码网在线观看| 国产成人av电影在线播放| 久久久无码精品亚洲国产| 精品乱人伦小说| 欧美gv在线| 日本在线观看一区二区三区| 青青草精品视频| 亚洲av无一区二区三区| 91精品国产91久久久久久一区二区| 乱人伦中文视频在线| 2022国产精品| 99视频精品| av女人的天堂| 欧美高清性hdvideosex| 2024最新电影在线免费观看| 国产99在线播放| 亚洲免费中文| 欧美福利在线视频| 91精品福利在线一区二区三区| 国产福利在线免费观看| 蜜桃传媒视频麻豆一区| 男人操女人的视频在线观看欧美 | 在线国产一区| 日本性生活一级片| 欧美性xxxxhd| 日本电影全部在线观看网站视频| 亚洲自拍偷拍视频| av不卡在线| аⅴ天堂中文在线网| 欧美一卡二卡在线观看| 国产不卡123| 亚洲图片都市激情| 国产91精品精华液一区二区三区 | 91免费视频黄| gogogo免费视频观看亚洲一| 成年人晚上看的视频| 欧美成人久久久| 九九久久精品| 一区二区在线免费观看视频| 欧美性猛交xxxx富婆| 男人影院在线观看| 国精产品一区二区| 免费观看成人av| 国产真实乱偷精品视频| 夜夜嗨av色一区二区不卡| 年轻的保姆91精品| 999香蕉视频| 亚洲在线视频网站| 国产在线视频网址| 国产精品二区在线| 免费观看成人av| 国产无人区码熟妇毛片多| 成人97在线观看视频| 精品国产精品国产偷麻豆|