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

Spring Boot 監控 API 請求耗時,這八種方案你知道幾個?

開發 前端
SkyWalking 自動完成鏈路追蹤與耗時監控,支持分布式系統,無需修改代碼,可視化強,性能影響小。在分布式系統中非常推薦。

環境:SpringBoot3.4.2

1. 簡介

在微服務架構與高并發場景下,API接口的響應速度直接影響用戶體驗與系統穩定性。隨著業務復雜度提升,接口性能問題逐漸成為系統瓶頸,例如數據庫查詢延遲、第三方服務調用超時等場景,均可能導致接口耗時激增。傳統的手動埋點統計方式(如在每個接口方法中記錄開始與結束時間)存在代碼侵入性強、維護成本高的問題,難以滿足大規模接口的監控需求。

本篇文章將介紹 Spring Boot 中記錄 API 請求耗時的 6 種實用方案,涵蓋從基礎到進階的多種實現方式,幫助開發者根據業務場景選擇最適合的監控手段。

2.實戰案例

2.1 手動記錄

我們可以通過Spring內置的StopWatch工具進行記錄方法執行耗時情況:

@GetMapping("/query")
public ResponseEntity<?> query() throws Exception {
  StopWatch stopWatch = new StopWatch();
  stopWatch.start();
  // 業務邏輯
  TimeUnit.MILLISECONDS.sleep(new Random().nextLong(2000)) ;
  stopWatch.stop();
  System.out.printf("方法耗時:%dms%n", stopWatch.getTotalTimeMillis()) ;
  return ResponseEntity.ok("api query...") ;
}

運行結果

方法耗時:1096ms

針對手動記錄這里總結2點缺點:

  • 代碼侵入性強:每次需要記錄請求耗時的時候都需要在具體的業務邏輯中插入相應的計時代碼(如使用System.currentTimeMillis()或StopWatch)。這種方式會增加代碼的復雜度,并且使得業務邏輯與性能監控代碼耦合在一起,降低了代碼的可讀性和維護性。
  • 重復工作:如果多個地方都需要進行類似的耗時統計,則可能需要在每個地方都添加相同的代碼,這導致了代碼的重復。違反了DRY(Don't Repeat Yourself)原則。

2.2 自定義AOP記錄

通過自定義注解結合Spring AOP切面編程,可實現無侵入式的方法執行耗時統計與記錄。

@Aspect
@Component
public class PerformanceAspect {


  private static final Logger logger = LoggerFactory.getLogger("api.timed") ;
  @Around("@annotation(org.springframework.web.bind.annotation.RequestMapping) || "
      + "@annotation(org.springframework.web.bind.annotation.GetMapping) || "
      + "@annotation(org.springframework.web.bind.annotation.PostMapping) || "
      + "@annotation(org.springframework.web.bind.annotation.PutMapping) || "
      + "@annotation(org.springframework.web.bind.annotation.DeleteMapping) || "
      + "@annotation(org.springframework.web.bind.annotation.PatchMapping)")
  public Object recordExecutionTime(ProceedingJoinPoint pjp) throws Throwable {
    StopWatch sw = new StopWatch();
    sw.start();
    Object result = pjp.proceed();
    sw.stop();
    logger.info("方法【{}】耗時: {}ms", pjp.getSignature(), sw.getTotalTimeMillis()) ;
    return result;
  }
}

在該示例,我們并沒有自定義注解,而是直接攔截了定義Controller接口使用的注解。

運行結果

Line:29 - 方法【ResponseEntity ApiController.query()】耗時: 487ms

總結:AOP實現耗時記錄非侵入、統一管理、減少重復代碼,適合全局監控。對非Spring管理的方法無效,增加切面復雜度,可能影響性能。

2.3 攔截器技術

通過攔截器不用修改任何業務代碼就能非常方便的記錄方法執行耗時情況。

public class TimedInterceptor implements HandlerInterceptor {
  @Override
  public boolean preHandle(HttpServletRequest request, 
      HttpServletResponse response, Object handler) {
    request.setAttribute("startTime", System.currentTimeMillis());
    return true;
  }
  @Override
  public void afterCompletion(HttpServletRequest request, 
      HttpServletResponse response, Object handler, Exception ex) {
    long startTime = (long) request.getAttribute("startTime");
    long cost = System.currentTimeMillis() - startTime;
    System.out.printf("請求【%s】耗時: %dms%n", request.getRequestURI(), cost) ;
  }
}

注冊攔截器

@Component
public class InterceptorConfig implements WebMvcConfigurer {
  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new TimedInterceptor())
      .addPathPatterns("/api/**") ;
  }
}

運行結果

請求【/api/query】耗時: 47ms

總結:攔截器可集中管理請求耗時記錄,減少代碼侵入性,適用于Controller層統一監控。僅對Web請求(Controller)生效,無法捕獲非HTTP接口或內部方法調用耗時,粒度較粗。

2.4 使用Filter

Filter 是 Servlet 規范中的過濾器,用于在請求到達目標資源前后進行攔截處理,可用于日志記錄、權限校驗等通用邏輯。

@Component
@Order(Ordered.HIGHEST_PRECEDENCE) // 確保最先執行
public class RequestTimingFilter implements Filter {
  private static final PathPatternParser parser = new PathPatternParser();


  private static final Logger logger = LoggerFactory.getLogger(RequestTimingFilter.class);
  // 從配置文件中讀取排除路徑
  @Value("${timing.filter.exclude-paths}")
  private String[] excludePaths;
  // 路徑匹配器緩存
  private List<PathPattern> excludedPatterns = Collections.emptyList();
  @Override
  public void init(FilterConfig filterConfig) {
    // 初始化時編譯排除路徑的正則表達式
    excludedPatterns = Arrays.stream(excludePaths).map(path -> parser.parse(path)).toList() ;
    logger.info("記錄請求耗時,不記錄的URI: {}", Arrays.toString(excludePaths));
  }
  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException {
    HttpServletRequest httpRequest = (HttpServletRequest) request;
    String requestURI = httpRequest.getRequestURI();
    // 檢查是否在排除路徑中
    if (shouldExclude(requestURI)) {
      chain.doFilter(request, response);
      return;
    }
    long startTime = System.nanoTime();
    try {
      // 執行后續過濾器鏈和實際請求處理
      chain.doFilter(request, response);
    } finally {
      long endTime = System.nanoTime();
      long durationNanos = endTime - startTime;
      long durationMillis = TimeUnit.NANOSECONDS.toMillis(durationNanos);
      // 記錄日志(包含請求方法和狀態碼)
      if (response instanceof HttpServletResponse httpResponse) {
        int status = httpResponse.getStatus();
        logger.info("[{}] {} - {}ms (Status: {})", httpRequest.getMethod(), requestURI, durationMillis, status);
      } else {
        logger.info("[{}] {} - {}ms", httpRequest.getMethod(), requestURI, durationMillis);
      }
    }
  }
  private boolean shouldExclude(String requestURI) {
    return excludedPatterns.stream()
        .anyMatch(pattern -> pattern.matches(PathContainer.parsePath(requestURI))) ;
  }
}

運行結果

RequestTimingFilter Line:77  - [GET] /api/query - 379ms (Status: 200)

總結:Filter 實現耗時記錄非侵入,適用于全局請求監控,配置簡單;僅能記錄整個請求的處理時間,無法精確到具體方法或業務邏輯,粒度較粗。

2.5 通過事件監聽

在Spring MVC底層內部,當一個請求處理完成以后會發布ServletRequestHandledEvent 事件,通過監聽該事件就能獲取請求的詳細信息。

@Component
public class TimedListener {
  @EventListener(ServletRequestHandledEvent.class)
  public void recordTimed(ServletRequestHandledEvent event) {
    System.err.println(event) ;
  }
}

運行結果

ServletRequestHandledEvent: url=[/api/query]; 
  client=[0:0:0:0:0:0:0:1]; method=[GET]; status=[200]; 
  servlet=[dispatcherServlet]; session=[null]; user=[null]; 
  time=[696ms]

詳細的輸出了當前請求的信息。

總結:非侵入式獲取請求處理耗時,適用于全局監控且無需修改業務代碼;僅能獲取整個請求的耗時信息,無法定位具體方法或模塊性能問題,粒度較粗。

2.6 Micrometer + Prometheus

Micrometer 是一個指標度量工具,支持多種監控系統,如 Prometheus。通過 @Timed 注解可輕松記錄方法耗時;Prometheus 是開源監控系統,擅長拉取和聚合指標,常與 Micrometer 集成實現可視化監控。兩者結合適合微服務性能觀測。

@Timed(value = "api.query", description = "查詢業務接口")
@GetMapping("/query")
public ResponseEntity<?> query() throws Exception {
  TimeUnit.MILLISECONDS.sleep(new Random().nextLong(2000)) ;
  return ResponseEntity.ok("api query...") ;
}

在需要監控的接口上添加 @Timed 注解,同時你還需要進行如下的配置:

management:
  observations:
    annotations:
      enabled: true

要結合Prometheus,那么我們還需要引入如下依賴

<dependency>
  <groupId>io.micrometer</groupId>
  <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

配置actuator暴露Prometheus端點

management:
  endpoints:
    web:
      exposure:
        include: '*'
      base-path: /ac

最后,我們還需要在Prometheus中進行配置

- job_name: "testtag"
  metrics_path: "/ac/prometheus"
  static_configs:
    - targets: ["localhost:8080"]

運行結果

圖片圖片

總結:非侵入、集成簡單,支持細粒度方法級監控,與Spring Boot天然兼容,數據可持久化并可視化;需引入監控組件,增加系統復雜度。

2.7 使用Arthas

Arthas 是一款線上監控診斷產品,通過全局視角實時查看應用 load、內存、gc、線程的狀態信息,并能在不修改應用代碼的情況下,對業務問題進行診斷,包括查看方法調用的出入參、異常,監測方法執行耗時,類加載信息等,大大提升線上問題排查效率。

首先,在如下地址下載最新的Arthas

https://github.com/alibaba/arthas/releases

接下來,通過如下命令啟動Arthas

java -jar arthas-boot.jar

執行該命令后,將出現如下選擇

圖片圖片

通過前面的數字選擇哪個進程。

連接到具體的進程后,我們可以通過如下的命令來跟蹤記錄方法執行耗時情況

trace com.pack.timed.controller.ApiController query

運行結果

圖片

2.8 使用SkyWalking

SkyWalking 是一個開源的 APM(應用性能監控)系統,支持分布式鏈路追蹤、服務網格觀測、度量聚合與可視化,適用于微服務、云原生和 Service Mesh 架構,幫助開發者實現全棧性能監控與故障診斷。

我們無需在代碼中寫任何代碼或是引入依賴,因為SkyWalking將使用agent技術進行跟蹤系統。

首先,我們需要在如下地址下載SkyWalking已經java對應的agent。

https://skywalking.apache.org/downloads/

下載下面兩個包

圖片圖片

圖片圖片

下載后,我們可以直接啟動APM,運行bin/startup.bat,

圖片圖片

Web UI 運行在8080端口

最后,我們在運行程序時,需要加入如下JVM參數。

-javaagent:D:\all\opensource\skywalking\skywalking-agent\skywalking-agent.jar 
-Dskywalking.agent.service_name=pack-api

訪問http://localhost:8080

圖片圖片

總結:SkyWalking 自動完成鏈路追蹤與耗時監控,支持分布式系統,無需修改代碼,可視化強,性能影響小。在分布式系統中非常推薦。

責任編輯:武曉燕 來源: Springboot全家桶實戰案例
相關推薦

2024-08-01 09:58:33

API性能機制

2025-06-06 08:28:56

2021-08-07 15:29:48

區塊鏈比特幣技術

2023-08-01 11:14:07

開源Api軟件

2020-09-11 06:39:29

ThreadLocal線程

2024-05-30 08:51:28

Spring數據分布式

2024-08-30 11:11:01

2025-09-26 01:01:00

2025-07-15 13:41:28

2021-01-13 10:56:37

MybatisAPIMybatis 架構

2019-08-21 08:44:52

RPC框架Java

2025-03-26 00:35:25

2021-03-04 15:48:05

微服務語言開源

2019-09-18 16:14:16

編碼方法重構

2025-01-26 10:49:52

2022-12-08 08:29:58

特征云計算操作系統

2025-02-26 10:00:00

開發APIJava

2014-12-17 09:27:41

開源PaaS

2020-04-20 15:40:03

if-elseJava優化

2020-03-11 08:00:12

if-else優化運算符
點贊
收藏

51CTO技術棧公眾號

牛牛精品视频在线| 中文字幕一区二区人妻| 欧美韩一区二区| 亚洲成av人影院| 欧洲精品亚洲精品| 国产精品玖玖玖| 韩日在线一区| 一级做a爰片久久毛片美女图片| 日韩hmxxxx| 国产视频一区二区三| 国模大胆一区二区三区| 亚洲欧美激情视频| 先锋资源在线视频| 欧美男体视频| 亚洲激情五月婷婷| 日韩精品一区二区三区丰满| wwwxxxx国产| 日韩 欧美一区二区三区| 久久不射电影网| 亚洲黄色小说视频| 高潮按摩久久久久久av免费| 欧美日韩国产在线播放网站| 亚洲熟妇无码一区二区三区导航| 精品久久久无码中文字幕| 亚洲欧美日韩专区| 欧美成人免费大片| 手机看片福利视频| 久久精品国产亚洲5555| 91精品国产高清一区二区三区蜜臀| 亚洲精品无人区| 日韩在线观看视频一区二区三区| 亚洲人体偷拍| 欧美久久精品一级黑人c片| 亚洲午夜福利在线观看| 欧美视频二区欧美影视| 欧美日韩一区不卡| 久久精品网站视频| 综合日韩av| 午夜精品久久久久久久久| 亚洲乱码日产精品bd在线观看| 亚洲国产www| 精品一区免费av| 国产精品黄视频| 精品美女久久久久| 18成人免费观看视频| 九色精品美女在线| 国产一二三区精品| 婷婷综合在线| 日韩在线视频观看| 日韩一区二区三区四区视频| 欧美亚洲在线日韩| 这里只有视频精品| 人妻无码一区二区三区免费| 黑人操亚洲人| 中文字幕欧美日韩| 特级西西人体高清大胆| 久久国产影院| 久久精品视频va| 日韩欧美激情一区| 亚洲这里只有精品| 久久青草视频| 欧美日韩国产不卡| 日本一二三四区视频| 欧美国产视频| 欧美一区二区三区喷汁尤物| 五月天婷婷在线观看视频| av一级久久| 日韩视频国产视频| 无码人妻久久一区二区三区蜜桃| 色帝国亚洲欧美在线| 一区二区高清在线| 国内少妇毛片视频| 91九色国产在线播放| 精品久久久久久久中文字幕 | 国产日产欧美一区二区视频| 久久天天狠狠| 毛片免费在线| 国产精品久久久久久妇女6080 | 亚洲va韩国va欧美va精品| 特级西西人体www高清大胆| 久久大胆人体| 日韩欧美在线视频免费观看| 一区二区三区国产免费| www.欧美视频| 日韩高清av在线| avhd101老司机| 欧美激情成人在线| 欧美最顶级丰满的aⅴ艳星| 亚洲精品久久久久久久蜜桃| 国产在线精品一区二区| 精品国产免费一区二区三区| 天堂中文在线资源| 国产精品国产三级国产普通话99| 久久综合色一本| 婷婷成人激情| 亚洲丶国产丶欧美一区二区三区| 成年在线观看视频| 欧美电影免费观看网站| 91精品国产综合久久小美女| 国产a级黄色片| 四虎国产精品免费观看| 91精品啪在线观看国产18| 偷拍中文亚洲欧美动漫| 亚洲男人的天堂在线观看| 日韩一级性生活片| 韩日一区二区| 精品国产一区久久| 国产在线综合视频| 亚洲精品视频啊美女在线直播| 中文字幕亚洲无线码在线一区| 国产人成视频在线观看| 精品一区电影| 久久久免费观看| 夜夜嗨aⅴ一区二区三区| 福利电影一区二区| 午夜精品一区二区在线观看| 超碰99在线| 欧美一二三区在线| 亚洲高潮女人毛茸茸| 伊人影院久久| 成人日韩av在线| 国模吧精品人体gogo| 亚洲成av人片在www色猫咪| 久久撸在线视频| 亚瑟一区二区三区四区| 欧美片一区二区三区| 在线观看亚洲国产| 久久久国产午夜精品| 日韩在线观看a| 国产精品1区| 少妇av一区二区三区| 一级黄色大片视频| 99久久精品99国产精品| 91黄色在线看| 亚洲国产中文在线二区三区免| 精品福利在线导航| 亚洲伦理一区二区三区| 蜜臀久久久久久久| 亚洲成人自拍| 欧美123区| 亚洲人av在线影院| 天堂а√在线中文在线新版| 99久久精品99国产精品| 国产 日韩 亚洲 欧美| 午夜久久av| 欧美日韩第一页| a天堂视频在线| 亚洲色大成网站www久久九九| 丰满的少妇愉情hd高清果冻传媒| 国产精品电影| 精品国产不卡一区二区三区| 国产精品高潮呻吟久久av无限| 中国特级黄色大片| 欧美精品色网| 91精品天堂| 午夜激情在线| 精品国产在天天线2019| 久久久久久久久久综合| 丰满白嫩尤物一区二区| www.18av.com| 成功精品影院| 欧美影院在线播放| 国产精品ⅴa有声小说| 在线免费观看视频一区| 在线看片中文字幕| 精一区二区三区| 三级在线免费观看| 91精品导航| 69久久夜色精品国产69乱青草| 国产永久免费视频| 亚洲欧美日韩国产手机在线 | 噜噜噜躁狠狠躁狠狠精品视频| 国产精品美女www| 91xxx在线观看| 欧美一区二区三区在线视频| 超碰手机在线观看| 成人丝袜高跟foot| 国产男女无遮挡| 日韩在线观看一区| 99在线观看视频| 亚洲永久av| 少妇久久久久久| 精品国精品国产自在久不卡| 精品日韩美女的视频高清| 精品人妻无码一区二区三区| 美女免费视频一区二区| 欧美一级爱爱视频| 偷窥自拍亚洲色图精选| 国产精品久久久久秋霞鲁丝| av电影高清在线观看| 亚洲精品乱码久久久久久按摩观| 免费在线观看亚洲| 久久久欧美精品sm网站| 午夜激情影院在线观看| av成人天堂| 亚洲综合五月天| 岛国精品一区| 国产精品久久婷婷六月丁香| 欧美v亚洲v| 中文字幕亚洲综合| 欧美自拍偷拍一区二区| 欧美日韩在线播放三区| 中文字幕一区二区三区精品| 污污影院在线观看| 国产精品久久久久影视| 国产不卡一二三| 久久激情五月婷婷| 青青草视频在线免费播放| 欧美wwwww| 欧美色欧美亚洲另类七区| 天堂精品久久久久| 国产日韩欧美自拍| 日韩大片欧美大片| 国模精品视频一区二区三区| 含羞草www国产在线视频| 一区二区三区国产视频| 免费国产羞羞网站视频| 在线播放/欧美激情| 人妻 日韩精品 中文字幕| 亚洲一区二区四区蜜桃| 中国美女黄色一级片| 久久久综合九色合综国产精品| www.av片| 欧美 日韩 国产精品免费观看| 亚洲最大的网站| 欧美成人毛片| 国产精品2018| 最新欧美色图| 欧美一区二三区| bl在线肉h视频大尺度| 欧美另类在线播放| 国产精品久久麻豆| 最近2019年好看中文字幕视频 | 黄色录像一级片| 久久久777精品电影网影网| 日本不卡视频一区| 国产激情一区二区三区四区| jizz大全欧美jizzcom| 老牛国产精品一区的观看方式| 影音欧美亚洲| 欧美激情偷拍自拍| 一区二区三区四区欧美| 日韩久久精品| 亚洲第一导航| 国产亚洲欧美日韩在线观看一区二区| 国产男人精品视频| а√天堂资源国产精品| 国产精品观看在线亚洲人成网| 国产视频在线播放| 另类图片亚洲另类| gogo在线高清视频| 欧美激情在线狂野欧美精品| 综合久久2019| 久久男人资源视频| 老牛影视精品| 国产成+人+综合+亚洲欧美丁香花| 日本高清视频在线播放| 中文字幕在线亚洲| 看黄网站在线| 色综合久久久久久中文网| 成人情视频高清免费观看电影| av网站大全在线| 精品国产一区二区三区久久久| 婷婷五月综合激情| 精品中文字幕久久久久久| 日本精品专区| 中文日韩在线视频| 国产在线更新| 久久久欧美精品| sis001欧美| 国产精品自拍小视频| 久久久久亚洲精品中文字幕| av成人综合网| 先锋影音国产精品| 亚洲一区3d动漫同人无遮挡 | 99精品国产一区二区三区不卡| 中文av一区二区三区| 国内成人精品2018免费看| 91精产国品一二三| 久久综合精品国产一区二区三区| 黄色一级片免费播放| 国产91丝袜在线播放九色| 中文字幕在线观看网址| 久久综合九色欧美综合狠狠| 精品人体无码一区二区三区| 一区二区在线观看不卡| 日韩精品一区二区三| 欧美亚洲动漫制服丝袜| 亚洲第一黄色片| 亚洲精品视频免费在线观看| 里番在线观看网站| 久久久综合av| www.一区| 国偷自产av一区二区三区小尤奈| 亚洲综合网站| 日本精品一区| 亚洲第一黄色| 日韩成人精品视频在线观看| av激情综合网| 欧美一区免费观看| 色综合久久久久久久久| 99国产在线播放| 亚洲图片欧美日产| 日本资源在线| 国产日产欧美精品| 西野翔中文久久精品国产| 精品人妻人人做人人爽| 蜜桃视频第一区免费观看| 人体私拍套图hdxxxx| 中文字幕亚洲不卡| www.久久久久久久| 精品国产青草久久久久福利| 在线激情网站| 欧美一区二三区| 成人资源在线播放| 亚洲制服中文| 久久在线91| 中出视频在线观看| 一区二区三区在线视频免费| 日本道在线视频| 欧美成人精品一区二区男人小说| 欧美日韩成人在线观看| 成人精品高清在线视频| 欧美不卡三区| 日韩一级在线| 丰满熟女人妻一区二区三区| 一区二区中文视频| 中文字幕码精品视频网站| 亚洲乱码一区av黑人高潮| а√在线中文网新版地址在线| 欧美一级片一区| 高清精品视频| 国产成人一二三区| 国产精品一区二区久激情瑜伽| 亚洲麻豆一区二区三区| 成人欧美一区二区三区在线播放| 国产精品国产精品88| 欧美网站一区二区| 激情小视频在线观看| 欧洲一区二区视频| 日韩三区视频| 欧美成人xxxxx| 91网上在线视频| 中文字幕亚洲精品一区| 日韩电视剧在线观看免费网站| 国产51人人成人人人人爽色哟哟| xxx欧美精品| 偷拍自拍亚洲| 色乱码一区二区三区熟女| 另类调教123区| 免费黄色激情视频| 69久久99精品久久久久婷婷| 麻豆视频在线播放| 国产日产久久高清欧美一区| 日韩精品一区二区三区免费观看| 福利在线一区二区| 国产mv日韩mv欧美| 久久国产在线观看| 亚洲电影天堂av | 久精品免费视频| 亚洲国产中文在线| 日本国产在线播放| 国产清纯白嫩初高生在线观看91| 久久久久香蕉视频| 精品精品欲导航| 美女高潮视频在线看| 欧美日韩精品免费观看| 青青草91视频| 国产又黄又爽又无遮挡| 亚洲第一黄色网| 欧美片第一页| 正在播放精油久久| 成人精品gif动图一区| aaaaaa毛片| 日韩日本欧美亚洲| 国产精品xxx在线观看| 日韩视频第二页| 中文字幕在线一区免费| 精品国产av一区二区| 8090成年在线看片午夜| 日本成人小视频| 巨乳女教师的诱惑| 日韩欧美极品在线观看| 夜级特黄日本大片_在线| 成人免费视频观看视频| 噜噜爱69成人精品| 极品颜值美女露脸啪啪| 国产丝袜一区视频在线观看 | 精品久久久一区二区| 特级西西www444人体聚色| 在线91免费看| 成年人视频免费在线播放| 日韩影院一区| 成人黄色大片在线观看| 在线观看亚洲黄色| 欧美国产亚洲视频| 成人羞羞在线观看网站| 精品人妻一区二区免费| 精品视频在线免费看| 97人澡人人添人人爽欧美|