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

Apache Flink 漫談系列(02) - 概述

開發 開發工具
本篇文章我們用一句話聊聊什么是 Apache Flink 的命脈?我的答案是:Apache Flink 是以"批是流的特例"的認知進行系統設計的。

一、Apache Flink 的命脈

"命脈" 即生命與血脈,常喻極為重要的事物。系列的首篇,首篇的首段不聊Apache Flink的歷史,不聊Apache Flink的架構,不聊Apache Flink的功能特性,我們用一句話聊聊什么是 Apache Flink 的命脈?我的答案是:Apache Flink 是以"批是流的特例"的認知進行系統設計的。

二、唯快不破

我們經常聽說 "天下武功,唯快不破",大概意思是說 "任何一種武功的招數都是有拆招的,唯有速度快,快到對手根本來不及反應,你就將對手KO了,對手沒有機會拆招,所以唯快不破"。 那么這與Apache Flink有什么關系呢?Apache Flink是Native Streaming(純流式)計算引擎,在實時計算場景最關心的就是"快",也就是 "低延時"。

就目前最熱的兩種流計算引擎Apache Spark和Apache Flink而言,誰最終會成為No1呢?單從 "低延時" 的角度看,Spark是Micro Batching(微批式)模式,***延遲Spark能達到0.5~2秒左右,Flink是Native Streaming(純流式)模式,***延時能達到微秒。很顯然是相對較晚出道的 Apache Flink 后來者居上。 那么為什么Apache Flink能做到如此之 "快"呢?根本原因是Apache Flink 設計之初就認為 "批是流的特例",整個系統是Native Streaming設計,每來一條數據都能夠觸發計算。相對于需要靠時間來積攢數據Micro Batching模式來說,在架構上就已經占據了絕對優勢。

那么為什么關于流計算會有兩種計算模式呢?歸其根本是因為對流計算的認知不同,是"流是批的特例" 和 "批是流的特例" 兩種不同認知產物。

1. Micro Batching 模式

Micro-Batching 計算模式認為 "流是批的特例", 流計算就是將連續不斷的批進行持續計算,如果批足夠小那么就有足夠小的延時,在一定程度上滿足了99%的實時計算場景。那么那1%為啥做不到呢?這就是架構的魅力,在Micro-Batching模式的架構實現上就有一個自然流數據流入系統進行攢批的過程,這在一定程度上就增加了延時。具體如下示意圖:

Micro Batching 模式

很顯然Micro-Batching模式有其天生的低延時瓶頸,但任何事物的存在都有兩面性,在大數據計算的發展歷史上,最初Hadoop上的MapReduce就是優秀的批模式計算框架,Micro-Batching在設計和實現上可以借鑒很多成熟實踐。

2. Native Streaming 模式

Native Streaming 計算模式認為 ""批是流的特例",這個認知更貼切流的概念,比如一些監控類的消息流,數據庫操作的binlog,實時的支付交易信息等等自然流數據都是一條,一條的流入。Native Streaming 計算模式每條數據的到來都進行計算,這種計算模式顯得更自然,并且延時性能達到更低。具體如下示意圖:

Native Streaming 模式

很明顯Native Streaming模式占據了流計算領域 "低延時" 的核心競爭力,當然Native Streaming模式的實現框架是一個歷史先河,***個實現Native Streaming模式的流計算框架是***個吃螃蟹的人,需要面臨更多的挑戰,后續章節我們會慢慢介紹。當然Native Streaming模式的框架實現上面很容易實現Micro-Batching和Batching模式的計算,Apache Flink就是Native Streaming計算模式的流批統一的計算引擎。

三、豐富的部署模式

Apache Flink 按不同的需求支持Local,Cluster,Cloud三種部署模式,同時Apache Flink在部署上能夠與其他成熟的生態產品進行***集成,如 Cluster模式下可以利用YARN(Yet Another Resource Negotiator)/Mesos集成進行資源管理,在Cloud部署模式下可以與GCE(Google Compute Engine), EC2(Elastic Compute Cloud)進行集成。

1. Local 模式

該模式下Apache Flink 整體運行在Single JVM中,在開發學習中使用,同時也可以安裝到很多端類設備上。

2. Cluster模式

該模式是典型的投產的集群模式,Apache Flink 既可以Standalone的方式進行部署,也可以與其他資源管理系統進行集成部署,比如與YARN進行集成。

這種部署模式是典型的Master/Slave模式,我們以Standalone Cluster模式為例示意如下:

其中JM(JobManager)是Master,TM(TaskManager)是Slave,這種Master/Slave模式有一個典型的問題就是SPOF(single point of failure), SPOF如何解決呢?Apache Flink 又提供了HA(High Availability)方案,也就是提供多個Master,在任何時候總有一個JM服役,N(N>=1)個JM候選,進而解決SPOF問題,示意如下:

在實際的生產環境我們都會配置HA方案,目前Alibaba內部使用的也是基于YARN Cluster的HA方案。

3. Cloud 模式

該模式主要是與成熟的云產品進行集成,Apache Flink官網介紹了Google的GCE 參考,Amazon的EC2 參考,在Alibaba我們也可以將Apache Flink部署到Alibaba的ECS(Elastic Compute Service)。

四、完善的容錯機制

1. 什么是容錯

容錯(Fault Tolerance) 是指容忍故障,在故障發生時能夠自動檢測出來并使系統能夠自動回復正常運行。當出現某些指定的網絡故障、硬件故障、軟件錯誤時,系統仍能執行規定的一組程序,或者說程序不會因系統中的故障而中止,并且執行結果也不會因系統故障而引起計算差錯。

2. 容錯的處理模式

在一個分布式系統中由于單個進程或者節點宕機都有可能導致整個Job失敗,那么容錯機制除了要保證在遇到非預期情況系統能夠"運行"外,還要求能"正確運行",也就是數據能按預期的處理方式進行處理,保證計算結果的正確性。計算結果的正確性取決于系統對每一條計算數據處理機制,一般有如下三種處理機制:

  • At Most Once:最多消費一次,這種處理機制會存在數據丟失的可能。
  • At Least Once:最少消費一次,這種處理機制數據不會丟失,但是有可能重復消費。
  • Exactly Once:精確一次,無論何種情況下,數據都只會消費一次,這種機制是對數據準確性的***要求,在金融支付,銀行賬務等領域必須采用這種模式。

3. Apache Flink的容錯機制

Apache Flink的Job會涉及到3個部分,外部數據源(External Input), Flink內部數據處理(Flink Data Flow)和外部輸出(External Output)。如下示意圖:

目前Apache Flink 支持兩種數據容錯機制:

  • At Least Once
  • Exactly Once

其中 Exactly Once 是最嚴格的容錯機制,該模式要求每條數據必須處理且僅處理一次。那么對于這種嚴格容錯機制,一個完整的Flink Job容錯要做到 End-to-End 的 容錯必須結合三個部分進行聯合處理,根據上圖我們考慮三個場景:

  • 場景一:Flink的Source Operator 在讀取到Kafla中pos=2000的數據時候,由于某種原因宕機了,這個時候Flink框架會分配一個新的節點繼續讀取Kafla數據,那么新的處理節點怎樣處理才能保證數據處理且只被處理一次呢?

 

  • 場景二:Flink Data Flow內部某個節點,如果上圖的agg()節點發生問題,在恢復之后怎樣處理才能保持map()流出的數據處理且只被處理一次?

  • 場景三:Flink的Sink Operator 在寫入Kafka過程中自身節點出現問題,在恢復之后如何處理,計算結果才能保證寫入且只被寫入一次?

4. 系統內部容錯

Apache Flink利用Checkpointing機制來處理容錯,Checkpointing的理論基礎 Stephan 在 Lightweight Asynchronous Snapshots for Distributed Dataflows 進行了細節描述,該機制源于有K. MANI CHANDY和LESLIE LAMPORT 發表的 Determining-Global-States-of-a-Distributed-System Paper。Apache Flink 基于Checkpointing機制對Flink Data Flow實現了At Least Once 和 Exactly Once 兩種容錯處理模式。

Apache Flink Checkpointing的內部實現會利用 Barriers,StateBackend等后續章節會詳細介紹的技術來將數據的處理進行Marker。Apache Flink會利用Barrier將整個流進行標記切分,如下示意圖:

這樣Apache Flink的每個Operator都會記錄當前成功處理的Checkpoint,如果發生錯誤,就會從上一個成功的Checkpoint開始繼續處理后續數據。比如 Soruce Operator會將讀取外部數據源的Position實時的記錄到Checkpoint中,失敗時候會從Checkpoint中讀取成功的position繼續精準的消費數據。每個算子會在Checkpoint中記錄自己恢復時候必須的數據,比如流的原始數據和中間計算結果等信息,在恢復的時候從Checkpoint中讀取并持續處理流數據。

5. 外部Source容錯

Apache Flink 要做到 End-to-End 的 Exactly Once 需要外部Source的支持,比如上面我們說過 Apache Flink的Checkpointing機制會在Source節點記錄讀取的Position,那就需要外部數據提供讀取的Position和支持根據Position進行數據讀取。

6. 外部Sink容錯

Apache Flink 要做到 End-to-End 的 Exactly Once 相對比較困難,如上場景三所述,當Sink Operator節點宕機,重新恢復時候根據Apache Flink 內部系統容錯 exactly once的保證,系統會回滾到上次成功的Checkpoin繼續寫入,但是上次成功Checkpoint之后當前Checkpoint未完成之前已經把一部分新數據寫入到kafka了. Apache Flink自上次成功的Checkpoint繼續寫入kafka,就造成了kafka再次接收到一份同樣的來自Sink Operator的數據,進而破壞了End-to-End 的 Exactly Once 語義(重復寫入就變成了At Least Once了),如果要解決這一問題,Apache Flink 利用Two phase commit(兩階段提交)的方式來進行處理。本質上是Sink Operator 需要感知整體Checkpoint的完成,并在整體Checkpoint完成時候將計算結果寫入Kafka。

五、流批統一的計算引擎

批與流是兩種不同的數據處理模式,如Apache Storm只支持流模式的數據處理,Apache Spark只支持批(Micro Batching)模式的數據處理。那么Apache Flink 是如何做到既支持流處理模式也支持批處理模式呢?

1. 統一的數據傳輸層

開篇我們就介紹Apache Flink 的 "命脈"是以"批是流的特例"為導向來進行引擎的設計的,系統設計成為 "Native Streaming"的模式進行數據處理。那么Apache FLink將批模式執行的任務看做是流式處理任務的特殊情況,只是在數據上批是有界的(有限數量的元素)。

Apache Flink 在網絡傳輸層面有兩種數據傳輸模式:

  • PIPELINED模式 - 即一條數據被處理完成以后,立刻傳輸到下一個節點進行處理。
  • BATCH 模式 - 即一條數據被處理完成后,并不會立刻傳輸到下一個節點進行處理,而是寫入到緩存區,如果緩存寫滿就持久化到本地硬盤上,***當所有數據都被處理完成后,才將數據傳輸到下一個節點進行處理。

對于批任務而言同樣可以利用PIPELINED模式,比如我要做count統計,利用PIPELINED模式能拿到更好的執行性能。只有在特殊情況,比如SortMergeJoin,這時候我們需要全局數據排序,才需要BATCH模式。大部分情況流與批可用統一的傳輸策略,只有特殊情況,才將批看做是流的一個特例繼續特殊處理。

2. 統一任務調度層

Apache Flink 在任務調度上流與批共享統一的資源和任務調度機制(后續章節會詳細介紹)。

3. 統一的用戶API層

Apache Flink 在DataStremAPI和DataSetAPI基礎上,為用戶提供了流批統一的上層TableAPI和SQL,在語法和語義上流批進行高度統一。(其中DataStremAPI和DataSetAPI對流和批進行了分別抽象,這一點并不優雅,在Alibaba內部對其進行了統一抽象)。

4. 求同存異

Apache Flink 是流批統一的計算引擎,并不意味著流與批的任務都走統一的code path,在對底層的具體算子的實現也是有各自的處理的,在具體功能上面會根據不同的特性區別處理。比如 批沒有Checkpoint機制,流上不能做SortMergeJoin。

六、Apache Flink 架構

1. 組件棧

我們上面內容已經介紹了很多Apache Flink的各種組件,下面我們整體概覽一下全貌,如下:

Apache Flink的各種組件

TableAPI和SQL都建立在DataSetAPI和DataStreamAPI的基礎之上,那么TableAPI和SQL是如何轉換為DataStream和DataSet的呢?

2. TableAPI&SQL到DataStrem&DataSet的架構

TableAPI&SQL最終會經過Calcite優化之后轉換為DataStream和DataSet,具體轉換示意如下:

對于流任務最終會轉換成DataStream,對于批任務最終會轉換成DataSet。

3. ANSI-SQL的支持

Apache Flink 之所以利用ANSI-SQL作為用戶統一的開發語言,是因為SQL有著非常明顯的優點,如下:

  • Declarative - 用戶只需要表達我想要什么,不用關心如何計算。
  • Optimized - 查詢優化器可以為用戶的 SQL 生成***的執行計劃,獲取***的查詢性能。
  • Understandable - SQL語言被不同領域的人所熟知,用SQL 作為跨團隊的開發語言可以很大地提高效率。
  • Stable - SQL 是一個擁有幾十年歷史的語言,是一個非常穩定的語言,很少有變動。
  • Unify - Apache Flink在引擎上對流與批進行統一,同時又利用ANSI-SQL在語法和語義層面進行統一。

4. ***擴展的優化機制

Apache Flink 利用Apache Calcite對SQL進行解析和優化,Apache Calcite采用Calcite是開源的一套查詢引擎,實現了兩套Planner:

  • HepPlanner - 是RBO(Rule Base Optimize)模式,基于規則的優化。
  • VolcanoPlanner - 是CBO(Cost Base Optimize)模式,基于成本的優化。

Flink SQL會利用Calcite解析優化之后,最終轉換為底層的DataStrem和Dataset。上圖中 Batch rules和Stream rules可以根據優化需要***添加優化規則。

七、豐富的類庫和算子

Apache Flink 優秀的架構就像一座摩天大廈的地基一樣為Apache Flink 持久的生命力打下了良好的基礎,為打造Apache Flink豐富的功能生態留下***的空間。

1. 類庫

  • CEP - 復雜事件處理類庫,核心是一個狀態機,廣泛應用于事件驅動的監控預警類業務場景。
  • ML - 機器學習類庫,機器學習主要是識別數據中的關系、趨勢和模式,一般應用在預測類業務場景。
  • GELLY - 圖計算類庫,圖計算更多的是考慮邊和點的概念,一般被用來解決網狀關系的業務場景。

2. 算子

Apache Flink 提供了豐富的功能算子,對于數據流的處理來講,可以分為單流處理(一個數據源)和多流處理(多個數據源)。

3. 多流操作

  • UNION - 將多個字段類型一致數據流合并為一個數據流,如下示意:
  • JOIN - 將多個數據流(數據類型可以不一致)聯接為一個數據流,如下示意:

如上通過UION和JOIN我們可以將多流最終變成單流,Apache Flink 在單流上提供了更多的操作算子。

4. 單流操作

將多流變成單流之后,我們按數據輸入輸出的不同歸類如下:

如上表格對單流上面操作做簡單歸類,除此之外還可以做 過濾,排序,窗口等操作,我們后續章節會逐一介紹。

4. 存在的問題

Apache Flink 目前的架構還存在很大的優化空間,比如前面提到的DataStreamAPI和DataSetAPI其實是流與批在API層面不統一的體現,同時看具體實現會發現DataStreamAPI會生成Transformation tree然后生成StreamGraph,***生成JobGraph,底層對應StreamTask,但DataSetAPI會形成Operator tree,flink-optimize模塊會對Batch Plan進行優化,形成Optimized Plan 后形成JobGraph,***形成BatchTask。具體示意如下:

這種情況其實 DataStreamAPI到Runtime 和 DataSetAPI到Runtime的實現上并沒有得到***程度的統一和復用。在這一點上面Aalibab 對Apache Flink 的增強在架構和實現上都進行了進一步優化。

八、Alibaba對Apache Flink的增強架構

1. 組件棧

Alibaba 對Apache Flink進行了大量的架構優化,如下架構是一直努力的方向,大部分功能還在持續開發中,具體如下:

如上架構我們發現較大的變化是:

  • Query Processing - 我們增加了Query Processing層,在這一層進行統一的流和批的查詢優化和底層算子的轉換。
  • DAG API - 我們在Runtime層面統一抽象API接口,在API層對流與批進行統一。

2. TableAPI&SQL到Runtime的架構

Apache Flink執行層是流批統一的設計,在API和算子設計上面我們盡量達到流批的共享,在TableAPI和SQL層無論是流任務還是批任務最終都轉換為統一的底層實現。示意圖如下:

這個層面最核心的變化是批最終也會生成StreamGraph,執行層運行Stream Task。

九、特別說明

后續章節會以Alibaba對Apache Flink的增強為主介紹功能算子,篇章中分享的功能可能開源暫時沒有,但這些的內容后續Alibaba會共享給社區,需要大家耐心等待。

十、小結

本篇概要的介紹了"批是流的特例"這一設計觀點是Apache Flink的"命脈",它決定了Apache Flink的運行模式是純流式的,這在實時計算場景的"低延遲"需求上,相對于Micro Batching模式占據了架構的絕對優勢,同時概要的向大家介紹了Apache Flink的部署模式,容錯處理,引擎的統一性和Apache Flink的架構,***和大家分享了Alibaba對Apache Flink的增強架構,以及對開源Apache Flink所作出的優化。

本篇沒有對具體技術進行詳細展開,大家只要對Apache Flink有初步感知,頭腦中知道Alibaba對Apache Flink進行了架構優化,增加了眾多功能就可以了,至于Apache Flink的具體技術細節和實現原理,以及Alibaba對Apache Flink做了哪些架構優化和增加了哪些功能后續章節會展開介紹!

# 關于點贊和評論

本系列文章難免有很多缺陷和不足,真誠希望讀者對有收獲的篇章給予點贊鼓勵,對有不足的篇章給予反饋和建議,先行感謝大家!

作者孫金城,花名 金竹,目前就職于阿里巴巴,自2015年以來一直投入于基于Apache Flink的阿里巴巴計算平臺Blink的設計研發工作。

【本文為51CTO專欄作者“金竹”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2019-01-03 10:17:53

Apache FlinTable API代碼

2022-06-10 17:26:07

數據集計算

2018-10-09 10:55:52

Apache FlinWatermark流計算

2022-07-13 12:53:59

數據存儲

2018-10-16 08:54:35

Apache Flin流計算State

2018-09-26 07:50:52

Apache Flin流計算計算模式

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流計算Fault Toler

2018-12-11 17:28:22

Apache FlinJOIN代碼

2022-07-13 13:03:29

流計算亂序

2022-07-12 10:38:25

分布式框架

2018-11-07 08:48:31

Apache Flin持續查詢流計算

2019-01-15 08:50:12

Apache FlinKafka分布式

2018-10-30 14:08:45

Apache Flin流表對偶duality

2018-12-29 08:16:32

Apache FlinJOIN代碼

2021-06-11 07:49:01

Docker容器安全 應用程序

2020-04-09 11:08:30

PyFlinkJAR依賴

2018-10-30 11:10:05

Flink數據集計算
點贊
收藏

51CTO技術棧公眾號

x88av在线| 国产妇女馒头高清泬20p多| 中国一区二区视频| 欧美精品一区二区三区精品| 欧美视频你懂的| 亚洲电影一二三区| 国产肥老妇视频| 国产精品美女| xxxxx成人.com| 国产xxxx视频| 福利视频亚洲| 亚洲国产成人高清精品| 日本精品一区二区三区不卡无字幕 | 精品av导航| 欧美午夜在线一二页| 国产 欧美 日韩 一区| 成人高清网站| 福利电影一区二区三区| 日本一本a高清免费不卡| 日韩精品一区二区亚洲av性色 | 精品日韩99亚洲| 天美星空大象mv在线观看视频| 亚洲精品天堂| 国产精品无人区| 国产一区二区免费在线观看| 一级黄色片免费| 蘑菇福利视频一区播放| 色综合色综合网色综合| 黄色片在线观看免费| 草莓视频一区二区三区| 91麻豆精品国产91久久久资源速度 | 精品一区二区三区四区五区六区| 日韩大陆av| 色乱码一区二区三区88| 少妇高潮喷水在线观看| 亚洲小说区图片| 亚洲色大成网站www久久九九| 欧美一区2区三区4区公司二百| 粉嫩av一区二区夜夜嗨| 韩国午夜理伦三级不卡影院| 国产精品美女www| 美女又爽又黄免费视频| 亚洲欧美亚洲| 久久久久北条麻妃免费看| 亚洲色图 激情小说| 一本久久青青| 国产视频精品久久久| 国产黑丝一区二区| 国产精品极品| 亚洲激情中文字幕| 中文字幕第3页| 超碰97久久国产精品牛牛| 欧美一区二区啪啪| www.日本久久| 国产激情一区| 日韩一区国产二区欧美三区| 亚洲欧美日韩网站| 中文久久电影小说| 亚洲第一精品自拍| 精品1卡二卡三卡四卡老狼| 一区二区三区视频免费视频观看网站| 欧美一区二区在线看| www激情五月| 成人综合日日夜夜| 欧美mv日韩mv| 亚洲啪av永久无码精品放毛片 | 国产精品久久久久久久精| 手机av在线免费| 可以在线观看的黄色| 久久久综合激的五月天| 久久久久久九九| 日韩毛片在线一区二区毛片| 久久久精品黄色| 日韩一区免费观看| 麻豆影院在线观看| 亚洲自拍欧美精品| 国产网站免费在线观看| 深夜成人影院| 欧美日韩高清在线播放| www.久久com| 粉嫩的18在线观看极品精品| 日韩av在线一区| 自拍偷拍视频亚洲| 99视频精品全部免费在线视频| 波霸ol色综合久久| 日本特黄特色aaa大片免费| 亚洲午夜91| 国产99久久精品一区二区 夜夜躁日日躁| 免费黄色av片| 韩国欧美国产1区| 国产伦精品一区二区三区四区视频| 日韩a在线看| 亚洲天堂福利av| 99热自拍偷拍| 久久精品国产精品亚洲毛片| 欧美www视频| 最新中文字幕av| 女同性一区二区三区人了人一 | 热久久免费视频| 亚洲直播在线一区| 巨骚激情综合| 一区二区视频免费在线观看| www.亚洲天堂网| 国产麻豆精品| 亚洲一级黄色片| 国产一级一级片| 久久国产麻豆精品| 韩日午夜在线资源一区二区| 香蕉视频在线免费看| 午夜精品久久久| 欧美专区第二页| 精品久久综合| 91国产中文字幕| 99热这里是精品| 中文字幕欧美三区| 国产一区二区网| 日韩国产一二三区| 亚洲欧美国产视频| 国产奶水涨喷在线播放| 久99久精品视频免费观看| 久久99精品久久久久久三级| 成人毛片av在线| 欧美日韩一区精品| 91成人在线免费视频| 亚洲最黄网站| 国产精品一区二区三区精品| free性欧美hd另类精品| 欧美三级电影在线看| 新91视频在线观看| 午夜性色一区二区三区免费视频| 国产精品一区二区久久久| 你懂的视频在线| 天天影视色香欲综合网老头| 自拍偷拍激情视频| 中文字幕免费一区二区三区| 国产精品入口夜色视频大尺度| 涩涩视频在线观看免费| 午夜欧美视频在线观看| 国产精品成人免费一区久久羞羞| 亚洲国产精品91| 91久久久国产精品| 黄色网页在线播放| 91超碰这里只有精品国产| 国产日韩精品中文字无码| 日韩精品每日更新| 日本精品一区二区三区高清 久久| 成人福利视频| 亚洲色图校园春色| 波多野结衣视频观看| 久久精品亚洲精品国产欧美 | 电影一区二区三| 亚洲欧美日韩在线一区| 色一情一乱一伦| 国产午夜精品一区二区| 国产一级不卡毛片| 日韩国产一区二区| 成人免费观看网址| h片在线免费| 亚洲大胆美女视频| 久久久久久久久久影院| 久久综合一区二区| 蜜臀久久99精品久久久酒店新书| 国产欧美日韩影院| 国产精品中文字幕在线| 久久久久久久久免费视频| 91精品中文字幕一区二区三区| 顶臀精品视频www| 国产91丝袜在线观看| 亚洲 自拍 另类小说综合图区| 亚洲男人都懂第一日本| 国产精品旅馆在线| 69xxx在线| 日韩av在线不卡| 在线观看免费中文字幕| 玉米视频成人免费看| www.com日本| 美女黄网久久| 一级黄色录像免费看| 6080成人| 热久久这里只有精品| 在线观看av的网站| 精品91自产拍在线观看一区| 中文字幕高清在线免费播放| 国产精品久线观看视频| 影音先锋资源av| 日韩和欧美的一区| 国产aaa免费视频| 蜜乳av综合| 国产一区二区色| 国产精品一区二区日韩| 中文字幕亚洲欧美在线| 丰满熟女一区二区三区| 欧美中文字幕一区二区三区亚洲| 国产大片免费看| 2021国产精品久久精品| 中文字幕12页| 亚洲美女少妇无套啪啪呻吟| 色涩成人影视在线播放| 在线一区二区三区视频| 国产精品99久久久久久久久久久久 | 欧美成人免费大片| 欧美精品a∨在线观看不卡| 777欧美精品| 一级黄色大片视频| 亚洲一区在线播放| 国产又粗又长免费视频| 99天天综合性| 99精品视频免费版的特色功能| 噜噜噜躁狠狠躁狠狠精品视频| 好吊色这里只有精品| 免费成人结看片| 国产精品区一区| 99er精品视频| 国产精品久久一区主播| 日本不卡网站| 欧美黄色小视频| 男女啪啪在线观看| 一本一道久久a久久精品逆3p| 黄色av小说在线观看| 4438x成人网最大色成网站| 色老头在线视频| 精品二区三区线观看| 精品97人妻无码中文永久在线| 欧美国产丝袜视频| 国产成人精品无码免费看夜聊软件| 国产69精品久久久久777| 小明看看成人免费视频| 日韩一区欧美二区| 欧美色图另类小说| 亚洲精品人人| 隔壁人妻偷人bd中字| 综合视频在线| 日韩精品第1页| 围产精品久久久久久久| 伊人久久大香线蕉av一区| 欧美理论在线播放| 欧美成人免费在线| 亚洲女娇小黑人粗硬| 精品国产一区二区三| 国内自拍欧美| 国产在线精品日韩| 理论片一区二区在线| 国产日韩欧美一区二区三区四区| 日韩欧洲国产| 国产精品国产三级欧美二区| 亚洲精品v亚洲精品v日韩精品| 亚洲tv在线观看| 日韩精品一区国产| 成人动漫视频在线观看完整版 | 欧美一区二区三区成人久久片| 色老板在线视频一区二区| 久久国产精品高清| 国产成人三级| 亚洲第一在线综合在线| 欧美第十八页| 影音先锋成人资源网站| 欧美在线日韩| 日韩国产欧美亚洲| 日韩极品在线观看| 粉色视频免费看| 狠狠色丁香婷婷综合| 9191在线视频| 97久久久精品综合88久久| 精品黑人一区二区三区观看时间| 久久综合久久综合九色| 极品蜜桃臀肥臀-x88av| 亚洲日本va在线观看| 久久久久免费看| 福利微拍一区二区| 成人h动漫精品一区二区下载| 欧美性感一类影片在线播放| 国产又粗又猛又黄又爽| 日韩欧美电影一二三| 亚洲欧美综合一区二区| 一区二区三区 在线观看视| 毛片在线不卡| 国内揄拍国内精品| 国产经典一区| 91深夜福利视频| 日本精品影院| 在线观看欧美一区| 1024日韩| 天天色综合社区| 成人亚洲一区二区一| 美女洗澡无遮挡| 亚洲精品成人精品456| 久久久精品福利| 91精品久久久久久蜜臀| 亚洲 欧美 自拍偷拍| 精品国偷自产在线视频99| 1234区中文字幕在线观看| 国产精品老牛影院在线观看| 51精品国产| 亚洲女人毛片| 99香蕉国产精品偷在线观看 | 无码日韩精品一区二区| 884aa四虎影成人精品一区| 三区在线观看| 欧美成人免费va影院高清| 欧洲精品一区二区三区| 99在线热播| 日韩精品久久久久久久电影99爱| a级免费在线观看| 久久精品久久99精品久久| 一边摸一边做爽的视频17国产| 日韩一区欧美一区| 久久久久女人精品毛片九一| 88在线观看91蜜桃国自产| 色天堂在线视频| 欧美国产精品va在线观看| 国产麻豆一区| 欧美黄色直播| 亚洲高清二区| 中文字幕无码毛片免费看| 欧美国产精品专区| 免费的毛片视频| 亚洲第一偷拍网| 性欧美videoshd高清| 国产欧美日韩精品在线观看 | www.激情成人| 亚洲av鲁丝一区二区三区| 精品视频1区2区| 国产精品无码2021在线观看| 91福利视频网| 国产精品网址| 国产欧美日韩小视频| 国产一区二区电影| 男人av资源站| 欧美精品自拍偷拍动漫精品| h视频在线观看免费| 国产成人久久久| 国产免费av一区二区三区| 国产91在线视频观看| 99精品欧美一区二区三区小说| 久久久精品国产sm调教| 日韩欧美国产一区在线观看| 免费超碰在线| 成人免费视频在线观看超级碰| 999视频精品| 九色porny自拍| 国产精品人成在线观看免费| 久久国产香蕉视频| 国产一区二区三区在线观看视频| 一区二区三区电影大全| 久久久水蜜桃| 久久久噜噜噜久久狠狠50岁| 熟女俱乐部一区二区| 色婷婷狠狠综合| 国产在线观看黄| 国产精品无码专区在线观看| 成人在线电影在线观看视频| 国产高潮免费视频| 国产精品国产精品国产专区不蜜| 在线观看免费观看在线| 久久精品色欧美aⅴ一区二区| 国产精久久一区二区| 成人国产一区二区三区| 成人午夜大片免费观看| 国产成人精品a视频一区| 日韩av网站电影| se01亚洲视频| 综合久久国产| 岛国精品一区二区| 日本网站在线播放| 精品偷拍各种wc美女嘘嘘| 精品欧美一区二区三区在线观看| 天天人人精品| 国产精品一区三区| 国产精品成人久久| 亚洲欧美资源在线| 日本午夜精品久久久久| 黑人巨茎大战欧美白妇| jvid福利写真一区二区三区| 日批视频免费在线观看| 色婷婷**av毛片一区| 日韩一区二区三区精品视频第3页| 久久99久久99精品| 国产亚洲成aⅴ人片在线观看| 91片黄在线观看喷潮| 欧美激情欧美狂野欧美精品| 台湾亚洲精品一区二区tv| 牛夜精品久久久久久久| 一区二区三区四区激情| 青青久草在线| 91在线观看免费高清完整版在线观看 | 99国产精品白浆在线观看免费| 91免费观看在线| 一本到在线视频| 91av在线播放| 国产精品91一区二区三区| 强迫凌虐淫辱の牝奴在线观看| 欧美在线|欧美| 国产区美女在线| 视频一区二区三区在线观看| 国产成人免费高清| 中文字幕在线观看视频免费| 欧美二区乱c黑人| 精品免费视频| 成人午夜精品无码区| 91麻豆精品国产91久久久久久 |