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

記一次生產(chǎn)環(huán)境中 Kafka 集群面對(duì)消息量飆升后獲得五倍性能提升的優(yōu)化之旅

大數(shù)據(jù)
前幾天我碰到了一個(gè)Kafka集群在消息量突然飆升時(shí)遇到的性能瓶頸問題,經(jīng)過幾個(gè)小時(shí)的苦戰(zhàn)后,集群恢復(fù)了平穩(wěn)運(yùn)行,性能提升了5倍,本文將詳細(xì)闡述從問題發(fā)現(xiàn)、分析到最終解決的完整過程。

前幾天我碰到了一個(gè)Kafka集群在消息量突然飆升時(shí)遇到的性能瓶頸問題,經(jīng)過幾個(gè)小時(shí)的苦戰(zhàn)后,集群恢復(fù)了平穩(wěn)運(yùn)行,性能提升了5倍,本文將詳細(xì)闡述從問題發(fā)現(xiàn)、分析到最終解決的完整過程。

一、第一部分:?jiǎn)栴}發(fā)現(xiàn)

1. 告警觸發(fā)

周一早上9:00,監(jiān)控系統(tǒng)突然觸發(fā)了多項(xiàng)Kafka集群告警:

  • 消息積壓量急劇上升,部分主題的消費(fèi)延遲從毫秒級(jí)增加到分鐘級(jí)
  • 生產(chǎn)者客戶端報(bào)告大量請(qǐng)求超時(shí)錯(cuò)誤
  • Broker的CPU使用率飆升至90%以上
  • 網(wǎng)絡(luò)流量激增,接近物理網(wǎng)卡限制
  • 磁盤I/O使用率達(dá)到峰值

2. 初步情況評(píng)估

運(yùn)維團(tuán)隊(duì)立即展開初步調(diào)查,發(fā)現(xiàn):

  • 集群配置:5個(gè)broker節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)16核CPU,64GB內(nèi)存,10Gbps網(wǎng)絡(luò),RAID10磁盤陣列
  • 主要業(yè)務(wù)主題的分區(qū)數(shù):30個(gè),副本因子為3
  • 正常情況下,集群處理能力約為每秒50,000條消息
  • 當(dāng)前情況:消息生產(chǎn)速率突然飆升至每秒200,000條,是平時(shí)的4倍
  • 消費(fèi)者組處理速度明顯滯后,無法跟上生產(chǎn)速度

3. 業(yè)務(wù)影響評(píng)估

  • 多個(gè)關(guān)鍵業(yè)務(wù)系統(tǒng)報(bào)告數(shù)據(jù)處理延遲
  • 用戶交易確認(rèn)時(shí)間延長(zhǎng),部分交易出現(xiàn)超時(shí)
  • 數(shù)據(jù)分析平臺(tái)無法及時(shí)獲取最新數(shù)據(jù)
  • 實(shí)時(shí)監(jiān)控系統(tǒng)數(shù)據(jù)更新滯后

二、第二部分:?jiǎn)栴}分析

1. 日志分析

首先檢查Kafka服務(wù)器日志,發(fā)現(xiàn)大量警告和錯(cuò)誤信息:

WARN [ReplicaManager brokerId=1] Produce request with correlation id 12345 from client client1 on partition topic1-15 failed due to request timeout  
ERROR [KafkaRequestHandlerPool-0] Error when handling request: clientId=client2, correlationId=23456, api=PRODUCE  
java.lang.OutOfMemoryError: Java heap space  
WARN [ReplicaFetcherThread-0-3] Error in fetch from broker 3 for partition topic2-5

這些日志表明集群正面臨嚴(yán)重的資源壓力,包括請(qǐng)求處理超時(shí)、內(nèi)存不足和副本同步問題。

2. JVM監(jiān)控分析

通過JVM監(jiān)控工具分析broker進(jìn)程:

  • 堆內(nèi)存使用率接近90%,頻繁觸發(fā)Full GC
  • GC暫停時(shí)間從正常的幾十毫秒增加到幾百毫秒
  • 年輕代內(nèi)存分配速率異常高,表明有大量對(duì)象創(chuàng)建

3. 系統(tǒng)資源分析

使用系統(tǒng)監(jiān)控工具分析各節(jié)點(diǎn)資源使用情況:

  • CPU:用戶空間使用率85%,系統(tǒng)空間15%,幾乎沒有空閑
  • 內(nèi)存:物理內(nèi)存使用率95%,部分節(jié)點(diǎn)開始使用swap
  • 磁盤I/O:寫入速度接近物理極限,讀取隊(duì)列長(zhǎng)度持續(xù)增加
  • 網(wǎng)絡(luò):入站流量8.5Gbps,接近10Gbps的物理限制

4. Kafka指標(biāo)分析

通過Kafka內(nèi)置指標(biāo)和JMX監(jiān)控,發(fā)現(xiàn)以下關(guān)鍵問題:

請(qǐng)求隊(duì)列積壓:

  • 請(qǐng)求隊(duì)列大小(request-queue-size)持續(xù)增長(zhǎng),表明網(wǎng)絡(luò)線程無法及時(shí)處理請(qǐng)求
  • 網(wǎng)絡(luò)處理線程CPU使用率接近100%

磁盤I/O瓶頸:

  • 日志刷盤延遲(log-flush-rate-and-time-ms)顯著增加
  • 磁盤寫入操作頻繁阻塞

副本同步問題:

  • ISR收縮事件頻繁發(fā)生,表明副本無法跟上leader的寫入速度
  • 副本同步延遲(replica-lag)持續(xù)增加

消息批處理效率低下:

  • 平均批次大小(batch-size-avg)遠(yuǎn)低于配置的最大值
  • 生產(chǎn)者請(qǐng)求頻率過高,導(dǎo)致網(wǎng)絡(luò)和處理開銷增加

5. 客戶端配置分析

檢查生產(chǎn)者客戶端配置,發(fā)現(xiàn)以下問題:

  • 批處理大小(batch.size)設(shè)置過小,默認(rèn)為16KB
  • linger.ms設(shè)置為0,導(dǎo)致消息立即發(fā)送而不等待批處理
  • 壓縮類型設(shè)置為none,未啟用任何壓縮
  • 生產(chǎn)者緩沖區(qū)(buffer.memory)設(shè)置不足,僅為32MB

檢查消費(fèi)者客戶端配置:

  • 消費(fèi)者拉取大小(fetch.max.bytes)設(shè)置過小,限制了單次拉取的數(shù)據(jù)量
  • 消費(fèi)者線程數(shù)不足,無法充分利用多核處理能力
  • 消費(fèi)者組重平衡策略不合理,導(dǎo)致頻繁的分區(qū)重分配

6. 根因分析

綜合以上分析,確定了以下核心問題:

(1) 資源配置不足:

  • Broker的JVM堆內(nèi)存配置不足以應(yīng)對(duì)突發(fā)流量
  • 網(wǎng)絡(luò)線程和I/O線程數(shù)量不足,無法充分利用多核CPU

(2) 參數(shù)配置不合理:

  • 生產(chǎn)者批處理和壓縮配置不合理,導(dǎo)致網(wǎng)絡(luò)和處理效率低下
  • 消費(fèi)者拉取配置限制了消費(fèi)速度
  • Broker端隊(duì)列大小限制不足以應(yīng)對(duì)突發(fā)流量

(3) 主題分區(qū)設(shè)計(jì)不合理:

  • 熱點(diǎn)主題分區(qū)數(shù)量不足,無法充分利用并行處理能力
  • 分區(qū)分布不均衡,導(dǎo)致部分broker負(fù)載過重

(4) 監(jiān)控預(yù)警不及時(shí):

  • 缺乏對(duì)生產(chǎn)速率變化的有效監(jiān)控和預(yù)警機(jī)制
  • 沒有針對(duì)突發(fā)流量的自動(dòng)擴(kuò)容策略

三、第三部分:緊急優(yōu)化方案

基于上述分析,制定了分階段的緊急優(yōu)化方案:

1. 第一階段:立即緩解壓力(0-2小時(shí))

(1) 增加關(guān)鍵資源配置

增加JVM堆內(nèi)存:

# 修改Kafka啟動(dòng)腳本中的KAFKA_HEAP_OPTS  
export KAFKA_HEAP_OPTS="-Xms16G -Xmx16G"

優(yōu)化GC配置:

# 添加以下GC參數(shù)  
export KAFKA_JVM_PERFORMANCE_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent"

增加網(wǎng)絡(luò)和I/O線程數(shù):修改server.properties配置

# 增加網(wǎng)絡(luò)線程數(shù),從默認(rèn)的3增加到16  
num.network.threads=16  


# 增加I/O線程數(shù),從默認(rèn)的8增加到32  
num.io.threads=32  


# 增加請(qǐng)求隊(duì)列大小  
queued.max.requests=1000

調(diào)整請(qǐng)求處理參數(shù):

# 增加socket接收緩沖區(qū)  
socket.receive.buffer.bytes=1048576  


# 增加socket發(fā)送緩沖區(qū)  
socket.send.buffer.bytes=1048576  


# 增加最大請(qǐng)求大小  
max.request.size=10485760

(2) 優(yōu)化生產(chǎn)者客戶端配置

為主要生產(chǎn)者應(yīng)用緊急推送配置更新:

# 增加批處理大小  
batch.size=131072  


# 設(shè)置linger.ms使消息有時(shí)間進(jìn)行批處理  
linger.ms=50  


# 啟用壓縮  
compression.type=lz4  


# 增加生產(chǎn)者緩沖區(qū)  
buffer.memory=536870912  


# 增加重試次數(shù)和重試間隔  
retries=10  
retry.backoff.ms=100

(3) 優(yōu)化消費(fèi)者客戶端配置

為主要消費(fèi)者應(yīng)用緊急推送配置更新:

# 增加單次拉取大小  
fetch.max.bytes=52428800  


# 增加最大拉取等待時(shí)間  
fetch.max.wait.ms=500  


# 增加消費(fèi)者緩沖區(qū)大小  
max.partition.fetch.bytes=10485760

(4) 臨時(shí)限流措施

為非關(guān)鍵業(yè)務(wù)實(shí)施臨時(shí)限流:

// 在生產(chǎn)者客戶端實(shí)施限流  
Properties props = new Properties();  
props.put("throttle.rate", "10000"); // 每秒限制10000條消息

2. 第二階段:系統(tǒng)優(yōu)化(2-6小時(shí))

(1) 增加熱點(diǎn)主題分區(qū)數(shù)

為熱點(diǎn)主題增加分區(qū)數(shù),提高并行處理能力:

# 使用kafka-topics.sh工具增加分區(qū)數(shù)  
bin/kafka-topics.sh --bootstrap-server broker1:9092 --alter --topic hot-topic --partitions 60

(2) 重平衡分區(qū)分配

執(zhí)行分區(qū)重分配,優(yōu)化分區(qū)在broker間的分布:

# 生成分區(qū)重分配計(jì)劃  
bin/kafka-reassign-partitions.sh --bootstrap-server broker1:9092 --generate --topics-to-move-json-file topics.json --broker-list "1,2,3,4,5"  


# 執(zhí)行分區(qū)重分配  
bin/kafka-reassign-partitions.sh --bootstrap-server broker1:9092 --execute --reassignment-json-file reassignment.json

(3) 優(yōu)化日志配置

修改server.properties配置,優(yōu)化日志處理:

# 增加日志段大小,減少小文件數(shù)量  
log.segment.bytes=1073741824  


# 優(yōu)化日志刷盤策略,避免頻繁刷盤  
log.flush.interval.messages=50000  
log.flush.interval.ms=10000  


# 優(yōu)化日志清理線程數(shù)  
log.cleaner.threads=4

(4) 調(diào)整副本同步參數(shù)

# 增加副本拉取線程數(shù)  
num.replica.fetchers=8  


# 增加副本拉取大小  
replica.fetch.max.bytes=10485760  


# 調(diào)整ISR收縮時(shí)間,避免頻繁的ISR變化  
replica.lag.time.max.ms=30000

(5) 實(shí)施動(dòng)態(tài)配置調(diào)整

利用Kafka的動(dòng)態(tài)配置功能,無需重啟即可調(diào)整關(guān)鍵參數(shù):

# 使用kafka-configs.sh工具動(dòng)態(tài)調(diào)整配置  
bin/kafka-configs.sh --bootstrap-server broker1:9092 --entity-type brokers --entity-name 1 --alter --add-config "num.io.threads=32,num.network.threads=16"

3. 第三階段:架構(gòu)優(yōu)化(6-24小時(shí))

(1) 擴(kuò)展集群規(guī)模

緊急添加新的broker節(jié)點(diǎn),擴(kuò)展集群處理能力:

# 配置新的broker節(jié)點(diǎn)  
# server.properties for new brokers  
broker.id=6  
listeners=PLAINTEXT://new-broker:9092  
...  


# 啟動(dòng)新節(jié)點(diǎn)  
bin/kafka-server-start.sh config/server.properties

(2) 實(shí)施主題分區(qū)遷移

將部分熱點(diǎn)主題的分區(qū)遷移到新節(jié)點(diǎn):

# 生成遷移計(jì)劃,將部分分區(qū)遷移到新節(jié)點(diǎn)  
bin/kafka-reassign-partitions.sh --bootstrap-server broker1:9092 --generate --topics-to-move-json-file hot-topics.json --broker-list "1,2,3,4,5,6"  


# 執(zhí)行遷移計(jì)劃  
bin/kafka-reassign-partitions.sh --bootstrap-server broker1:9092 --execute --reassignment-json-file migration.json

(3) 優(yōu)化存儲(chǔ)架構(gòu)

將日志目錄分散到多個(gè)物理磁盤:

# 配置多個(gè)日志目錄,分散I/O壓力  
log.dirs=/data1/kafka-logs,/data2/kafka-logs,/data3/kafka-logs,/data4/kafka-logs

為不同類型的主題配置不同的存儲(chǔ)策略:

# 為高吞吐量主題配置專用存儲(chǔ)策略  
bin/kafka-configs.sh --bootstrap-server broker1:9092 --entity-type topics --entity-name high-throughput-topic --alter --add-config "retention.ms=86400000,cleanup.policy=delete"  


# 為需要長(zhǎng)期保存的主題配置壓縮策略  
bin/kafka-configs.sh --bootstrap-server broker1:9092 --entity-type topics --entity-name archive-topic --alter --add-config "cleanup.policy=compact"

(4) 實(shí)施客戶端架構(gòu)優(yōu)化

改進(jìn)生產(chǎn)者設(shè)計(jì):

// 實(shí)現(xiàn)異步批量發(fā)送模式  
public class OptimizedProducer {  
    private final KafkaProducer<String, String> producer;  
    private final ScheduledExecutorService scheduler;  
    private final ConcurrentLinkedQueue<ProducerRecord<String, String>> messageQueue;  
    private final int batchSize;  


    public OptimizedProducer(Properties props, int batchSize) {  
        this.producer = new KafkaProducer<>(props);  
        this.scheduler = Executors.newScheduledThreadPool(1);  
        this.messageQueue = new ConcurrentLinkedQueue<>();  
        this.batchSize = batchSize;  


        // 定時(shí)批量發(fā)送  
        this.scheduler.scheduleAtFixedRate(this::sendBatch, 100, 100, TimeUnit.MILLISECONDS);  
    }  


    public void send(String topic, String key, String value) {  
        messageQueue.add(new ProducerRecord<>(topic, key, value));  
        if (messageQueue.size() >= batchSize) {  
            sendBatch();  
        }  
    }  


    private void sendBatch() {  
        List<ProducerRecord<String, String>> batch = new ArrayList<>();  
        ProducerRecord<String, String> record;  
        while ((record = messageQueue.poll()) != null && batch.size() < batchSize) {  
            batch.add(record);  
        }  


        for (ProducerRecord<String, String> r : batch) {  
            producer.send(r, (metadata, exception) -> {  
                if (exception != null) {  
                    // 處理失敗,重新入隊(duì)或記錄日志  
                    messageQueue.add(r);  
                }  
            });  
        }  
        producer.flush();  
    }  
}

優(yōu)化消費(fèi)者處理模型:

// 實(shí)現(xiàn)多線程消費(fèi)處理模型  
public class ParallelConsumer {  
    private final Consumer<String, String> consumer;  
    private final ExecutorService executor;  
    private final int numWorkers;  


    public ParallelConsumer(Properties props, int numWorkers) {  
        this.consumer = new KafkaConsumer<>(props);  
        this.numWorkers = numWorkers;  
        this.executor = Executors.newFixedThreadPool(numWorkers);  
    }  


    public void start(String topic, MessageProcessor processor) {  
        consumer.subscribe(Collections.singleton(topic));  


        while (true) {  
            ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));  
            if (!records.isEmpty()) {  
                // 將記錄分組,并行處理  
                List<Future<?>> futures = new ArrayList<>();  
                for (TopicPartition partition : records.partitions()) {  
                    List<ConsumerRecord<String, String>> partitionRecords = records.records(partition);  
                    futures.add(executor.submit(() -> {  
                        for (ConsumerRecord<String, String> record : partitionRecords) {  
                            processor.process(record);  
                        }  
                    }));  
                }  


                // 等待所有處理完成  
                for (Future<?> future : futures) {  
                    try {  
                        future.get();  
                    } catch (Exception e) {  
                        // 處理異常  
                    }  
                }  


                // 手動(dòng)提交偏移量  
                consumer.commitSync();  
            }  
        }  
    }  


    public interface MessageProcessor {  
        void process(ConsumerRecord<String, String> record);  
    }  
}

(5) 實(shí)施主題分區(qū)策略優(yōu)化

根據(jù)消息流量特征重新設(shè)計(jì)分區(qū)策略:

# 為高流量主題增加分區(qū)數(shù)  
bin/kafka-topics.sh --bootstrap-server broker1:9092 --alter --topic high-traffic-topic --partitions 100  


# 為關(guān)鍵業(yè)務(wù)主題增加副本因子  
bin/kafka-topics.sh --bootstrap-server broker1:9092 --alter --topic critical-topic --replica-assignment "1:2:3:4:5,2:3:4:5:1,..."

實(shí)施自定義分區(qū)器,避免熱點(diǎn)分區(qū):

public class BalancedPartitioner implements Partitioner {  
    private Random random = new Random();  


    @Override  
    public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) {  
        List<PartitionInfo> partitions = cluster.partitionsForTopic(topic);  
        int numPartitions = partitions.size();  


        if (keyBytes == null) {  
            // 隨機(jī)分區(qū)  
            return random.nextInt(numPartitions);  
        } else {  
            // 使用一致性哈希算法,但避免熱點(diǎn)  
            int hashCode = Arrays.hashCode(keyBytes);  
            return Math.abs(hashCode) % numPartitions;  
        }  
    }  


    @Override  
    public void close() {}  


    @Override  
    public void configure(Map<String, ?> configs) {}  
}
責(zé)任編輯:趙寧寧 來源: 大數(shù)據(jù)技能圈
相關(guān)推薦

2020-08-10 11:00:02

Python優(yōu)化代碼

2022-06-01 06:17:42

微服務(wù)Kafka

2020-11-03 07:34:12

Kafka后端工程師

2021-03-01 06:14:50

環(huán)境高并發(fā)延遲

2019-08-15 11:30:06

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

2019-08-19 01:34:38

數(shù)據(jù)庫(kù)SQL數(shù)據(jù)庫(kù)優(yōu)化

2019-01-21 11:17:13

CPU優(yōu)化定位

2019-12-16 07:18:42

數(shù)據(jù)庫(kù)SQL代碼

2018-12-06 16:25:39

數(shù)據(jù)庫(kù)服務(wù)器線程池

2019-09-27 17:24:26

數(shù)據(jù)庫(kù)優(yōu)化sql

2020-09-25 07:57:42

生產(chǎn)事故系統(tǒng)

2019-11-18 13:42:55

MySQL數(shù)據(jù)庫(kù)遷移

2019-11-22 08:05:01

數(shù)據(jù)庫(kù)mysql分區(qū)

2019-12-12 10:38:10

mysql數(shù)據(jù)庫(kù)nnodb

2019-12-02 08:09:57

境數(shù)據(jù)庫(kù)連接超時(shí)自動(dòng)回收

2021-01-12 07:57:36

MySQLBinlog故障處理

2021-01-27 11:50:07

Python優(yōu)化代碼

2025-05-19 09:22:32

2020-12-15 11:18:43

系統(tǒng)磁盤lvm數(shù)據(jù)庫(kù)

2019-09-24 07:00:01

SQL Server服務(wù)器卡頓內(nèi)存分配
點(diǎn)贊
收藏

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

91视频精品在这里| 亚洲ab电影| 亚洲一区二区三区四区五区中文| 欧美精品18videosex性欧美| 亚洲第一黄色网址| 国产精品久久久久久久久免费高清| youjizz久久| 国产精品国语对白| 久久久久久久极品内射| 日本亚洲视频| 色狠狠一区二区| 欧美日韩dvd| 国产小视频在线观看| 国产日韩欧美| 国产丝袜精品第一页| 欧美婷婷精品激情| 午夜视频在线观看网站| 福利91精品一区二区三区| 国产精品黄页免费高清在线观看| 波多野结衣家庭教师在线观看| av成人免费看| 欧美日韩国产中文字幕 | 蜜桃视频在线观看91| 一级特黄色大片| 综合日韩在线| 中文字幕亚洲欧美在线| 午夜免费福利视频在线观看| а√在线天堂官网| 亚洲激情欧美激情| 一区二区三区四区欧美日韩| 全色精品综合影院| 亚洲一区激情| 欧美激情一区二区三级高清视频 | 成人免费91| 一区二区三区在线视频观看| 国产精品日韩高清| 欧美不卡在线播放| 很污很黄的网站| 视频一区中文| 亚洲第一福利网| 无码国产精品一区二区高潮| 另类一区二区三区| 欧美视频在线一区| 精品少妇人妻av一区二区| 国产中文在线观看| 91麻豆精品一区二区三区| 国产精品久久久一区二区三区| 国产精彩视频在线观看| 自拍欧美日韩| 久久99精品久久久久久青青91| 中文字幕免费高清视频| 青草伊人久久| 日韩欧美在线网站| 国内外成人激情视频| 黄网站视频在线观看| 国产精品高潮久久久久无| wwwxx欧美| 精品人妻无码一区二区三区蜜桃一 | 三区四区在线视频| 91美女片黄在线观看91美女| 精品91免费| 亚洲 欧美 精品| 26uuu另类欧美| 麻豆91蜜桃| 国产一级片在线播放| 国产日韩欧美a| 亚洲精品欧美精品| 精品欧美色视频网站在线观看| 成人91在线观看| 91在线观看免费观看| 精产国品一区二区| 美女看a上一区| 国产一区玩具在线观看| 国产情侣在线播放| 成人av在线资源| 久久久久久久免费| jizz亚洲| 久久久蜜臀国产一区二区| 先锋在线资源一区二区三区| 法国空姐在线观看免费| 99国产在线播放| 丁香另类激情小说| 久久精品magnetxturnbtih| 国产情侣av在线| 国产成人精品免费| 免费国产一区二区| 无码国产精品一区二区免费16| 国产又粗又猛又爽又黄91精品| 国产精品嫩草影院久久久| 一区二区三区免费在线| 国产suv一区二区三区88区| 精品综合久久| 女女色综合影院| 亚洲国产欧美日韩另类综合| www.激情网| 日韩av一卡| 欧美精品777| 亚洲精品理论片| 99久久99视频只有精品| 性色av一区二区三区在线观看| 国产免费无码一区二区视频| 国产精品久久久久久久| 色青青草原桃花久久综合| 中文天堂资源在线| 日本道不卡免费一区| 欧美成人精品在线| 欧美精品99久久久| 久久一区国产| 翡翠波斯猫1977年美国| 日韩在线视频第一页| 中文字幕免费不卡| 国精产品一区一区三区视频| 日韩在线激情| 亚洲天堂av电影| 国产在线综合网| 六月丁香婷婷久久| 亚洲精品电影网| 国产欧美日韩视频一区二区三区| 亚洲国产成人在线观看| 中文字幕的久久| 国产亚洲欧美在线视频| 欧美国产中文高清| 视频直播国产精品| 69xxxx国产| 96av麻豆蜜桃一区二区| 成人国产在线看| **日韩最新| 尤物九九久久国产精品的特点| 美女av免费看| 久久久噜噜噜| 久久成人资源| av中文字幕在线看| 欧美不卡视频一区| 老女人性淫交视频| 精品一区二区三区在线观看| 99国产超薄丝袜足j在线观看 | 亚洲国产精品电影| 欧美人与禽zozzo禽性配| 麻豆freexxxx性91精品| 亚洲国产欧美一区二区三区不卡| 在线黄色网页| 色久综合一二码| asian性开放少妇pics| 亚洲成人原创| 国产欧美日韩在线播放| 2021中文字幕在线| 精品播放一区二区| www.av麻豆| 91视频你懂的| 国产黄色特级片| 精品国模一区二区三区欧美 | 一区二区三区在线免费观看| 国产精品宾馆在线精品酒店| 国产乱论精品| 97精品国产97久久久久久免费 | 校园春色 亚洲| 国产乱人伦精品一区二区在线观看| 国产一区二区三区久久精品 | 视频一区日韩精品| 超薄丝袜一区二区| 精品黑人一区二区三区国语馆| 91啪亚洲精品| 黄色av免费在线播放| 97se亚洲| 91成品人片a无限观看| 欧美日韩伦理片| 欧美午夜宅男影院| 国产精品嫩草影院俄罗斯| 国产精品一区二区久久精品爱涩| 青青影院一区二区三区四区| 欧美精品总汇| www.亚洲成人| 成人免费观看在线视频| 狠狠久久五月精品中文字幕| 国产美女精品久久| 老司机精品视频在线| 久久伊人一区| 国产福利一区二区三区在线播放| 亚洲精品中文字幕女同| 黄色在线观看免费| 99精品国产视频| 亚洲成色www.777999| 亚洲国产精品久久久久蝴蝶传媒| 国产精品视频26uuu| а√天堂在线官网| 日韩精品久久久久久福利| 免费在线观看国产精品| 久久亚洲影视婷婷| 日韩欧美理论片| a91a精品视频在线观看| 亚洲国产一区二区三区在线播| 欧美7777| 亚洲精品永久免费精品| 中文字幕一区二区人妻| 欧美激情在线免费观看| 精品人妻一区二区三| 欧美一区久久| 美女三级99| 国产剧情一区二区在线观看| 国产做受高潮69| 在线观看免费黄视频| 亚洲高清色综合| 亚洲最大成人av| 婷婷六月综合亚洲| 国产精品国产精品88| 日本电影在线观看网站| 在线亚洲免费视频| 日本免费在线播放| 中文字幕日韩精品一区| 性生交免费视频| 激情欧美一区二区三区| 亚洲精品9999| 亚洲区小说区图片区qvod| 日韩av电影在线播放| 青青青草视频在线| 中文字幕久久久av一区| 婷婷久久久久久| 欧美一区二区三区视频免费 | 国产视频手机在线| 色哟哟在线观看一区二区三区| 国产中年熟女高潮大集合| 日韩精彩视频在线观看| 18禁免费观看网站| 蜜桃精品噜噜噜成人av| 成人高清在线观看| 99精品女人在线观看免费视频 | 性欧美videos高清hd4k| 国产午夜精品全部视频播放| 天堂成人在线| 精品久久久久久久久久久院品网 | 国产专区一区| 艳母动漫在线免费观看| 欧美日韩一区二区综合 | 激情不卡一区二区三区视频在线| 欧美另类老女人| 男人的天堂在线视频免费观看| 日韩丝袜美女视频| 中文字幕视频网站| 亚洲成人动漫一区| 国产大片aaa| 亚洲香肠在线观看| 日本乱子伦xxxx| 99re热视频精品| 国产人妻人伦精品1国产丝袜| 毛片av中文字幕一区二区| 国产精品国产三级国产专区51| 日产精品久久久久| 丝袜a∨在线一区二区三区不卡| 亚洲欧洲一区二区福利| 欧美军人男男激情gay| 日韩欧美精品一区二区三区经典| 国产日韩欧美中文在线| 欧美在线观看一区二区三区| 国产精品186在线观看在线播放| 在线观看国产精品91| 草草影院在线观看| 色偷偷综合社区| av电影免费在线观看| 欧美激情一区二区久久久| 91老司机福利在线| 青青草成人在线| 91九色综合| 成人做爽爽免费视频| 国产视频网站一区二区三区| 超碰97人人人人人蜜桃| 激情视频极品美女日韩| 久久66热这里只有精品| 欧美高清一级片| 精品免费二区三区三区高中清不卡| 亚洲精品69| 成人av影视在线| 蜜臀av免费一区二区三区| 视频一区三区| 亚洲欧洲中文字幕| 男人添女荫道口图片| 中文字幕日韩一区二区不卡| 免费人成自慰网站| 久久国产日本精品| 国产无色aaa| av欧美精品.com| 亚洲一级黄色录像| 一区二区三区中文字幕精品精品 | 成人免费毛片播放| 另类调教123区| 国产婷婷在线观看| 国产婷婷色一区二区三区四区| 素人fc2av清纯18岁| 中文字幕va一区二区三区| 欧美极品aaaaabbbbb| 色女孩综合影院| 精品国产九九九| 亚洲社区在线观看| 丝袜在线视频| 国产成人啪精品视频免费网| 色香欲www7777综合网| 91精品久久久久久蜜桃| 深夜激情久久| 国产又粗又硬又长又爽| 不卡在线视频中文字幕| 国产精品av久久久久久无| 一区二区三区久久| 久久精品五月天| 亚洲第一页在线| 狠狠躁夜夜躁av无码中文幕| 伊人一区二区三区久久精品| 黄色小说在线播放| 国产日韩欧美视频在线| 日韩母乳在线| 红桃一区二区三区| 日韩1区2区3区| 99精品一区二区三区无码吞精| 成人毛片老司机大片| 美国精品一区二区| 懂色av一区二区三区| а√中文在线资源库| www.亚洲一区| 88xx成人免费观看视频库| 精品福利影视| 欧美日韩亚洲三区| 宇都宫紫苑在线播放| 国产精品久久久久一区二区三区共| 国产精品久久国产精麻豆96堂| 亚洲少妇30p| 最近中文字幕在线观看| 欧美一区二区三区电影| 99青草视频在线播放视| 国产精国产精品| 亚洲最好看的视频| 波多野结衣综合网| 丁香婷婷综合网| 亚洲熟女www一区二区三区| 欧美精品黑人性xxxx| 91sp网站在线观看入口| 国产精品三级网站| 成人3d动漫在线观看| 人妻互换免费中文字幕| 国产麻豆一精品一av一免费 | 亚洲小说欧美另类激情| 国产婷婷精品| 这里只有精品在线观看视频| 亚洲国产精品影院| 丰满肥臀噗嗤啊x99av| 欧美激情精品久久久久久黑人| 日韩欧美看国产| 秋霞毛片久久久久久久久| 蜜桃视频一区| 中文字幕av久久爽一区| 亚洲成人手机在线| 黄色www视频| 91爱爱小视频k| 一区二区三区日本久久久| 37pao成人国产永久免费视频| 激情图区综合网| 老湿机69福利| 在线观看欧美日本| 91在线播放网站| 成人激情黄色网| 一级欧洲+日本+国产| 九九九久久久| 亚洲卡一卡二| www.久久爱.cn| 中文一区在线| 久久久久久久毛片| 欧美日韩午夜影院| 哥也色在线视频| 国产伦精品一区二区三区免费视频| 欧美精品乱码| 天天干天天操天天做| 亚洲免费在线看| 午夜一区在线观看| 国产精品久久久久久亚洲影视| 欧美美女黄色| 男人天堂成人在线| 亚洲天堂免费在线观看视频| 亚洲第一页综合| 欧美最近摘花xxxx摘花| 大片网站久久| 大香煮伊手机一区| 日韩理论片网站| 午夜av免费在线观看| 国产精品一区久久| 黄色成人91| 欧美多人猛交狂配| 欧美视频在线看| 欧美激情二区| 精品国产乱码久久久久久丨区2区| 午夜精品免费| 波多野结衣a v在线| 7777精品伊人久久久大香线蕉最新版| 成人全视频高清免费观看| 51国偷自产一区二区三区| 国产精品久久777777毛茸茸| 欧美xxxx×黑人性爽| 欧美日韩国产中文| 国产精品蜜臀| 中文字幕欧美人与畜| 99国产精品国产精品毛片| 国产尤物在线视频| 欧美成人免费网| 欧美日韩在线网站|