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

Flink 反壓問題深度剖析與解決方案

大數據
本文將從多個角度對 Flink 反壓問題進行詳細分析,并提供相應的解決方案和優化建議。

一、Flink 反壓

在實時流處理領域,Flink 憑借其強大的功能和卓越的性能,成為了眾多企業的首選框架。然而,Flink 作業在運行過程中常常會遇到反壓問題,這不僅會影響作業的性能和穩定性,還可能導致數據處理延遲、資源耗盡甚至系統崩潰。

因此,深入了解 Flink 反壓問題的產生原因、影響以及解決方法,對于保障 Flink 作業的正常運行至關重要。本文將從多個角度對 Flink 反壓問題進行詳細分析,并提供相應的解決方案和優化建議。

二、Flink 反壓的定義與原理

1. 反壓的定義

反壓(Backpressure)是流式系統中關于處理能力的動態反饋機制,并且是從下游到上游的反饋。簡單來說,當接收方的接收速率低于發送方的發送速率時,如果不做處理,就會導致接收方的數據積壓越來越多,直到內存溢出。此時,需要一個機制來根據接收方的狀態反過來限制發送方的發送速率,以達到兩者速率匹配的狀態。在 Flink 中,當某個節點的處理速度跟不上上游數據的流入速度時,就會產生反壓,反壓信號會從下游逐級傳遞至數據源,導致數據源的攝入速率降低。

2. Flink 反壓的核心原理

Flink 的反壓機制在不同版本有所不同,下面分別介紹:

(1) Flink 1.5 之前:基于 TCP 的流控和反壓

在 1.5 版本之前,Flink 依靠 TCP 協議自身的滑動窗口機制來實現反壓。以下是 TCP 流控的簡單示例: 假設 Sender 每單位時間發送 3 個包,發送窗口初始大小為 3;Receiver 每單位時間接收 1 個包,接收窗口初始大小為 5(與接收緩存的大小相同)。

  • Sender 發送 1 - 3 三個包,Receiver 接收到之后將它們放入緩存。
  • Receiver 消費一個包,接收窗口向前滑動一格,并告知 Sender ACK = 4(表示可以從第 4 個包開始發送),以及 Window = 3(表示接收窗口當前的空余量為 3)。
  • Sender 接收到 ACK 消息后發送 4 - 6 三個包,Receiver 接收到之后將它們放入緩存。
  • Receiver 消費一個包,接收窗口向前滑動一格,并告知 Sender ACK = 7(表示可以從第 7 個包開始發送),以及 Window = 1(表示接收窗口當前的空余量為 1)。Sender 接收到 ACK 消息之后,發現 Receiver 只能再接收 1 個包了,就將發送窗口的大小調整為 1 并發送包 7,達到了限流的目的。

不過這種機制存在明顯缺點:

  • 在一個 TaskManager 中可能要執行多個 Task,如果多個 Task 的數據最終都要傳輸到下游的同一個 TaskManager 就會復用同一個 Socket 進行傳輸,這個時候如果單個 Task 產生反壓,就會導致復用的 Socket 阻塞,其余的 Task 也無法使用傳輸,checkpoint barrier 也無法發出導致下游執行 checkpoint 的延遲增大。
  • 依賴最底層的 TCP 去做流控,會導致反壓傳播路徑太長,導致生效的延遲比較大。

(2) Flink 1.5 之后:基于 Credit 的流控和反壓

Flink 1.5 + 版本為了解決上述問題,引入了基于 Credit 的流控和反壓機制。它本質上是將 TCP 的流控機制從傳輸層提升到了應用層,即 ResultPartition 和 InputGate 的層級,從而避免在傳輸層造成阻塞。具體來講:

  • Sender 端的 ResultSubPartition 會統計累積的消息量(以緩存個數計),以 backlog size 的形式通知到 Receiver 端的 InputChannel。
  • Receiver 端 InputChannel 會計算有多少空間能夠接收消息(同樣以緩存個數計),以 credit 的形式通知到 Sender 端的 ResultSubPartition。

下面通過一個示例來說明基于 Credit 的流控和反壓流程: 假設上下游的速度不匹配,上游發送速率為 2,下游接收速率為 1。在 ResultSubPartition 中累積了兩條消息,10 和 11,backlog 就為 2,這時就會將發送的數據 <8, 9> 和 backlog = 2 一同發送給下游。下游收到了之后就會去計算是否有 2 個 Buffer 去接收,可以看到 InputChannel 中已經不足了這時就會從 Local BufferPool 和 Network BufferPool 申請,好在這個時候 Buffer 還是可以申請到的。過了一段時間后由于上游的發送速率要大于下游的接受速率,下游的 TaskManager 的 Buffer 已經到達了申請上限,這時候下游就會向上游返回 Credit = 0,ResultSubPartition 接收到之后就不會向 Netty 去傳輸數據,上游 TaskManager 的 Buffer 也很快耗盡,達到反壓的效果。

3. 反壓的直觀表現

  • Metrics 指標:outPoolUsage(輸出緩沖區使用率)接近 1.0,表明輸出緩沖區幾乎被占滿,可能存在反壓。
  • Flink Web UI:Flink 1.13 以后的版本,Flink Web UI 的監控中,通過顏色加數值,更清晰明了地表明每個算子的繁忙程度和反壓程度。正常情況下為藍色 -> 紫色 -> 黑色 -> 淡紅 -> 紅,繁忙和反壓程度逐漸加深。同時,為每個算子提供了 SubTask 級別的 BackPressure 監控,更便于觀察該節點是否處于反壓狀態。默認情況下,0.1 表示 OK,0.1 - 0.5 表示 LOW,超過 0.5 表示 HIGH。
  • 系統現象:Checkpoint 超時、Kafka Lag 堆積、TaskManager CPU 飆升等,這些現象都可能是反壓導致的結果。

三、Flink 反壓的產生原因

1. 數據傾斜

數據傾斜是指相同 Task 中的多個 SubTask 中,個別 SubTask 接收的數據量明顯大于其他 SubTask 接收到的數據量。這種情況通常是由于數據源的數據本身不均勻,或者某些算子的處理邏輯導致數據分布不均。例如,在使用 KeyBy 算子進行分組時,如果某些 Key 的數據量過大,就會導致對應的 SubTask 處理壓力過大,從而產生反壓。

2. 算子性能問題

某些算子的邏輯復雜,計算量較大,或者與外部系統交互頻繁,可能會導致處理速度變慢,成為反壓的瓶頸。例如,Sink 節點寫入數據庫的速度慢、Lookup Join 熱查詢慢等問題,都會影響整個作業的處理性能。

3. 流量陡增

在某些特殊場景下,如大促、秒殺活動等,數據流量會突然激增,超過了 Flink 作業的處理能力,導致反壓的產生。此外,使用數據炸開的函數(如 FlatMap)也可能會導致數據量急劇增加,引發反壓。

4. 資源不足

如果 TaskManager 的 CPU、內存等資源配置過低,無法滿足作業的處理需求,就會頻繁觸發 GC,導致處理速度下降,從而產生反壓。此外,網絡帶寬不足也會影響數據的傳輸速度,加劇反壓問題。

5. 外部系統瓶頸

Flink 作業通常會與外部系統進行交互,如 Kafka、MySQL、HBase 等。如果這些外部系統的性能不佳,如 Kafka 分區數據不均衡、MySQL 寫入速度慢、HBase 熱點問題等,都會影響 Flink 作業的處理性能,導致反壓的產生。

四、Flink 反壓的影響

1. 影響 Checkpoint 時長

根據 Checkpoint 機制,只有所有管道的 Barrier 對齊之后,才能正常進行 Checkpoint。如果某個管道出現反壓,則 Barrier 會延遲到來,盡管其他的 Barrier 已經到來,哪怕只剩一個 Barrier 遲到,也會導致 Checkpoint 無法正常觸發,直到所有的 Barrier 都到達之后,才會正常觸發 Checkpoint。因此,反壓的出現會導致 Checkpoint 總體時間(End to End Duration)變長,甚至可能導致 Checkpoint 超時失敗。

2. 影響 State 大小

Barrier 對齊之前,其他較快的管道的數據會源源不斷地發送過來,雖然不會被處理,但是會被緩存起來,直到較慢的管道的 Barrier 也到達。所有沒有被處理但是緩存起來的數據,會一起放到 State 中,導致 Checkpoint 變大。State 大小的增加可能會拖慢 Checkpoint 的速度,甚至導致 OOM(使用 Heap - based StateBackend)或者物理內存使用超出容器資源(使用 RocksDBStateBackend)的穩定性問題。

3. 導致數據處理延遲

反壓會導致數據在各個節點之間的傳輸和處理速度變慢,從而增加數據處理的延遲。對于一些對延遲要求較高的應用場景,如實時監控、實時推薦等,數據處理延遲可能會影響系統的實時性和準確性。

4. 資源耗盡和系統崩潰

如果反壓問題得不到及時解決,數據會持續積壓,導致 TaskManager 的內存不斷增加,最終可能會耗盡系統資源,導致系統崩潰。此外,長時間的反壓還可能會導致 Kafka 等數據源的數據堆積,影響整個數據鏈路的穩定性。

五、Flink 反壓的定位方法

1. 利用 Flink Web UI 定位

Flink 1.13 以后的版本,Flink Web UI 的監控中,通過顏色加數值,更清晰明了地表明每個算子的繁忙程度和反壓程度。正常情況下為藍色 -> 紫色 -> 黑色 -> 淡紅 -> 紅,繁忙和反壓程度逐漸加深。同時,為每個算子提供了 SubTask 級別的 BackPressure 監控,更便于觀察該節點是否處于反壓狀態。默認情況下,0.1 表示 OK,0.1 - 0.5 表示 LOW,超過 0.5 表示 HIGH。如果出現反壓,通常有兩種可能:

  • 該節點的發送速率跟不上產生速率:這種狀況一般是輸入一條數據,發送多條數據的場景下出現,比如 flatmap 算子。這種情況下,該節點就是反壓產生的根源節點。
  • 下游節點接收速率低于當前節點的發送速率:通過反壓機制,拉低了當前節點的發送速率,這種情況下,需要繼續往下游節點排查,直到找到第一個反壓狀態為 OK 的節點,一般這個節點就是產生反壓的節點。

2. 利用 Metrics 定位

Flink 提供了豐富的 Metrics 指標,可用于定位反壓根源。最為有用的幾個 Metrics 如下:

  • outPoolUsage:發送端 Buffer 的使用率,反映了發送端的壓力情況。如果一個 Subtask 的發送端 Buffer 占用率很高,說明它被下游反壓限速了。
  • inPoolUsage:接收端 Buffer 的使用率,反映了接收端的壓力情況。如果一個 Subtask 的接收端 Buffer 占用很高,表明它將反壓傳導到上游。
  • floatingBuffersUsage(1.9 以上):接收端 Floating Buffer 的使用率。
  • exclusiveBuffersUsage(1.9 以上):接收端 Exclusive Buffer 的使用率。其中 inPoolUsage = floatingBuffersUsage + ExclusiveBuffersUsage。

通過分析這些 Metrics 指標,可以判斷反壓的來源和程度,從而定位反壓的根源節點。

3. 其他定位方法

除了 Flink Web UI 和 Metrics 外,還可以通過以下方法定位反壓問題:

  • SubTasks 分析:查看任務的接收字節數和輸出字節數,判斷數據是否出現了數據傾斜。
  • 火焰圖分析:通過火焰圖可以分析每個方法調用的耗時,從而找到耗時較長的方法,定位性能瓶頸。開啟火焰圖的方法在不同版本可能有所不同,例如在較新版本中可以在配置文件中進行相關設置。
  • GC 日志分析:查看 GC 日志,分析是否出現了 fullgc 情況,判斷是否存在內存泄露問題。

六、Flink 反壓的解決方案與優化實踐

1. 數據傾斜治理

(1) keyBy 之前發生數據傾斜

如果 keyBy 之前就存在數據傾斜,上游算子的某些實例可能處理的數據較多,某些實例處理的數據較少。這種情況可能是因為數據源的數據本身就不均勻,例如 Kafka 的 topic 中某些 partition 的數據量比較大,某些 partition 的數據量比較少。對于不存在 keyBy 的 Flink 任務也會出現數據傾斜的情況。可以使用 shuffle、rebalance 或 rescale 算子將數據均勻分配,從而解決數據傾斜問題。

DataStream<String> inputStream =...;
DataStream<String> rebalancedStream = inputStream.rebalance();

(2) keyby 后的聚合操作存在數據傾斜

使用 LocalKeyBy 的思想,在 keyBy 上游算子數據發送之前,首先在上游算子的本地對數據進行聚合后再發送到下游,使下游接收到的數據量大大減少,從而使得 keyBy 之后的聚合操作不再是任務的瓶頸。具體實現方式為:keyby 之前使用 flatMap 實現 LocalKeyBy。當數據達到 x 條或者 x 時間后,批次數據保存在狀態后端,聚合一次后輸出一條。

DataStream<Event> inputStream =...;
DataStream<Event> localAggregatedStream = inputStream
.flatMap(newLocalKeyByFlatMap())
.keyBy(Event::getKey)
.window(TumblingEventTimeWindows.of(Time.seconds(10)))
.aggregate(newMyAggregateFunction());

(3) keyby 后的窗口聚合操作存在數據傾斜

因為使用了窗口,變成了有界數據的處理,窗口默認時觸發關窗時才會輸出一條結果發往下游,所以可以使用兩階段聚合的方式。第一階段聚合:key 拼接隨機數前綴或后綴,進行 keyby、開窗、聚合。聚合完不再是 WindowedStream,要獲取 WindowEnd 作為窗口標記作為第二階段分組依據,避免不同窗口的結果聚合到一起。第二階段聚合:去掉隨機數前綴或后綴,按照原來的 key 及 windowStart/windowEnd 作為 keyby、聚合。

DataStream<Event> inputStream =...;
DataStream<Event> firstStageAggregatedStream = inputStream
.map(newAddRandomPrefixMap())
.keyBy(Event::getKeyWithPrefix)
.window(TumblingEventTimeWindows.of(Time.seconds(10)))
.aggregate(newFirstStageAggregateFunction());

DataStream<Event> finalAggregatedStream = firstStageAggregatedStream
.map(newRemoveRandomPrefixMap())
.keyBy(Event::getKey)
.window(TumblingEventTimeWindows.of(Time.seconds(10)))
.aggregate(newSecondStageAggregateFunction());

2. 算子性能優化

(1) 優化算子邏輯

分析下游任務的處理邏輯,看是否有優化空間。例如,減少計算復雜度,使用更高效的數據結構,或者并行化處理。對于復雜的計算邏輯,可以將其拆分成多個簡單的算子,提高處理效率。

(2) 異步 I/O 操作

對于與外部系統交互頻繁的算子,如 Sink 節點寫入數據庫、Lookup Join 等,可以使用異步 I/O 操作,減少等待時間,提高處理速度。Flink 提供了 AsyncFunction 接口,方便實現異步 I/O 操作。

DataStream<String> inputStream =...;
AsyncDataStream.unorderedWait(inputStream,newAsyncDatabaseLookupFunction(),1000,TimeUnit.MILLISECONDS,100);

3. 資源調整

(1) 增加資源配置

如果處理任務的資源不足,可以考慮增加任務的資源配置,如 CPU 核心數、內存大小等。在 YARN、Kubernetes 等資源管理系統中,可以根據負載動態調整資源分配。例如,增加 TaskManager 的內存配置,避免因內存不足導致的頻繁 GC 和反壓問題。

(2) 調整并行度

根據系統負載情況動態調整任務的并行度,將任務分配到更多的計算節點上,以提高系統的處理能力。可以通過設置 setParallelism() 方法來調整算子的并行度。同時,要注意并行度的設置要合理,過高的并行度可能會導致資源浪費和性能下降。

StreamExecutionEnvironment env =StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(4);

4. 網絡優化

(1) 網絡配置優化

如果網絡延遲是問題的原因,可以考慮優化網絡配置,比如使用更快的網絡設備,或者將數據處理任務遷移到離數據源更近的位置。此外,還可以通過調整網絡緩沖區大小、優化網絡拓撲等方式,提高網絡傳輸效率。

(2) 零拷貝優化和高效序列化

使用零拷貝優化和高效序列化技術,減少數據在網絡傳輸過程中的拷貝次數和序列化開銷。例如,預設序列化器(如 Flink Native 或 Protobuf),避免 Java 序列化性能瓶頸。

5. 外部系統優化

(1) 優化外部系統性能

對于 Kafka、MySQL、HBase 等外部系統,要確保其性能良好。例如,對 Kafka 進行分區優化,增加分區數,提高數據的并行處理能力;對 MySQL 進行索引優化,提高寫入和查詢速度;對 HBase 進行預分區和熱點處理,避免熱點問題。

(2) 批量操作

在與外部系統交互時,盡量使用批量操作,減少單次操作的開銷。例如,在寫入數據庫時,使用批量寫入的方式,提高寫入效率。

DataStream<Record> inputStream =...;
inputStream.addSink(newBatchDatabaseSink());

七、Flink 反壓的監控與預防

(1) 監控指標設置

設置合理的監控指標,實時監控 Flink 作業的運行狀態。除了前面提到的 Metrics 指標外,還可以監控 TaskManager 的 CPU、內存、網絡 I/O 等資源使用情況,以及 Kafka 的 Lag、Checkpoint 時長等指標。通過監控這些指標,可以及時發現反壓問題的跡象,并采取相應的措施進行處理。

(2) 自動反壓保護

Flink 提供了自動反壓保護機制,可以通過設置 setAutoWatermarkInterval 來調整。當檢測到反壓時,Flink 會自動減慢數據源的發送速度,直到下游處理速度跟上。

DataStream<String> stream =...;// 獲取輸入數據流
stream
.setAutoWatermarkInterval(1000L)// 設置自動反壓保護的間隔為 1 秒
.addSink(...);// 設置數據輸出

(3) 壓力測試與調優

在上線前進行充分的壓力測試,模擬高并發場景,找出潛在的性能瓶頸和反壓問題。根據壓力測試結果,對 Flink 作業進行調優,如調整并行度、優化算子邏輯、增加資源配置等,提高作業的穩定性和性能。

責任編輯:趙寧寧 來源: 大數據技能圈
相關推薦

2009-01-19 17:31:14

2010-02-22 10:29:11

WCF上傳文件

2021-10-04 09:14:18

ElasticSear深度分頁

2024-11-08 13:47:35

中文亂碼配置

2024-12-02 01:16:53

2009-09-15 21:21:54

IT服務運維管理摩卡軟件

2009-12-30 14:31:57

PPPoA體系

2024-09-19 08:11:28

2013-04-02 09:25:20

PaaS 應用可移植性PaaS提供商平臺即服務

2009-08-03 18:06:28

JS性能問題

2010-08-31 09:06:25

Firefox margin-top

2009-06-30 14:22:50

Java編碼

2010-05-17 09:49:46

MySQL中文問題

2011-03-02 14:56:56

FileZilla425問題

2010-08-03 14:58:38

APC

2010-09-27 16:23:28

APC

2010-05-12 14:18:58

Linux引導

2024-05-23 07:59:42

RedisKey性能

2017-08-03 09:37:35

SparkStreamKafkaDirect

2022-03-31 20:20:46

大數據挑戰解決方案
點贊
收藏

51CTO技術棧公眾號

高清欧美性猛交xxxx黑人猛交| 欧美性一二三区| 国产伦精品一区二区三区视频免费| 久久久精品国产sm调教| 欧美理伦片在线播放| 色婷婷国产精品| 亚洲激情啪啪| 懂色av成人一区二区三区| 国产农村妇女精品一区二区| 在线视频欧美日韩| 男人的天堂免费| 男人皇宫亚洲男人2020| 亚洲少妇30p| 国产乱人伦精品一区二区| 波多野结衣在线电影| 欧美在线二区| 国产一区二区三区网站| 亚洲成a人无码| 91p九色成人| 午夜精品福利一区二区三区蜜桃| 一区二区精品在线观看| 色婷婷av一区二区三区之e本道| 久久亚洲美女| 一区二区三区免费在线观看| 精品国产乱码久久久久软件 | 日韩黄色大片网站| 日韩欧美中文字幕精品| 亚洲欧洲一区二区| 理论片中文字幕| 狠狠色狠狠色综合日日91app| 欧美在线视频观看免费网站| 国产盗摄x88av| 久久中文字幕av一区二区不卡| 亚洲国产成人久久综合| 91大神免费观看| 欧美成人xxxx| 在线观看一区日韩| 免费在线观看的av网站| av色在线观看| 夜夜精品视频一区二区| 日本免费在线视频观看| 91ph在线| 欧美高清在线一区二区| 欧美一区二区三区成人久久片| 黄色三级网站在线观看| 国产在线看一区| 国产在线精品自拍| 中文字幕日韩第一页| 日韩精品每日更新| 国产精品99久久久久久久久久久久| 国产精品美女www| 亚欧洲乱码视频| 欧美电影免费网站| 亚洲精品在线观看网站| 成人在线观看一区二区| 第四色在线一区二区| 日韩亚洲国产中文字幕欧美| 做a视频在线观看| 伊人久久综合网另类网站| 精品1区2区3区| 91 在线视频观看| 亚洲人成网站在线在线观看| 欧美日韩国产区一| 一级黄色录像在线观看| 四虎影视国产精品| 欧美一级欧美一级在线播放| 亚洲精品一二三四| 大奶在线精品| 亚洲精品国产精品国自产观看浪潮| 好吊色视频一区二区三区| 国产精品香蕉| 亚洲精品永久免费| 中文天堂资源在线| 国产视频一区二| 91精品婷婷国产综合久久| 伊人成人免费视频| 国产精品久久久久av蜜臀| 日韩av在线最新| 一级性生活毛片| 色天天久久综合婷婷女18| www高清在线视频日韩欧美| 国产精品免费人成网站酒店| 韩国自拍一区| 日本91av在线播放| 亚洲天堂网视频| 国产精品18久久久久| 国产伦精品一区二区三区照片91 | 欧美日韩精品一区二区三区视频播放 | 日韩欧美电影一区二区| 色多多视频在线观看| 亚洲精品日日夜夜| 91在线码无精品| 欧美福利视频网站| 亚洲图片在线视频| 久久国产免费看| 国产美女99p| 东热在线免费视频| 一区二区三区在线免费观看| 北条麻妃在线视频观看| 素人啪啪色综合| 欧美成人官网二区| 亚洲一区二区三区日韩| 女生裸体视频一区二区三区| 热久久视久久精品18亚洲精品| 亚洲一二区视频| 99国产欧美久久久精品| 亚洲AV无码成人精品一区| av在线私库| 欧美福利视频导航| 日本xxx在线播放| 亚洲欧美一区在线| 国产精品久久久久久搜索| 丰满少妇在线观看bd| 中文字幕二三区不卡| 九九爱精品视频| 国产精品va视频| 一区二区三区在线播放欧美| 日韩精品一区三区| 激情成人午夜视频| 日韩一区不卡| 在线观看福利电影| 欧美哺乳videos| 女同久久另类69精品国产| 免费久久99精品国产自在现线| 亚洲a中文字幕| av二区在线| 欧美性猛交丰臀xxxxx网站| 久久久久久无码精品人妻一区二区| 欧美日韩黑人| 欧洲午夜精品久久久| 亚洲va天堂va欧美ⅴa在线| 国产精品视频线看| 午夜视频在线瓜伦| 欧美变态网站| 久久久久久有精品国产| 国产女无套免费视频| 欧美激情一区二区三区在线| 欧美v在线观看| 女人抽搐喷水高潮国产精品| 欧美日本高清一区| jizz中国少妇| 亚洲摸摸操操av| 黄色三级视频在线播放| 外国成人免费视频| 成人有码在线播放| 黄在线免费观看| 6080亚洲精品一区二区| 我要看一级黄色录像| 麻豆国产91在线播放| 日韩精彩视频| 成人午夜在线| 在线视频一区二区| 91久久国语露脸精品国产高跟| 国产欧美一区二区三区鸳鸯浴 | 九色91在线视频| 成人三级小说| 亚洲国产天堂久久综合网| 免费三片在线播放| 国产成人免费视频网站高清观看视频| 99re99热| 国产成人精品福利| 亚洲91av视频| 深夜福利视频在线观看| 色综合久久综合网欧美综合网| 成人免费av片| 日本中文字幕一区二区视频| 偷拍视频一区二区| 欧美国产视频| 免费91麻豆精品国产自产在线观看 | 国产精品a久久久久| www.久久艹| 成年男女免费视频网站不卡| 亚洲精品成人久久久| 欧美黄色免费在线观看| 成人免费视频网站在线观看| 亚洲熟妇av日韩熟妇在线 | 亚洲国产日韩美| 四虎国产精品永久在线国在线| 欧美日本国产在线| 天堂在线观看免费视频| 一本到不卡精品视频在线观看| 性欧美一区二区| 狠狠色丁香久久婷婷综合_中| 国产专区在线视频| 欧洲亚洲一区二区三区| 国产精品欧美一区二区| 99热国产在线| 日韩激情在线视频| 久久久国产免费| 自拍偷拍国产亚洲| 少妇被狂c下部羞羞漫画| 久久一二三四| 波多野结衣激情| 欧美日韩大片免费观看| 国产精品亚洲精品| 欧美videos另类精品| 国产一区二区日韩| 亚洲AV无码国产精品午夜字幕| 性做久久久久久久免费看| 亚洲午夜久久久久久久国产| 国产激情视频一区二区在线观看 | 国产高清不卡一区二区| 无码aⅴ精品一区二区三区浪潮 | 中文字幕一区二区三区在线不卡| 香蕉视频1024| 麻豆国产精品视频| 自慰无码一区二区三区| 91成人看片| 美媛馆国产精品一区二区| 成人在线高清| 91av视频在线播放| 欧美性天天影视| 日韩精品高清在线| 97在线公开视频| 欧美性xxxx极品hd欧美风情| 91精品国产高清一区二区三蜜臀| 久久综合精品国产一区二区三区 | 久久99成人| 国产91在线播放| 女人天堂av在线播放| 中文字幕欧美在线| 亚洲人妻一区二区| 日韩欧美亚洲一区二区| 亚洲最大成人av| 日韩欧美国产视频| 国产无遮挡裸体免费视频| 1024国产精品| 影音先锋男人在线| 91蝌蚪porny成人天涯| 少妇伦子伦精品无吗| 蜜桃久久久久久久| 成人一区二区三| 99国产精品| 精品人妻人人做人人爽| 婷婷色综合网| 一区二区三区四区在线视频 | 久久99精品久久久久久国产越南| aⅴ在线免费观看| 99亚洲精品| 精品久久久久久无码中文野结衣| 亚洲一区 二区 三区| 色综合666| 免费短视频成人日韩| 国产日韩一区二区三区| 国产精品xxxav免费视频| 99porn视频在线| 久久亚洲精精品中文字幕| 国产精品第一区| 91精品美女| 国产精品美女免费视频| 成人在线观看免费播放| 国产精品免费网站| 午夜无码国产理论在线| 国产成人鲁鲁免费视频a| 成人免费直播| 欧美专区国产专区| 女生影院久久| 国产97在线观看| 欧美123区| 国产精品香蕉在线观看| 久久天天久久| 国产精品揄拍一区二区| 不卡一区视频| 91精品网站| 欧美一级片网址| 97免费高清电视剧观看| 国产精品45p| 奇米精品在线| 成人免费看片39| 中文字幕av日韩精品| 亚洲精品91| 欧美人成在线观看| 美女久久网站| 国产原创精品在线| 国产中文字幕一区| 国产大学生av| 26uuu另类欧美| 九九热免费在线| 一区二区三区在线观看国产| 日本一区二区网站| 欧美视频中文在线看| 日韩乱码一区二区三区| 9191久久久久久久久久久| 亚洲大尺度网站| 亚洲美女久久久| 最新97超碰在线| 九九视频直播综合网| 成人免费网站观看| 国产精品夜色7777狼人| 精品视频91| 免费国产一区二区| 国产二区精品| 免费在线观看视频a| 天使萌一区二区三区免费观看| 免费网站在线观看黄| 成人av在线观| 蜜桃av免费观看| 午夜日韩在线观看| 在线观看国产黄| 日韩精品在线视频观看| 成年人网站在线| 欧美怡春院一区二区三区| 亚洲二区av| 免费日韩av电影| 黄色成人91| 日韩成人精品视频在线观看| aaa欧美色吧激情视频| 欧美日韩国产一二三区| 亚洲18色成人| 99久久久无码国产精品免费| 亚洲欧美第一页| 黄视频在线免费看| 国产在线播放不卡| 国产九一精品| 青青青青草视频| 韩国欧美一区二区| 人妻少妇无码精品视频区| 亚洲一区二区av在线| 中文字幕乱码人妻二区三区| 亚洲国产99精品国自产| 成人日批视频| 国产精品入口免费视| 色婷婷久久久| 9色porny| 国产成人精品www牛牛影视| 长河落日免费高清观看| 色综合久久中文综合久久97 | 国产一区二区三区久久精品| 9765激情中文在线| 成人18视频| 香蕉久久网站| 91女神在线观看| 国产欧美一区二区精品仙草咪 | 欧美色综合网站| 奇米影视888狠狠狠777不卡| 久久久噜久噜久久综合| 亚洲精品一区二区三区在线| 国产91av视频在线观看| 日本中文一区二区三区| 无码h肉动漫在线观看| 性做久久久久久久免费看| 国产 欧美 自拍| 欧美理论电影在线观看| 精品视频在线观看免费观看| 杨幂一区欧美专区| 精品一区二区三区影院在线午夜| 一级黄色录像毛片| 在线视频综合导航| 青青草手机在线| 日本久久久久久| 亚洲天堂日韩在线| 国产裸体舞一区二区三区| 久久久91精品国产一区二区三区| 久久久久99精品成人片三人毛片| 日韩成人av网址| 刘亦菲一区二区三区免费看| 九九九九九九精品| 免费永久网站黄欧美| 亚洲第一页av| 欧美亚一区二区| 日韩在线资源| 91香蕉电影院| 国内揄拍国内精品久久| 日本一级片在线播放| 一本久久a久久精品亚洲| 成人福利在线| 91九色在线视频| 亚洲手机在线| 国产色视频一区二区三区qq号| 在线精品视频免费播放| 欧美性天天影视| 国产日韩亚洲精品| 日韩影院在线观看| 欧美爱爱免费视频| 精品国产污污免费网站入口| 不卡福利视频| 伊甸园精品99久久久久久| 国产精品一区久久久久| 久久午夜免费视频| 永久免费毛片在线播放不卡| www.久久久久爱免| 日本日本19xxxⅹhd乱影响| 国产日产精品1区| 国产裸体无遮挡| 97成人精品视频在线观看| 欧美三级情趣内衣| 在线免费黄色小视频| 精品久久久久久久久中文字幕| 国产毛片在线看| 99视频在线| 日韩电影在线免费观看| 国产va在线播放| 亚洲另类图片色| 国产精品免费精品自在线观看| 丁香婷婷综合激情| 国产亚洲福利社区一区| wwwav在线播放| 国产精品va在线播放我和闺蜜| 欧美 日韩 国产精品免费观看| 巨胸大乳www视频免费观看|