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

系統流量突增十倍,該怎么辦?

網絡 網絡優化
最近看到一道面試題:假如線上系統流量突然增加了10倍,你該怎么辦?感覺挺有意思的。其實我在之前的工作中,也經常遇到流量突增的情況,特別是在中午和晚上的用餐高峰期,流量會突增幾倍。今天這篇文章就跟大家好好聊一下這個問題,希望對你會有所幫助。

前言

最近看到一道面試題:假如線上系統流量突然增加了10倍,你該怎么辦?

感覺挺有意思的。

其實我在之前的工作中,也經常遇到流量突增的情況,特別是在中午和晚上的用餐高峰期,流量會突增幾倍。

今天這篇文章就跟大家好好聊一下這個問題,希望對你會有所幫助。

1.先快速解決問題

1.1 緊急擴容

如果發現系統真的扛不住了,第一時間應該是擴容。

現在云計算這么方便,擴容就是點幾下鼠標的事。

圖片圖片

為什么要先擴容?

因為這是最快見效的方法。

你可能需要5分鐘分析代碼,但擴容只需要1分鐘。

先保住系統,再慢慢優化。

1.2 快速定位問題

當監控告警響起時,千萬別慌!首先要快速定位瓶頸點。

我有個"5分鐘排查法":

# 第1分鐘:看整體負載
top -c  # 按CPU排序,看哪個進程最耗資源

# 第2分鐘:看網絡連接
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

# 第3分鐘:看JVM狀態
jstat -gcutil <pid> 1000  # 看內存回收情況

# 第4分鐘:看接口QPS
tail -f access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -10

# 第5分鐘:看錯誤日志
tail -n 100 error.log | grep -E "(ERROR|Exception)"

2.分層防御

2.1 網關層

它是流量入口的第一道防線。

網關就像小區的門衛,先把不必要的訪客擋在外面。

Spring Cloud Gateway限流配置示例:

@Bean
public RedisRateLimiter redisRateLimiter() {
    // 每秒允許1000個請求,最大允許2000個
    return new RedisRateLimiter(1000, 2000);
}

@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
    return builder.routes()
        .route("order_route", r -> r.path("/api/orders/**")
            .filters(f -> f.requestRateLimiter(c -> c.setRateLimiter(redisRateLimiter())))
            .uri("lb://order-service"))
        .build();
}

這個配置的作用:當訂單接口的請求量超過每秒1000次時,多余的請求會被直接拒絕,保護后臺服務不被沖垮。

2.2 服務層

我們需要保護核心業務。

服務層就像公司的各個部門,需要保護核心部門正常運轉。

熔斷降級示例

@Service
publicclass OrderService {
    
    @Autowired
    private ProductClient productClient;
    
    @CircuitBreaker(name = "productService", fallbackMethod = "getProductFallback")
    public Product getProduct(Long id) {
        // 調用商品服務
        return productClient.getProduct(id);
    }
    
    // 降級方法:當商品服務不可用時執行
    private Product getProductFallback(Long id, Throwable t) {
        log.warn("商品服務不可用,返回緩存數據,商品ID: {}", id);
        // 返回緩存中的默認商品信息
        returnnew Product(id, "默認商品", 0.0);
    }
}

熔斷器的工作原理

圖片

當商品服務的失敗率超過50%時,熔斷器會打開,后續請求直接走降級邏輯,避免雪崩效應。

2.3 緩存層

通過緩存減少數據庫壓力。

緩存就像你的筆記本,先把常用的東西記下來,不用每次都去翻大詞典。

多級緩存架構

圖片圖片

代碼實現

@Service
publicclass ProductService {
    
    // 本地緩存
    private Cache<Long, Product> localCache = Caffeine.newBuilder()
        .maximumSize(10000)
        .expireAfterWrite(5, TimeUnit.MINUTES)
        .build();
    
    public Product getProduct(Long id) {
        // 1. 先查本地緩存
        Product product = localCache.getIfPresent(id);
        if (product != null) {
            return product;
        }
        
        // 2. 查Redis
        product = redisTemplate.opsForValue().get("product:" + id);
        if (product != null) {
            localCache.put(id, product);
            return product;
        }
        
        // 3. 查數據庫
        product = productRepository.findById(id);
        if (product != null) {
            redisTemplate.opsForValue().set("product:" + id, product, 30, TimeUnit.MINUTES);
            localCache.put(id, product);
        }
        
        return product;
    }
}

這樣設計后,90%的請求在本地緩存就返回了,9%的請求走到Redis,只有1%的請求會到數據庫。

2.4 數據庫層

它是最后的堡壘。

數據庫就像銀行的保險庫,訪問要特別小心。

讀寫分離:把讀操作和寫操作分開到不同的數據庫

# application.yml 配置
spring:
datasource:
    write:
      url:jdbc:mysql://write-db:3306/app
      username:user
      password:pass
    read:
      url:jdbc:mysql://read-db:3306/app
      username:user
      password:pass

代碼中使用

@Service
publicclass OrderService {
    
    // 寫操作用寫庫
    @Transactional
    @WriteDataSource
    public void createOrder(Order order) {
        orderRepository.save(order);
    }
    
    // 讀操作用讀庫
    @ReadDataSource
    public Order getOrder(Long id) {
        return orderRepository.findById(id);
    }
}

如果有需求,可以做分庫分表。

// 基于ShardingSphere的分庫分表配置
spring:
shardingsphere:
    datasource:
      names:ds0,ds1
      ds0:...
      ds1:...
    rules:
      sharding:
        tables:
          orders:
            actualDataNodes:ds$->{0..1}.orders_$->{0..15}
            databaseStrategy:
              standard:
                shardingColumn:user_id
                shardingAlgorithmName:database_inline
            tableStrategy:
              standard:
                shardingColumn:order_id
                shardingAlgorithmName:table_inline

可以用批量處理提升吞吐量。

批量寫入數據庫示例:

@Slf4j
@Service
publicclass BatchInsertService {
    
    private List<Order> batchList = new ArrayList<>();
    privatefinalint BATCH_SIZE = 1000;
    
    @Scheduled(fixedDelay = 1000) // 每秒批量寫入一次
    public void batchInsert() {
        if (batchList.isEmpty()) {
            return;
        }
        
        List<Order> currentBatch;
        synchronized (batchList) {
            currentBatch = new ArrayList<>(batchList);
            batchList.clear();
        }
        
        try {
            jdbcTemplate.batchUpdate(
                "INSERT INTO orders (...) VALUES (?, ?, ...)",
                currentBatch,
                100,
                (ps, order) -> {
                    ps.setLong(1, order.getId());
                    ps.setString(2, order.getNo());
                    // ...其他字段
                });
        } catch (Exception e) {
            log.error("批量插入失敗", e);
        }
    }
}

3. 異步化

讓請求排隊處理。

同步處理就像只有一個收銀臺的超市,異步處理就像讓顧客把需求寫在紙上,我們慢慢處理。

消息隊列削峰示例

圖片圖片

代碼實現

@Component
@RocketMQMessageListener(topic = "order_topic", consumerGroup = "order_group")
public class OrderConsumer implements RocketMQListener<OrderMessage> {
    
    @Override
    public void onMessage(OrderMessage message) {
        // 這里可以慢慢處理,不用著急
        orderService.processOrder(message);
    }
}

這樣即使瞬間來了10萬個訂單,也不會把數據庫沖垮,而是慢慢處理。

4.容量評估與彈性伸縮

4.1 性能壓測與容量規劃

使用JMH進行壓力測試代碼如下:

@BenchmarkMode(Mode.Throughput)
@OutputTimeUnit(TimeUnit.SECONDS)
@State(Scope.Thread)
publicclass OrderServiceBenchmark {
    
    private OrderService orderService;
    
    @Setup
    public void setup() {
        // 初始化測試環境
    }
    
    @Benchmark
    public void testCreateOrder() {
        Order order = new Order();
        // 設置訂單參數
        orderService.createOrder(order);
    }
    
    public static void main(String[] args) throws Exception {
        Options opt = new OptionsBuilder()
            .include(OrderServiceBenchmark.class.getSimpleName())
            .forks(1)
            .warmupIterations(5)
            .measurementIterations(10)
            .build();
        new Runner(opt).run();
    }
}

4.2 基于指標的彈性伸縮

我們需要建立一套基于指標的彈性伸縮的機制:圖片

當監控系統發現異常時,在K8S中能夠自動擴容Prod實例,同時自動更新負載均衡。

5.實戰演練

我們需要有全鏈路壓測方案,每隔一段時間做一次實戰演練。

5.1 影子庫表方案

為壓測流量提供隔離的數據庫環境,防止壓測數據污染正式數據。

基于MyBatis插件的影子庫表路由:

@Intercepts({@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})})
public class ShadowDatabaseInterceptor implements Interceptor {
    
    @Override
    public Object intercept(Invocation invocation) throws Throwable {
        MappedStatement ms = (MappedStatement) invocation.getArgs()[0];
        Object parameter = invocation.getArgs()[1];
        
        if (isPressureTestRequest()) {
            // 切換到影子庫表
            String shadowTableName = "shadow_" + getOriginalTableName(ms);
            MappedStatement shadowMs = createShadowMappedStatement(ms, shadowTableName);
            invocation.getArgs()[0] = shadowMs;
        }
        
        return invocation.proceed();
    }
    
    private boolean isPressureTestRequest() {
        // 通過ThreadLocal或請求頭判斷是否為壓測流量
        return PressureTestContext.isPressureTest();
    }
}

5.2 壓測流量染色

流量染色,顧名思義,就是給壓測流量“染上顏色”,打上獨特的標記,以便在整個復雜的分布式系統中能夠清晰地識別和追蹤它。

下面的例子中通過header中的X-Pressure-Test參數,判斷是否需要加上染色。

// 全局壓測上下文
publicclass PressureTestContext {
    privatestaticfinal ThreadLocal<Boolean> PRESSURE_TEST_FLAG = new ThreadLocal<>();
    
    public static void markPressureTest() {
        PRESSURE_TEST_FLAG.set(true);
    }
    
    public static boolean isPressureTest() {
        return Boolean.TRUE.equals(PRESSURE_TEST_FLAG.get());
    }
    
    public static void clear() {
        PRESSURE_TEST_FLAG.remove();
    }
}

// 網關過濾器進行流量染色
@Component
publicclass PressureTestFilter implements GlobalFilter {
    
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        String pressureTestHeader = exchange.getRequest().getHeaders().getFirst("X-Pressure-Test");
        if ("true".equals(pressureTestHeader)) {
            PressureTestContext.markPressureTest();
        }
        return chain.filter(exchange).then(Mono.fromRunnable(PressureTestContext::clear));
    }
}

總結

流量暴增時的應對策略如下:

  1. 預防優于救治:建立完善的監控預警體系,提前發現容量瓶頸。
  2. 立即行動:先擴容保住系統,再分析問題。
  3. 分層防御:從網關到數據庫,每層都要有相應的防護措施。
  4. 彈性設計:系統要具備水平擴展能力,能夠快速應對流量變化。
  5. 異步解耦:通過消息隊列等手段,將同步調用轉為異步處理。
  6. 容錯降級:保證核心業務的可用性,非核心功能可適當降級。
  7. 定期演練:通過全鏈路壓測驗證系統容量和應急預案。

記住這個處理順序:先保命(擴容),再治病(優化),最后養生(架構升級)

責任編輯:武曉燕 來源: 蘇三說技術
相關推薦

2025-09-26 01:00:00

2025-07-31 09:00:00

架構并發量容量

2025-03-13 11:59:00

2022-04-22 10:30:07

框架JavaScript前端

2011-06-30 17:58:30

網站被K

2025-04-27 01:30:01

業務系統QPS

2017-07-17 10:15:07

Windows 10Windowsinternet ex

2022-10-27 07:09:34

DjangoAPIRedis

2018-08-20 19:39:14

區塊鏈職業崗位

2010-11-17 11:06:34

跳槽

2016-11-24 14:44:49

云計算

2010-05-20 16:08:01

亞馬遜故障

2021-01-26 08:02:04

Redis內存數據庫

2016-10-24 17:35:45

企業辦公

2019-03-27 13:45:44

MySQL優化技巧數據庫

2025-05-26 00:02:00

TypeScriptGo 語言前端

2023-09-07 11:29:36

API開發

2025-06-05 04:22:00

SQL性能索引

2009-12-15 21:49:05

2020-09-29 12:15:13

生死鎖MySQL
點贊
收藏

51CTO技術棧公眾號

欧美黄色免费在线观看| 男女视频在线看| 亚洲AV成人无码一二三区在线| 亚洲综合欧美| 亚洲精选在线观看| 尤蜜粉嫩av国产一区二区三区| 美女免费久久| 粉嫩高潮美女一区二区三区| 午夜精品国产精品大乳美女| a毛片毛片av永久免费| 外国成人毛片| 午夜欧美在线一二页| 视频一区二区三| www.av日韩| 日韩电影一区二区三区四区| 两个人的视频www国产精品| 男人网站在线观看| 久久夜夜久久| 欧美日韩激情视频| 好色先生视频污| 精品乱码一区二区三四区视频| 精品一区二区三区欧美| 91超碰中文字幕久久精品| 午夜精品久久久久99蜜桃最新版| 欧美1区2区3区4区| 91精品国产综合久久精品图片| 日本毛片在线免费观看| 免费av在线播放| 91小视频在线免费看| 成人精品一区二区三区电影黑人| 天堂中文字幕在线观看| 自由日本语亚洲人高潮| 亚洲性生活视频在线观看| av免费观看不卡| 韩国一区二区三区视频| 欧洲精品视频在线观看| 免费成人在线视频网站| gogo在线观看| 国产精品视频看| 欧美1o一11sex性hdhd| 成人小说亚洲一区二区三区| 日韩精品久久理论片| 国语对白做受69| www久久久久久久| 免费精品国产| 亚洲乱码国产乱码精品精天堂| 天天躁日日躁狠狠躁av| 精品一区二区三区在线观看视频| 欧美日韩一本到| 久久99999| 成人日韩在线| 日韩欧亚中文在线| 国产肥臀一区二区福利视频| 欧美aa免费在线| 亚洲午夜久久久久久久久电影网| 午夜久久久久久久久久久| 一区二区三区视频在线观看视频| 国产日韩av一区| 日韩av电影免费在线| 久久经典视频| 久久精品一区二区三区av| 九九九久久久| 涩爱av在线播放一区二区| www.欧美色图| 精品在线视频一区二区| 无码精品一区二区三区在线 | 久久精品无码一区二区三区| 美媛馆国产精品一区二区| 三区在线观看| 国产亚洲一区二区三区四区| 亚洲a∨一区二区三区| 日韩黄色影院| 伊人婷婷欧美激情| 婷婷五月综合缴情在线视频| 在线免费看h| 在线影院国内精品| 色乱码一区二区三区在线| 高清一区二区中文字幕| 精品裸体舞一区二区三区| 在线播放第一页| 校园春色另类视频| 在线a欧美视频| 人妻少妇精品一区二区三区| 亚洲无线视频| 国产精品v片在线观看不卡| 亚洲熟妇av乱码在线观看| 国产一区二区三区免费| 国产99视频精品免费视频36| 日本一二三区在线视频| 欧美激情中文字幕| 国产成人永久免费视频| 625成人欧美午夜电影| 欧美欧美欧美欧美首页| 乱码一区二区三区| 国产一区二区三区四区| 色香阁99久久精品久久久| 久草视频免费在线| 久久综合图片| 7777奇米亚洲综合久久| 欧洲天堂在线观看| 亚洲欧洲无码一区二区三区| 亚洲理论电影在线观看| 亚洲第一会所001| 欧美精品色综合| 波多野结衣影院| 欧美韩国日本在线观看| 亚州成人av在线| 91久久久久国产一区二区| a在线欧美一区| 亚洲欧洲另类精品久久综合| 波多野结衣乳巨码无在线观看| 欧美午夜理伦三级在线观看| 亚洲日本久久久| 日本不卡免费一区| 午夜精品99久久免费| 国产精品无码免费播放| 久久久噜噜噜久久中文字幕色伊伊| 日本不卡一区二区三区四区| 欧美xx视频| 欧美成人综合网站| 国产三级精品三级观看| 国产欧美成人| 成人欧美一区二区三区视频| 日韩免费啪啪| 色噜噜久久综合| 在线天堂www在线国语对白| 91精品一区二区三区综合| 国产成一区二区| 日本免费一区视频| 亚洲一区在线观看视频| 99999精品| 第一会所亚洲原创| 日韩美女视频在线观看| 亚洲精品国产精品乱码不卡| 中文字幕日韩精品一区| av视屏在线播放| 亚洲bt欧美bt精品777| 欧美精品久久久久久久久| 国产欧美日韩成人| 日韩一区日韩二区| 57pao国产成永久免费视频| 国产成人ay| 热久久免费视频精品| 特黄视频在线观看| 午夜伦理一区二区| 中国黄色片视频| 精品成人久久| 国产精品国产一区二区| 日本三级在线观看网站| 日韩一区二区三区视频在线| 99鲁鲁精品一区二区三区| 老司机精品视频在线| 亚洲精品乱码视频| 日本黄色成人| 久久偷看各类女兵18女厕嘘嘘| 亚洲一二区视频| 国产精品久久久久久久久果冻传媒| 午夜视频你懂的| 日本大胆欧美| 国产一区在线播放| 黄色在线免费看| 欧美一区二区免费| 欧美人与禽zozzo禽性配| 国产91在线|亚洲| 2019日韩中文字幕mv| 蜜臀av一区| 欧洲日韩成人av| 国产原创av在线| 欧美日韩一卡二卡三卡| 午夜剧场免费在线观看| 成人午夜av电影| 草草久久久无码国产专区| 伊人久久大香线蕉综合网站| 国产精品普通话| 国产欧美黑人| 精品国产乱码久久久久久免费 | 亚洲不卡av一区二区三区| 黄色av网址在线观看| 久久激情视频| 一区二区免费电影| 18国产精品| 欧洲午夜精品久久久| 欧美私人网站| 精品国产一区二区三区久久久蜜月| 日韩欧美一级视频| 国产精品沙发午睡系列990531| 亚洲一区二区三区四区精品| 在线成人黄色| 翔田千里亚洲一二三区| 九色精品蝌蚪| 欧美一级在线播放| 日韩免费啪啪| 亚洲精品视频播放| 一级全黄裸体免费视频| 亚洲福利视频一区二区| 日韩免费成人av| 高清不卡一区二区| 国产裸体免费无遮挡| 欧美二区不卡| 日本精品一区二区| 日韩黄色av| 国产精品99久久久久久久久久久久| 黄av在线播放| 亚洲欧美日韩中文在线制服| 97人妻人人澡人人爽人人精品| 亚洲高清视频中文字幕| 日韩av毛片在线观看| 99精品国产视频| 日本一二三四区视频| 丝袜亚洲另类丝袜在线| 青草视频在线观看视频| 日韩毛片视频| 久久天天狠狠| 视频一区国产| 国产精品亚洲视频在线观看| 国产伦理精品| 欧美成年人视频| 电影在线高清| 日韩av在线免费播放| 国产乱子伦精品无码码专区| 91成人免费在线视频| 圆产精品久久久久久久久久久| 1024国产精品| 性猛交娇小69hd| 99国产精品一区| 国产免费a级片| 国内国产精品久久| 亚洲性生活网站| 国产精品普通话对白| 日本一级黄视频| 欧美顶级大胆免费视频| 日本欧美精品久久久| 色先锋久久影院av| 国产高清自拍一区| 人人爱人人干婷婷丁香亚洲| 国产日韩欧美综合| 国产极品久久久久久久久波多结野| 欧日韩在线观看| 免费h在线看| 国外成人免费在线播放 | 97久久超碰福利国产精品…| 中文字幕中文字幕在线十八区| 日韩中文娱乐网| 永久免费av片在线观看全网站| 国产午夜精品全部视频播放| 你懂的在线视频| 亚洲乱码一区av黑人高潮 | 在线观看日韩视频| 精品电影在线| 一区二区在线免费视频| 国产一二在线观看| 一本一本久久a久久精品综合小说| 欧美孕妇孕交xxⅹ孕妇交| 亚洲精品一区二区三区不| 青青久草在线| 亚洲午夜女主播在线直播| 国产中文字幕在线观看| 国产亚洲在线播放| 瑟瑟视频在线| 免费av一区二区| 欧美理论电影| 国内精品久久久久久久| 黄色在线免费观看网站| 青青草一区二区| 粉嫩一区二区三区| 国产精品网红直播| 国产精久久久| 国产精品久久久久久免费观看| 国产精品任我爽爆在线播放| 精品一区二区三区自拍图片区 | 日本美女一区二区三区视频| 91热这里只有精品| 激情欧美一区二区| 好吊操视频这里只有精品| 成人av资源在线观看| 国产美女精品久久| 中文字幕在线一区二区三区| 国产精品99久久久久久成人| 亚洲一区二区在线播放相泽 | 四虎影视2018在线播放alocalhost| 日韩精品在线观看一区二区| h视频在线免费| 美女精品久久久| av老司机在线观看| 国产精品久久久久久久久久99| 成人噜噜噜噜| 精品久久久久久一区| av中文一区| 大陆极品少妇内射aaaaaa| 国产欧美日韩综合一区在线播放 | 6—12呦国产精品| 91麻豆精品国产91久久久久久久久| 国产成人精品一区二区无码呦| 亚洲精品国产福利| 最新av网站在线观看| 久久99久久99精品免观看粉嫩| 麻豆视频在线看| 国产又爽又黄的激情精品视频 | 久久久久亚洲av无码专区首jn| www欧美成人18+| 国产精品国产三级国产传播| 欧美日韩国产丝袜另类| 一级黄色短视频| 亚洲国产婷婷香蕉久久久久久 | 久久夜色精品国产| 午夜影院在线观看国产主播| 91免费看片在线| 免费久久久久久久久| 男人c女人视频| 蜜桃精品视频在线| 国产视频久久久久久| 中文字幕视频一区| 丁香社区五月天| 亚洲成avwww人| 麻豆tv免费在线观看| 日韩美女免费观看| 超碰在线一区| 99热这里只有精品7| 日本美女一区二区| 欧美无人区码suv| 亚洲精品一卡二卡| 一区二区视频网| 亚洲乱亚洲乱妇无码| 99riav视频在线观看| 亚洲精品欧美日韩专区| 成人激情电影在线| 欧美成人xxxxx| 粉嫩一区二区三区性色av| 91久久久久久久久久久久久久| 日韩欧美在线视频日韩欧美在线视频| www.成人在线观看| 久久夜色撩人精品| 日本精品久久| 亚洲午夜久久久影院伊人| 久久精品1区| 久久人人爽人人爽人人片 | 亚洲第一在线播放| 精品剧情在线观看| 日本无删减在线| 亚洲一区二区三区四区在线播放 | 国产一区二区三区综合| 天堂av网手机版| **爰片久久毛片| 亚洲综合第一| 免费的国产精品| 亚洲女优在线观看| 91精品91久久久中77777| 日本中文字幕电影在线观看| 97久久国产精品| 精品国产影院| 少妇高潮毛片色欲ava片| 成人精品鲁一区一区二区| 麻豆一区二区三区精品视频| 欧美变态tickling挠脚心| 四虎亚洲精品| 国产精品白丝jk白祙| 亚洲精品欧洲| 国产精品福利导航| 欧美日韩一区二区三区在线免费观看| 西西人体44www大胆无码| 日本电影亚洲天堂| 欧美色图在线播放| 久久人人爽av| 亚洲摸摸操操av| 亚洲爱爱综合网| 久久人91精品久久久久久不卡| 国产成人一二片| 精品欧美一区免费观看α√| 91麻豆精品一区二区三区| 五月婷婷激情视频| 原创国产精品91| 国产精品成人**免费视频| 伊人再见免费在线观看高清版| 国产电影一区二区三区| 国产精品 欧美 日韩| 亚洲国产三级网| 日本精品网站| 免费观看国产视频在线| 成人高清视频在线| 久操视频在线免费观看| 日韩中文综合网| 综合久久成人| 精品久久久久av| 国产精品久久国产精麻豆99网站| www.日本在线观看| 欧美综合第一页| 99精品电影| 亚洲精品激情视频| 欧美午夜不卡视频| 欧美极品少妇videossex| 美日韩免费视频| 韩国av一区二区| 天天爽夜夜爽夜夜爽精品| 色黄久久久久久| 老牛精品亚洲成av人片| 激情视频免费网站| 亚洲国产毛片aaaaa无费看 | 国产成人综合自拍| 一级做a爰片久久毛片| 久久久91精品国产|