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

騰訊面試:Flink Checkpoint 和 Spark Checkpoint 有什么區(qū)別?

大數(shù)據(jù)
本文將從原理、實(shí)現(xiàn)、性能等多個維度,深入剖析Flink和Spark Checkpoint的異同,并通過實(shí)例代碼展示其配置與應(yīng)用。

一、引言

在大數(shù)據(jù)流處理領(lǐng)域,系統(tǒng)的高可用性和容錯能力是企業(yè)級應(yīng)用的核心需求。流處理應(yīng)用需要7×24小時連續(xù)運(yùn)行,面對硬件故障、網(wǎng)絡(luò)抖動等異常情況時,必須能夠快速恢復(fù)并保證數(shù)據(jù)一致性。Checkpoint機(jī)制作為實(shí)現(xiàn)容錯的關(guān)鍵技術(shù),通過周期性保存應(yīng)用狀態(tài)到持久化存儲,為故障恢復(fù)提供了可靠的快照基礎(chǔ)。

Apache Flink和Apache Spark作為當(dāng)前主流的分布式計(jì)算框架,分別代表了兩種不同的設(shè)計(jì)哲學(xué):Flink以"流優(yōu)先"為核心,原生支持低延遲、高吞吐的實(shí)時數(shù)據(jù)處理;Spark則以批處理為基礎(chǔ),通過微批(Micro-Batch)模擬流處理。這種架構(gòu)差異直接導(dǎo)致了兩者在Checkpoint機(jī)制設(shè)計(jì)上的顯著區(qū)別。本文將從原理、實(shí)現(xiàn)、性能等多個維度,深入剖析Flink和Spark Checkpoint的異同,并通過實(shí)例代碼展示其配置與應(yīng)用。

二、Checkpoint基礎(chǔ)概念

1. Flink Checkpoint

Flink的Checkpoint機(jī)制是基于分布式快照算法(Chandy-Lamport算法) 實(shí)現(xiàn)的容錯機(jī)制,其核心目標(biāo)是在分布式環(huán)境下生成全局一致的狀態(tài)快照。不同于傳統(tǒng)的全量備份,F(xiàn)link Checkpoint具有以下特性:

  • 周期性自動觸發(fā):可配置固定時間間隔(如1000ms),由JobManager協(xié)調(diào)全流程
  • 狀態(tài)一致性:通過Barrier對齊機(jī)制確保Exactly-Once語義
  • 增量快照:僅保存與上一次Checkpoint的差異數(shù)據(jù)(RocksDBStateBackend支持)
  • 細(xì)粒度恢復(fù):支持單個算子或子任務(wù)級別的故障恢復(fù)

Flink Checkpoint主要應(yīng)用于需要低延遲(毫秒級) 和精確一次處理的場景,如金融交易監(jiān)控、實(shí)時風(fēng)控系統(tǒng)、物聯(lián)網(wǎng)數(shù)據(jù)實(shí)時分析等。

2. Spark Checkpoint

Spark的Checkpoint機(jī)制最初設(shè)計(jì)用于批處理場景,旨在解決RDD血緣依賴鏈過長導(dǎo)致的故障恢復(fù)效率問題。其核心特性包括:

(1) 兩類Checkpoint:

  • 元數(shù)據(jù)Checkpoint:保存Driver元信息(DAG、未完成批次等),用于Driver故障恢復(fù)
  • 數(shù)據(jù)Checkpoint:將RDD分區(qū)數(shù)據(jù)寫入可靠存儲,切斷血緣依賴

(2) 手動觸發(fā)為主:需顯式調(diào)用rdd.checkpoint()或配置StreamingContext自動觸發(fā)

(3) 全量快照:默認(rèn)保存完整RDD數(shù)據(jù),無增量更新機(jī)制

(4) WAL補(bǔ)充:在流處理中通過Write-Ahead Log機(jī)制增強(qiáng)數(shù)據(jù)可靠性

Spark Checkpoint更適合批處理作業(yè)和對延遲不敏感的微批流處理場景,如日志離線分析、周期性數(shù)據(jù)報表生成等。

三、實(shí)現(xiàn)原理深度剖析

1. Flink Checkpoint機(jī)制

(1) 分布式快照流程

Flink的Checkpoint過程由JobManager中的CheckpointCoordinator統(tǒng)一協(xié)調(diào),具體步驟如下:

① 觸發(fā)階段:CheckpointCoordinator按配置間隔向所有Source算子發(fā)送TriggerCheckpoint請求

② Barrier注入:Source算子接收到請求后,生成Checkpoint Barrier(包含Checkpoint ID),并將其廣播至下游算子

③ Barrier對齊:

  • 對于多輸入算子,需等待所有輸入流的Barrier到達(dá)(對齊階段)
  • 對齊期間,先到達(dá)Barrier的流數(shù)據(jù)會被緩存,待所有Barrier到齊后統(tǒng)一處理

④ 狀態(tài)快照:

  • 同步階段:算子暫停數(shù)據(jù)處理,將內(nèi)存中的狀態(tài)刷寫到本地磁盤(如RocksDB的memtable flush)
  • 異步階段:將本地快照異步上傳至分布式存儲(如HDFS),同時恢復(fù)數(shù)據(jù)處理

⑤ 完成確認(rèn):算子完成快照后,向CheckpointCoordinator匯報狀態(tài)句柄(State Handle),全部算子完成后標(biāo)記Checkpoint成功

(2) 非對齊Checkpoint(Unaligned Checkpoint)

Flink 1.11引入的非對齊Checkpoint機(jī)制,專為解決反壓場景下的Checkpoint延遲問題:

  • 核心優(yōu)化:允許Barrier跨越緩沖數(shù)據(jù),無需等待所有輸入流Barrier對齊
  • 實(shí)現(xiàn)方式:將未處理的緩沖數(shù)據(jù)(In-Flight Data)作為快照一部分保存
  • 適用場景:高反壓、長鏈路作業(yè),可將Checkpoint時間從分鐘級降至秒級

(3) 狀態(tài)后端(State Backend)

Flink提供多種狀態(tài)存儲方案,直接影響Checkpoint性能:

狀態(tài)后端類型

存儲位置

Checkpoint方式

適用場景

MemoryStateBackend

JobManager內(nèi)存

全量序列化

測試環(huán)境、無狀態(tài)作業(yè)

FsStateBackend

本地文件系統(tǒng)

全量快照

中小規(guī)模狀態(tài)、本地測試

RocksDBStateBackend

本地磁盤+DFS

增量快照

大規(guī)模狀態(tài)(TB級)、生產(chǎn)環(huán)境

RocksDB增量Checkpoint原理: 基于LSM樹(Log-Structured Merge Tree)的SSTable(Sorted String Table)合并機(jī)制,僅上傳上次Checkpoint后新增的SSTable文件,大幅減少IO開銷。

2. Spark Checkpoint機(jī)制

(1) RDD Checkpoint流程

Spark的Checkpoint本質(zhì)是將RDD數(shù)據(jù)物化到可靠存儲,流程如下:

  • 標(biāo)記階段:對目標(biāo)RDD調(diào)用checkpoint(),標(biāo)記該RDD需要Checkpoint
  • 異步執(zhí)行:當(dāng)RDD首次被Action算子觸發(fā)計(jì)算時,Spark會啟動異步線程將RDD分區(qū)數(shù)據(jù)寫入Checkpoint目錄
  • 依賴截?cái)啵篊heckpoint完成后,RDD的依賴鏈被截?cái)啵窻DD引用被替換為Checkpoint文件路徑
  • 故障恢復(fù):下次訪問該RDD時,直接從Checkpoint文件讀取數(shù)據(jù),無需重算血緣依賴

(2) Spark Streaming中的WAL機(jī)制

為解決Receiver接收數(shù)據(jù)丟失問題,Spark Streaming引入Write-Ahead Log(預(yù)寫日志):

工作流程:

  • Receiver接收數(shù)據(jù)后,先寫入本地磁盤WAL日志
  • 確認(rèn)日志寫入成功后,再將數(shù)據(jù)復(fù)制到Executor內(nèi)存
  • 故障恢復(fù)時,從WAL日志重放未處理數(shù)據(jù)

配置方式:

ssc.conf.set("spark.streaming.receiver.writeAheadLog.enable","true")

(3) Structured Streaming Checkpoint

Spark 2.0+推出的Structured Streaming對Checkpoint進(jìn)行了優(yōu)化,目錄結(jié)構(gòu)包含:

  • metadata:查詢元數(shù)據(jù)(版本、配置等)
  • offsets:數(shù)據(jù)源偏移量(如Kafka topic分區(qū)偏移)
  • commits:輸出提交記錄
  • state:狀態(tài)數(shù)據(jù)(如聚合結(jié)果、窗口計(jì)算中間狀態(tài))

四、異同點(diǎn)全面對比

1. 相同點(diǎn)

  • 核心目標(biāo)一致:均通過持久化狀態(tài)實(shí)現(xiàn)故障恢復(fù),保證數(shù)據(jù)處理連續(xù)性
  • 依賴可靠存儲:均支持HDFS、S3等分布式文件系統(tǒng)作為Checkpoint存儲介質(zhì)
  • 可配置保留策略:支持設(shè)置Checkpoint保留數(shù)量,避免存儲溢出
  • 狀態(tài)恢復(fù)能力:故障后均可從最近Checkpoint恢復(fù),減少數(shù)據(jù)丟失

2. 不同點(diǎn)

對比維度

Flink Checkpoint

Spark Checkpoint

設(shè)計(jì)理念

流優(yōu)先,實(shí)時快照

批優(yōu)先,血緣截?cái)?/p>

觸發(fā)方式

自動周期觸發(fā)(毫秒級)

手動觸發(fā)/微批結(jié)束(秒級)

粒度控制

算子級(支持局部恢復(fù))

作業(yè)級(需全量恢復(fù))

數(shù)據(jù)一致性

原生支持Exactly-Once

基礎(chǔ)At-Least-Once(需外部機(jī)制增強(qiáng))

狀態(tài)存儲

集成狀態(tài)后端(與計(jì)算緊密耦合)

獨(dú)立文件系統(tǒng)(與計(jì)算分離)

快照類型

支持全量/增量快照

僅全量快照

性能開銷

增量快照低IO,影響小

全量快照高IO,影響大

恢復(fù)速度

分鐘級(僅恢復(fù)故障子任務(wù))

小時級(重算依賴鏈)

反壓處理

非對齊Checkpoint優(yōu)化

無特殊優(yōu)化,依賴批處理間隔調(diào)整

版本兼容性

Savepoint支持跨版本恢復(fù)

Checkpoint版本依賴強(qiáng),不支持跨版本

五、代碼示例與配置指南

1. Flink Checkpoint配置

(1) 基礎(chǔ)配置

importorg.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
importorg.apache.flink.contrib.streaming.state.RocksDBStateBackend;
importorg.apache.flink.runtime.state.CheckpointRecoveryFactory;
importorg.apache.flink.streaming.api.CheckpointingMode;

publicclassFlinkCheckpointExample{
publicstaticvoidmain(String[] args)throwsException{
// 創(chuàng)建流執(zhí)行環(huán)境
StreamExecutionEnvironment env =StreamExecutionEnvironment.getExecutionEnvironment();

// 1. 啟用Checkpoint,間隔5秒
        env.enableCheckpointing(5000);

// 2. 配置Checkpoint模式(默認(rèn)EXACTLY_ONCE)
        env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);

// 3. 設(shè)置超時時間(30秒內(nèi)未完成則失敗)
        env.getCheckpointConfig().setCheckpointTimeout(30000);

// 4. 最小Checkpoint間隔(避免重疊,2秒)
        env.getCheckpointConfig().setMinPauseBetweenCheckpoints(2000);

// 5. 最大并發(fā)Checkpoint數(shù)(1個)
        env.getCheckpointConfig().setMaxConcurrentCheckpoints(1);

// 6. 啟用非對齊Checkpoint(反壓場景)
        env.getCheckpointConfig().enableUnalignedCheckpoints();

// 7. 配置RocksDB狀態(tài)后端(啟用增量Checkpoint)
        env.setStateBackend(newRocksDBStateBackend("hdfs:///flink-checkpoints",true));

// 8. 外部化Checkpoint(取消作業(yè)時保留)
        env.getCheckpointConfig().setExternalizedCheckpointCleanup(
CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION
);

// 9. 容忍Checkpoint失敗次數(shù)(3次)
        env.getCheckpointConfig().setTolerableCheckpointFailureNumber(3);

// 業(yè)務(wù)邏輯示例
        env.socketTextStream("localhost",9999)
.flatMap((String line,Collector<String> out)->{
for(String word : line.split(" ")){
                   out.collect(word);
}
})
.map(word ->newTuple2<>(word,1))
.keyBy(0)
.sum(1)
.print();

        env.execute("Flink Checkpoint Demo");
}
}

(2) Flink 1.19新特性:動態(tài)Checkpoint間隔

// flink-conf.yaml配置
execution.checkpointing.interval:30s
execution.checkpointing.interval-during-backlog:30min

當(dāng)Source處理歷史積壓數(shù)據(jù)時,自動將Checkpoint間隔從30秒調(diào)整為30分鐘,減少IO壓力

2. Spark Checkpoint配置

(1) Spark Streaming配置

importorg.apache.spark.SparkConf
importorg.apache.spark.streaming.{Seconds, StreamingContext}

object SparkStreamingCheckpointExample {
def main(args: Array[String]):Unit={
// 1. 創(chuàng)建Spark配置
val conf =new SparkConf().setAppName("SparkStreamingCheckpoint")
val ssc =new StreamingContext(conf, Seconds(10))// 10秒微批

// 2. 設(shè)置Checkpoint目錄
    ssc.checkpoint("hdfs:///spark-checkpoints")

// 3. 啟用WAL機(jī)制
    ssc.conf.set("spark.streaming.receiver.writeAheadLog.enable","true")
    ssc.conf.set("spark.streaming.receiver.writeAheadLog.blockInterval","500ms")

// 4. 業(yè)務(wù)邏輯示例
val lines = ssc.socketTextStream("localhost",9999)
val words = lines.flatMap(_.split(" "))
val wordCounts = words.map(word =>(word,1)).reduceByKey(_ + _)
    wordCounts.print()

    ssc.start()
    ssc.awaitTermination()
}
}

(3) Structured Streaming配置

from pyspark.sql import SparkSession

if __name__ =="__main__":
# 1. 創(chuàng)建SparkSession
    spark = SparkSession.builder \
.appName("StructuredCheckpointExample") \
.getOrCreate()

# 2. 讀取Kafka流
    df = spark.readStream \
.format("kafka") \
.option("kafka.bootstrap.servers","localhost:9092") \
.option("subscribe","user_events") \
.load()

# 3. 業(yè)務(wù)邏輯(WordCount)
from pyspark.sql.functions import explode, split, col
    words = df.select(
        explode(split(col("value").cast("string")," ")).alias("word")
)
    wordCounts = words.groupBy("word").count()

# 4. 輸出并配置Checkpoint
    query = wordCounts.writeStream \
.outputMode("complete") \
.format("console") \
.option("checkpointLocation","/tmp/structured-checkpoint") \
.start()

    query.awaitTermination()

六、優(yōu)秀實(shí)踐

1. Flink優(yōu)化建議

狀態(tài)后端選擇:

  • 生產(chǎn)環(huán)境優(yōu)先使用RocksDBStateBackend,啟用增量Checkpoint
  • 配置state.backend.rocksdb.localdir指向高速磁盤(SSD)

Checkpoint參數(shù)調(diào)優(yōu):

# flink-conf.yaml關(guān)鍵配置
state.checkpoints.num-retained:3# 保留最近3個Checkpoint
state.checkpoint.cleaner.parallel-mode:true# 并行清理過期Checkpoint
taskmanager.network.memory.buffer-debloat.enabled:true# 自動控制緩沖區(qū)大小

狀態(tài)管理:

StateTtlConfig ttlConfig =StateTtlConfig.newBuilder(Time.hours(24))
.setUpdateType(StateTtlConfig.UpdateType.OnCreateAndWrite)
.setStateVisibility(StateTtlConfig.StateVisibility.NeverReturnExpired)
.build();
  • 避免使用過大狀態(tài),拆分熱點(diǎn)Key
  • 為狀態(tài)配置TTL(Time-To-Live),自動清理過期數(shù)據(jù)

2. Spark優(yōu)化建議

Checkpoint策略:

  • 對多次使用的RDD進(jìn)行Checkpoint,避免重復(fù)計(jì)算
  • 結(jié)合cache()和checkpoint(),先緩存后Checkpoint

WAL優(yōu)化:

  • 僅在關(guān)鍵場景啟用WAL(如數(shù)據(jù)源不支持重放)
  • 使用Kafka Direct API替代Receiver模式,減少WAL依賴

存儲優(yōu)化:

  • Checkpoint目錄使用高性能DFS(如HDFS的SSD存儲)
  • 定期清理過期Checkpoint(保留最近3-5個版本)

七、高級特性與版本演進(jìn)

1. Flink版本演進(jìn)

版本

Checkpoint關(guān)鍵特性

1.11

引入非對齊Checkpoint(Beta)

1.13

非對齊Checkpoint生產(chǎn)可用,支持狀態(tài)后端切換

1.15

緩沖區(qū)去膨脹(Buffer Debloating),優(yōu)化反壓場景

1.19

動態(tài)Checkpoint間隔、并行Checkpoint清理、命令行觸發(fā)

未來趨勢:

  • 分層狀態(tài)存儲(熱數(shù)據(jù)內(nèi)存,冷數(shù)據(jù)磁盤)
  • 異步快照優(yōu)化(減少同步阻塞時間)
  • 與云存儲深度集成(S3多版本支持)

2. Spark版本演進(jìn)

版本

Checkpoint關(guān)鍵特性

1.6

Spark Streaming引入WAL機(jī)制

2.0

Structured Streaming Checkpoint基礎(chǔ)架構(gòu)

2.3

連續(xù)處理模式(Continuous Processing)實(shí)驗(yàn)性支持

3.3

改進(jìn)狀態(tài)管理,支持RocksDB作為狀態(tài)后端(預(yù)覽)

未來趨勢:

  • 連續(xù)處理模式成熟度提升
  • 增量Checkpoint支持(計(jì)劃中)
  • 與Flink類似的分布式快照算法探索

八、常見問題與解決方案

1. Flink常見問題

問題現(xiàn)象

可能原因

解決方案

Checkpoint頻繁失敗

狀態(tài)過大、IO瓶頸、反壓

啟用增量Checkpoint、優(yōu)化狀態(tài)TTL、擴(kuò)容存儲

Checkpoint耗時過長

同步階段阻塞、網(wǎng)絡(luò)帶寬不足

啟用非對齊Checkpoint、壓縮快照數(shù)據(jù)

恢復(fù)后數(shù)據(jù)重復(fù)

Sink未實(shí)現(xiàn)兩階段提交

使用FlinkKafkaProducer的Exactly-Once模式

狀態(tài)目錄膨脹

未清理過期Checkpoint

配置ExternalizedCheckpointCleanup策略

2. Spark常見問題

問題現(xiàn)象

可能原因

解決方案

Checkpoint后作業(yè)變慢

小文件過多、存儲IO性能差

合并RDD分區(qū)、使用高性能存儲介質(zhì)

Driver故障后無法恢復(fù)

未配置元數(shù)據(jù)Checkpoint

設(shè)置spark.driver.allowMultipleContexts

WAL導(dǎo)致Receiver性能下降

日志寫入頻繁

增大blockInterval、使用本地SSD存儲

Structured Streaming狀態(tài)過大

未設(shè)置狀態(tài)TTL

配置watermark和狀態(tài)保留時間

九、結(jié)論與框架選擇建議

Flink和Spark的Checkpoint機(jī)制反映了兩者截然不同的設(shè)計(jì)哲學(xué):Flink通過精細(xì)化的分布式快照和增量更新,實(shí)現(xiàn)了低延遲、高一致性的流處理容錯;Spark則基于批處理模型,提供了簡單可靠的Checkpoint方案,更適合批流融合場景。

1. 框架選擇指南

場景特征

推薦框架

核心考量因素

實(shí)時性要求高(毫秒級)

Flink

非對齊Checkpoint、低延遲處理

狀態(tài)規(guī)模大(TB級)

Flink

增量Checkpoint、RocksDB高效存儲

精確一次語義剛需

Flink

內(nèi)置兩階段提交、Barrier對齊機(jī)制

批流一體化處理

Spark

Structured Streaming與Spark SQL無縫集成

已有Spark生態(tài)依賴

Spark

降低遷移成本,利用現(xiàn)有運(yùn)維體系

對延遲不敏感(秒級以上)

Spark

微批處理模型簡單可靠,社區(qū)成熟度高

責(zé)任編輯:趙寧寧 來源: 大數(shù)據(jù)技能圈
相關(guān)推薦

2025-04-27 08:15:00

FlinkSavepointCheckpoint

2025-10-29 07:00:00

FlinkSpark大數(shù)據(jù)

2022-01-14 07:56:38

Checkpoint機(jī)制Flink

2025-05-26 09:05:00

2025-08-27 10:00:00

FlinkCheckpoint大數(shù)據(jù)

2025-06-23 10:25:00

Trino開源大數(shù)據(jù)

2022-08-22 07:06:32

MyBatisSQL占位符

2022-02-08 07:02:32

進(jìn)程線程操作系統(tǒng)

2022-08-15 07:06:50

Propertiesyml配置

2022-08-03 07:04:56

GETHTTPPOST

2022-08-10 07:06:57

IoCDISpring

2022-04-24 07:59:53

synchronizJVMAPI

2023-02-01 07:15:16

2023-03-26 21:51:42

2023-02-17 08:02:45

@Autowired@Resource

2023-02-17 08:10:24

2024-04-03 15:33:04

JWTSession傳輸信息

2024-09-19 08:42:43

2024-09-24 13:49:13

SQL數(shù)據(jù)庫

2024-05-27 00:40:00

點(diǎn)贊
收藏

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

亚洲丝袜制服诱惑| 尤物网精品视频| 欧美日韩精品三区| 在线观看成人免费| 亚洲成熟女性毛茸茸| 国产视频一区在线观看一区免费| 亚洲一二三在线| 不用播放器的免费av| 欧美1234区| 91丨九色porny丨蝌蚪| 国产精品va在线播放| 女人18毛片毛片毛片毛片区二| 日本99精品| 色视频一区二区| 六月婷婷激情综合| 黄色片在线播放| 国产成人午夜精品影院观看视频| 97在线视频免费观看| jizz日本在线播放| 久久视频在线观看| 制服丝袜一区二区三区| 99福利在线观看| 色yeye免费人成网站在线观看| 26uuu国产电影一区二区| 91手机在线视频| 少妇又紧又色又爽又刺激视频 | 青青草久久网络| 亚洲精品18p| 久久国产免费看| 日本午夜人人精品| 久久激情免费视频| 日韩免费av| 亚洲少妇激情视频| 在线观看国产三级| 日韩一级淫片| 91精品国产手机| 欧美午夜aaaaaa免费视频| 亚洲美女尤物影院| 亚洲一区二区在线免费观看视频| 制服诱惑一区| 第一页在线观看| 国产三级精品在线| 裸体丰满少妇做受久久99精品| 亚洲免费不卡视频| 国产经典欧美精品| 91视频国产一区| 91女人18毛片水多国产| 日韩va亚洲va欧美va久久| 欧美亚洲成人网| 国产性xxxx高清| 亚洲激情网站| 97视频在线观看免费| 久久久久97国产| 欧美日韩精品免费观看视频完整| 久久中文字幕国产| 538任你躁在线精品视频网站| 91麻豆国产自产在线观看亚洲| 国产精品第一| 国产剧情一区二区三区| 国产主播欧美精品| 国产精品久久久久久久免费| 免费国产亚洲视频| 国产精品夜色7777狼人| 亚洲网站免费观看| 精品中文字幕一区二区| 国产日韩欧美视频| 国产三级视频在线播放| 国产精品69毛片高清亚洲| 亚洲v日韩v综合v精品v| 亚洲精品一区二区三区四区| 国产91精品一区二区麻豆亚洲| 国产精品加勒比| 香蕉av在线播放| 久久久久久久久久久99999| 日韩av一区二区三区在线观看| 9色在线视频| 亚洲男人的天堂在线观看| 少妇久久久久久被弄到高潮| av影视在线| 91久久线看在观草草青青| av在线网址导航| 亚洲精品在线国产| 日韩精品在线播放| 日本少妇xxxxx| 国产男女激情视频| 久久香蕉av| 日韩欧美中文在线| 天天干天天综合| 亚洲精品黑牛一区二区三区| 日韩黄色高清视频| 久草福利资源在线| 激情亚洲成人| 国产精品91久久| 国产肥老妇视频| 26uuu精品一区二区| 中文字幕精品—区二区日日骚| 蜜臀av在线| 欧美亚洲国产一区二区三区| 丰满人妻一区二区三区大胸| 亚洲综合福利| 久久精品国产亚洲7777| 亚洲天堂日韩av| 九一久久久久久| 老牛影视免费一区二区| 男女啪啪在线观看| 精品美女久久久久久免费| 五月激情五月婷婷| 香蕉久久夜色精品国产使用方法 | 狠狠色狠色综合曰曰| 熟妇人妻va精品中文字幕| 99精品美女视频在线观看热舞| 亚洲国产一区自拍| 九九热视频在线免费观看| 一区二区毛片| 91黄色国产视频| yourporn在线观看中文站| 亚洲在线中文字幕| av免费一区二区| 啪啪亚洲精品| 97免费中文视频在线观看| 一级黄色大片免费观看| 26uuu亚洲综合色| 日韩 欧美 视频| 9999在线精品视频| 无人区乱码一区二区三区| 欧美午夜电影一区| 欧美无人区码suv| 黑人一区二区| 91在线国产电影| av成人手机在线| 色天天综合色天天久久| 性感美女一区二区三区| 国产精品国产一区| 国产精品第一视频| 免费福利在线观看| 精品国产乱码久久久久久天美 | 午夜精品福利电影| 国产黄色片网站| 亚洲三级免费观看| 亚洲美女爱爱视频| 国产精品99视频| 国产综合福利在线| 97视频在线观看网站| 欧美最新大片在线看| 五月天精品视频| 亚洲欧美日韩专区| 麻豆av一区二区| 在线天堂资源www在线污| 亚洲国产婷婷香蕉久久久久久| 久久网一区二区| 成人一区二区三区| 成人性免费视频| 欧美日韩一本| 欧美有码在线观看| 极品白浆推特女神在线观看 | 日日干夜夜操s8| 色婷婷综合网| 91色视频在线导航| 三级资源在线| 亚洲精品国产福利| 青青国产在线观看| 久久久另类综合| 亚洲最大综合网| 午夜精品一区二区三区国产 | www.亚洲自拍| 欧美 日韩 国产一区二区在线视频| 91亚洲精品久久久| 欧美黑人xx片| 日韩成人免费视频| 国产黄色免费视频| 国产精品电影院| ...xxx性欧美| 久久久久久免费看| 天天躁日日躁成人字幕aⅴ| 欧美在线性爱视频 | 加勒比在线一区| 欧美高清在线一区二区| 中文字幕66页| 激情六月综合| 日本一区二区三区视频在线观看| 78精品国产综合久久香蕉| 精品国产一区二区三区在线观看 | 日韩精品免费看| 91黑人精品一区二区三区| 国产精品白丝在线| 久久人妻少妇嫩草av蜜桃| 99国产精品久久久久久久| 欧美亚洲另类久久综合| 欧洲亚洲精品久久久久| 欧美激情一区二区三区成人 | 一女二男一黄一片| 亚洲国产日韩精品| 色一情一交一乱一区二区三区| 精一区二区三区| 国产欧美在线一区| 午夜影院欧美| 日本高清不卡一区二区三| 久久中文字幕一区二区| 秋霞成人午夜鲁丝一区二区三区| 巨大荫蒂视频欧美大片| 亚洲国产精品福利| 一区二区不卡视频在线观看| 五月天一区二区| 午夜成人亚洲理伦片在线观看| 99久久久久免费精品国产| 国产亚洲视频一区| 国产欧美一级| 51xx午夜影福利| 成人3d动漫在线观看| 国产精品国产精品| 久久精品国产福利| 91av在线国产| 日韩成人伦理| 久久九九国产精品怡红院 | 精品伊人久久久| 91久久久久久久一区二区| 天堂√8在线中文| 美日韩精品免费视频| 国产三区四区在线观看| 亚洲国产精品久久久久秋霞不卡| 国产精品高潮呻吟久久久| 岛国av在线不卡| 精品少妇一二三区| 国产精品国产精品国产专区不蜜 | 精品国产乱码久久久久久果冻传媒| 97国产超碰| 伊人亚洲精品| 国产日韩欧美在线观看| 欧美片第一页| 人人做人人澡人人爽欧美| av在线小说| 国内外成人免费激情在线视频网站| 黄色网址在线免费播放| 中文字幕av一区| 二区三区在线播放| 一区二区三区四区在线观看视频| 五月激情六月婷婷| 亚洲第一色在线| 狠狠综合久久av一区二区| 日韩欧美色综合| 国产又粗又黄又爽的视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | www.这里只有精品| 日韩成人一级大片| 午夜欧美福利视频| 久久成人在线| 久久精品一区二| 噜噜噜在线观看免费视频日韩| 国产肥臀一区二区福利视频| 国产农村妇女精品一二区| 91视频最新入口| 日韩高清不卡一区| 五月婷婷狠狠操| 美日韩一级片在线观看| 日本久久久久久久久久久久| 奇米四色…亚洲| 老司机久久精品| 国产精品99久久久| 欧美精品少妇一区二区三区| 四虎国产精品成人免费入口| 久久久国产午夜精品| av手机在线播放| 综合久久给合久久狠狠狠97色| 美女视频久久久| 亚洲激情图片qvod| 久久网免费视频| 欧美丝袜第一区| 欧美日韩在线视频播放| 欧美美女一区二区三区| 99热精品在线播放| 亚洲国产精品成人av| 精品影院一区| 日韩中文字幕精品| 日韩伦理av| 人九九综合九九宗合| 激情中国色综合| 91青青草免费观看| 女人抽搐喷水高潮国产精品| 日本一区二区精品| 久久精品久久久| 香港三级韩国三级日本三级| 老司机精品久久| 色欲无码人妻久久精品| 99在线精品视频| 91免费在线看片| 亚洲成人av在线电影| 国产情侣小视频| 日韩欧美一卡二卡| 你懂的视频在线观看| 久久精品久久久久久国产 免费| free性欧美| 国产精品偷伦视频免费观看国产| 亚洲精品观看| 91精品欧美综合在线观看最新| 91香蕉国产线在线观看| 成人午夜激情影院| 性の欲びの女javhd| 一区二区三区在线观看动漫| 久久国产黄色片| 欧美一区二区在线不卡| 日本天堂在线| 欧美高清视频一区二区| 日本少妇一区| 精品无人区一区二区三区 | 国产一区二区三区免费视频| 成年人网站在线| 国产成人综合一区二区三区| h视频久久久| 中文字幕黄色大片| 久久亚洲精品伦理| 在线中文字日产幕| 国产精品久久久久久久久免费桃花 | fc2成人免费视频| 国产精品久久久久一区二区三区共| 亚洲一区 视频| 欧美一区二区三区日韩视频| 福利在线视频导航| 2019中文字幕免费视频| 色悠久久久久综合先锋影音下载| 亚洲va久久久噜噜噜久久狠狠 | 国产精品视频中文字幕| 91香蕉视频污| 亚洲国产综合久久| 日韩一区二区精品在线观看| 午夜视频在线观看免费视频| 欧洲精品毛片网站| 欧美网色网址| 人人干视频在线| 成人性生交大片免费看中文网站| 国产精品国产三级国产传播| 欧美色图第一页| 国产三级电影在线| 欧美在线视频免费播放| 欧美激情15p| www..com日韩| 成人av午夜影院| 国产第一页第二页| 日韩免费一区二区| 中文字幕在线三区| 91久久在线播放| 91精品蜜臀一区二区三区在线| 国产三级三级看三级| 国产精品午夜免费| 综合久久中文字幕| 中文字幕精品在线| 91成人破解版| 91亚洲国产成人精品一区二三 | 疯狂做受xxxx高潮欧美日本| 欧美 日韩 国产 成人 在线 91| 欧美激情一区二区久久久| 成人看片黄a免费看视频| 久久男人资源站| www.成人网.com| 天堂在线免费观看视频| 亚洲精品午夜精品| 免费电影日韩网站| 日韩久久久久久久久久久久久| 日本成人超碰在线观看| 91无套直看片红桃在线观看| 欧美日韩卡一卡二| 免费观看在线黄色网| 亚洲影影院av| 亚洲区第一页| 欧美图片第一页| 欧美日韩午夜精品| 性爱视频在线播放| 国产高清在线精品一区二区三区| 99精品免费网| 中文字幕第24页| 7777精品伊人久久久大香线蕉完整版 | 欧美a v在线播放| 国产女主播在线一区二区| 国产又粗又长又大视频| 欧美裸身视频免费观看| 久久综合社区| 99热这里只有精品在线播放| 亚洲视频精选在线| 蜜桃av噜噜一区二区三区麻豆| 欧美在线视频一区二区| 首页国产精品| xxxwww国产| 欧美色图在线观看| 超碰在线观看免费版| 国产一区二区三区奇米久涩| 免费亚洲一区| 婷婷在线精品视频| 精品一区二区电影| 四虎影视国产精品| 欧美成人免费在线观看视频| 中文在线一区二区| 国产 日韩 欧美 综合| 国产精品吹潮在线观看| 欧美91福利在线观看| 性少妇bbw张开| 日韩一区二区麻豆国产| av在线日韩| 国产不卡一区二区视频| 中文字幕中文字幕在线一区| 人成免费电影一二三区在线观看| 亚洲一区二区自拍|