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

使用 Sentinel 實現接口限流

開發
本次主要是講 Sentinel 的使用。在 sentinel-dashboard 配置流控規則,以及使用 Sentinel 整合 RestTemplate、OpenFeign 進行流控使用(建議網頁版閱讀)。

[[399418]]

本文轉載自微信公眾號「運維開發故事」,作者老鄭。轉載本文請聯系運維開發故事公眾號。

在前面一篇文章我已經對 Sentinel 做了一個簡單的介紹,相信大家對 Sentinel 有一個簡單的了解,本次主要是講 Sentinel 的使用。在 sentinel-dashboard 配置流控規則,以及使用 Sentinel 整合 RestTemplate、OpenFeign 進行流控使用(建議網頁版閱讀)。

安裝 sentinel dashboard

我使用的 sentinel 版本是: sentinel-dashboard-1.8.0

啟動控制臺命令:

  1. java -jar sentinel-dashboard-1.8.0.jar 

默認啟動的是 8080 端口, 登錄賬號和密碼默認都是: sentinel。 如果需要修改啟動端口可以在啟動命令前面加 -Dserver.port=9999 進行修改。

使用介紹

通常我們在項目中對于 Sentinel 最常用的場景,就是默認的流控對接口的訪問添加流控規則。Sentinel 也提供了對于 RestTemplate 、OpenFegin 的支持。

簡單案例

1. 導入依賴

如果我們需要使用 Sentinel ,首先我們需要在業務服務中,導入 Sentinel 客戶端的依賴。下面是 Maven 的 pom 依賴。 我們可以直接使用 spring-coud-starter-alibaba-sentinel 進行快速整合。

  1. <dependency> 
  2.   <groupId>com.alibaba.cloud</groupId> 
  3.   <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> 
  4. </dependency> 

 

對于 spring-cloud-alibaba 相關的版本依賴信息如下:

  1. <properties> 
  2.   <spring-boot.version>2.3.10.RELEASE</spring-boot.version> 
  3.   <spring-cloud.version>Hoxton.SR8</spring-cloud.version> 
  4.   <spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version> 
  5. </properties> 
  6. <dependencyManagement> 
  7.   <dependencies> 
  8.     <dependency> 
  9.       <groupId>org.springframework.boot</groupId> 
  10.       <artifactId>spring-boot-dependencies</artifactId> 
  11.       <version>${spring-boot.version}</version> 
  12.       <type>pom</type> 
  13.       <scope>import</scope> 
  14.     </dependency> 
  15.     <dependency> 
  16.       <groupId>org.springframework.cloud</groupId> 
  17.       <artifactId>spring-cloud-dependencies</artifactId> 
  18.       <version>${spring-cloud.version}</version> 
  19.       <type>pom</type> 
  20.       <scope>import</scope> 
  21.     </dependency> 
  22.      
  23.     <dependency> 
  24.       <groupId>com.alibaba.cloud</groupId> 
  25.       <artifactId>spring-cloud-alibaba-dependencies</artifactId> 
  26.       <version>${spring-cloud-alibaba.version}</version> 
  27.       <type>pom</type> 
  28.       <scope>import</scope> 
  29.     </dependency> 
  30.   </dependencies> 
  31. </dependencyManagement> 

 

 

 

2. YML 配置

我們在業務服務中導入了依賴過后,我們需要修改 application.yml 文件讓服務啟動過后自動注冊到 sentinel-dashboard 服務上。

  1. spring: 
  2.   cloud: 
  3.     sentinel: 
  4.       transport: 
  5.         port: 8719 
  6.         dashboard: localhost:8080 

3. 測試接口定義

首先我們需要定義對外開放的接口。

  1. @RestController 
  2. public class HelloController { 
  3.      
  4.     @GetMapping("/hello"
  5.     public String hello () { 
  6.         return "OK"
  7.     } 

4. 通過控制臺配置流控規則

注意:如果已經啟動 snetinel-dashboard 后并且啟動業務服務,在 sentinel-dashboard 后臺還是沒有服務的話,我們可以先訪問一下業務服務的接口,然后在刷新snetinel-dashboard 觀察是否正常。如果還是不正常請考慮 sentinel 的 client 版本和 dashboard 是否匹配。

首先選擇自己對應服務展開,然后選擇【簇點鏈路】 菜單。選擇需要流控的接口 /hello 然后選擇 【流控】按鈕進行流控配置

我們可以配置, 我們選擇【閥值類型】選擇【QPS】,然后設置【單機閥值】 填入 1 。表示該接口每秒鐘只能接受一個 QPS ,如果超過閾值過后就會觸發 【流控】默認 Sentinel 返回 Blocked by Sentinel (flow limiting)

5. 流控規則觸發

如果我們需要觸發流控規則我們頻繁訪問 /hello 接口即可。

 

  1. ~ curl http://127.0.0.1:8066/hello 
  2. OK%                                                                                                                                                   ~ curl http://127.0.0.1:8066/hello 
  3. ~ curl http://127.0.0.1:8066/hello 
  4. Blocked by Sentinel (flow limiting)% 

通過上面的結果我們可以看到當單位時間內超過閾值過后, 就會觸發 flow limit

整合 RestTemplate

1. YML 配置

Sentinel 整合 Resttemplate 除了需要導入 spring-cloud-starter-alibaba-sentinel 開需要開啟 Sentinel 對 Resttemplate 的支持。

  1. resttemplate: 
  2.   sentinel: 
  3.     enabled: true 

2. 創建 RestTemplate

如果 RestTemplate 在使用的時候需要使用到 Sentinel 的流控規則,首先需要在創建 RestTemplate 的時候添加 @SentinelRestTemplate 注解。注意: SentinelExceptionHandler 中的方法都是 static 方法

  1. @Configuration 
  2. public class RestTemplateConfig { 
  3.     @Bean 
  4.     @ConditionalOnMissingBean(RestTemplate.class) 
  5.     @LoadBalanced 
  6.     @SentinelRestTemplate( 
  7.             blockHandler = "handlerException", blockHandlerClass = SentinelExceptionHandler.class, 
  8.             fallback = "handleFallback", fallbackClass = SentinelExceptionHandler.class) 
  9.     public RestTemplate restTemplate() { 
  10.         return new RestTemplate(); 
  11.     } 
  12. // 異常處理類 
  13. public class SentinelExceptionHandler { 
  14.      
  15.     //限流熔斷業務邏輯 
  16.     public static SentinelClientHttpResponse handlerException(HttpRequest request, byte[] body, ClientHttpRequestExecution execution, BlockException ex) { 
  17.         String message = JSON.toJSONString(CommonResult.error(-100,"系統錯誤 (限流熔斷業務邏輯)")); 
  18.         return new SentinelClientHttpResponse(message); 
  19.     } 
  20.     //異常降級業務邏輯 
  21.     public static SentinelClientHttpResponse handleFallback(HttpRequest request, byte[] body, ClientHttpRequestExecution execution, BlockException ex) { 
  22.         String message = JSON.toJSONString(CommonResult.error(-100,"系統錯誤 (異常降級業務邏輯)")); 
  23.         return new SentinelClientHttpResponse(message); 
  24.     } 

3. 接口定義

下面就是我們使用的代碼,可能寫得稍微有點復雜,我來解釋一下。首先我是通過 RestTemplate 訪問 stock-service 服務的 /getStockDetail 接口然后將接口的返回數據解析,通過CommonResult 實例對象進行接收, 如果失敗就返回錯誤信息。

  1. @Autowired 
  2. private RestTemplate restTemplate; 
  3. @GetMapping("/hello2"
  4. public CommonResult<OrderModel> hello2() { 
  5.   ParameterizedTypeReference<CommonResult<StockModel>> typeRef = 
  6.     new ParameterizedTypeReference<CommonResult<StockModel>>() { 
  7.   }; 
  8.   ResponseEntity<CommonResult<StockModel>> 
  9.     forEntity = restTemplate.exchange("http://stock-service/getStockDetail", HttpMethod.GET, 
  10.                                       HttpEntity.EMPTY, typeRef); 
  11.   OrderModel orderModel = new OrderModel(); 
  12.   orderModel.setId(100); 
  13.   orderModel.setCode("100-100"); 
  14.   if (Objects.equals(forEntity.getStatusCode(), HttpStatus.OK) && Objects.nonNull(forEntity.getBody())) { 
  15.     CommonResult<StockModel> result = forEntity.getBody(); 
  16.     if (result.getCode() != 1) { 
  17.       return CommonResult.error(null, result.getCode(), result.getMessage()); 
  18.     } 
  19.     orderModel.setStockModel(result.getData()); 
  20.   } 
  21.   return CommonResult.success(orderModel); 

4. 流控觸發

如果我們頻繁的訪問我們的接口 /hello2 就會出現限流的邏輯

~ curl http://127.0.0.1:8066/hello2

{"code":1,"message":"this is a success message","data":{"id":100,"code":"100-100","stockModel":{"id":1,"code":"STOCK==>1000"}}}

~ curl http://127.0.0.1:8066/hello2

{"code":-100,"message":"系統錯誤 (限流熔斷業務邏輯)","data":null}

整合 OpenFegin

1. 導入 openfeign 依賴

Sentinel 整合 Openfeign 需要導入 spring-cloud-starter-openfeign

  1. <dependency> 
  2.   <groupId>org.springframework.cloud</groupId> 
  3.   <artifactId>spring-cloud-starter-openfeign</artifactId> 
  4. </dependency> 

 

2. YML 配置

Sentinel 整合 Openfeign 需要開啟對 feign 的支持,配置如下:

  1. feign: 
  2.   sentinel: 
  3.     enabled: true 

注意:啟動類上要增加 @EnableFeignClients 來配置 Openfeign 的啟用

3. 調用代碼

Feign 接口調服務 stock-service 的 /getStockDetail 接口,如果觸發流控規則就會執行 FallbackFactory 中返回 StockFeign 的本地存根方法。

  1. @FeignClient(name = "stock-service", fallbackFactory = StockFeignFallbackFactory.class) 
  2. public interface StockFeign { 
  3.     @GetMapping("/getStockDetail"
  4.     CommonResult<StockModel> getStockDetail(); 

StockFeignFallbackFactory 類是服務降級的處理。

  1. @Component 
  2. public class StockFeignFallbackFactory implements FallbackFactory<StockFeign> { 
  3.     private Logger log = LoggerFactory.getLogger(StockFeignFallbackFactory.class); 
  4.     @Override 
  5.     public StockFeign create(Throwable throwable) { 
  6.         return new StockFeign() { 
  7.             @Override 
  8.             public CommonResult<StockModel> getStockDetail() { 
  9.                 log.error("調用查詢庫存詳情降級", throwable); 
  10.                 return CommonResult.error(null, -100, "調用查詢庫存詳情降級"); 
  11.             } 
  12.         }; 
  13.     } 

Controller 調用代碼

  1. @Autowired 
  2. private StockFeign stockFeign; 
  3. @GetMapping("/hello1"
  4. public CommonResult<OrderModel> hello() { 
  5.   CommonResult<StockModel> result = stockFeign.getStockDetail(); 
  6.   if (result.getCode() != 1) { 
  7.     return CommonResult.error(null, result.getCode(), result.getMessage()); 
  8.   } 
  9.   StockModel stockDetail = result.getData(); 
  10.   OrderModel orderModel = new OrderModel(); 
  11.   orderModel.setStockModel(stockDetail); 
  12.   return CommonResult.success(orderModel); 

4. 業務執行

如果我們多次訪問,Sentinel 就會觸發降級策略。然后執行 StockFeignFallbackFactory 的本地存根方法返回

源碼地址

gitee: https://gitee.com/zhengsh/excavator

參考

https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cloud_alibaba_sentinel

https://segmentfault.com/a/1190000019070557

 

責任編輯:武曉燕 來源: 運維開發故事
相關推薦

2024-11-05 15:02:41

2022-05-09 07:35:48

動態集群限流

2021-05-21 08:30:26

Sentinel GateWay 微服務

2022-05-29 21:38:11

限流熔斷流量

2024-02-04 10:08:34

2022-05-03 19:38:15

限流微服務Sentinel

2025-04-08 09:20:00

Sentinel限流微服務

2024-12-25 15:44:15

2023-09-18 14:39:02

2024-09-06 13:53:28

2021-03-30 10:46:42

SpringBoot計數器漏桶算法

2021-03-16 08:31:59

微服務Sentinel雪崩效應

2020-08-03 08:04:04

限流算法Sentinel

2024-06-14 09:30:58

2021-03-22 08:06:59

SpringBootSentinel項目

2019-07-09 12:30:50

開源技術 軟件

2023-04-26 09:16:17

2021-11-04 10:11:02

Sentinel網關限流

2024-09-09 11:35:35

2024-10-16 20:31:25

點贊
收藏

51CTO技術棧公眾號

一区二区免费在线观看| 4438成人网| 国产欧美精品在线播放| 午夜精品久久久久99蜜桃最新版| 成人影院在线视频| 国产日产欧美精品一区二区三区| 91香蕉嫩草影院入口| a级大片在线观看| 久久福利在线| 性做久久久久久免费观看欧美| 欧美成熟毛茸茸复古| 亚洲天堂999| 一区二区三区国产盗摄| 精品国产欧美一区二区三区成人 | 一级黄色在线视频| 亚洲有吗中文字幕| 亚洲欧美日韩成人| 欧美精品一区二区三区三州| 国产手机视频在线| 午夜在线视频一区二区区别| 久久国产精品电影| 精品人伦一区二区三电影| 日韩有吗在线观看| 一区二区三区不卡在线观看| 欧美一区二区三区电影在线观看| 国产女人18毛片水18精| 久久天天综合| 欧美精品在线免费观看| 久久视频一区二区三区| 成人全视频免费观看在线看| 亚洲第一精品在线| 91手机视频在线| 国产精品秘入口| 91丨porny丨蝌蚪视频| 91久久国产综合久久蜜月精品 | 日韩av不卡一区二区| 国内精品久久久久久| 91高清免费看| 欧美激情777| 国产一区二区成人| 自拍偷拍亚洲天堂| 欧美一区二区三区红桃小说| 欧美videos大乳护士334| 日本人69视频| a成人v在线| 欧美视频在线观看一区| 日本女优爱爱视频| 91精品韩国| 91传媒视频在线播放| 视频一区三区| 欧美色图另类| 久久国产福利国产秒拍| 久久久黄色av| 一本色道久久88| 区一区二视频| 最新的欧美黄色| 国偷自产av一区二区三区麻豆| 欧美a视频在线| 欧美性猛交一区二区三区精品| 黄色a级片免费| 日本免费一区二区三区四区| 欧美性色xo影院| 日本丰满大乳奶| 成码无人av片在线观看网站| 亚洲男同1069视频| 日本大胆人体视频| 精品精品导航| 精品久久久久国产| 日韩中文字幕组| 91tv亚洲精品香蕉国产一区| 欧美丝袜第三区| 中文字幕第66页| silk一区二区三区精品视频| 亚洲精品国产电影| 免费看黄色的视频| 国产精品国产一区| 欧美人与性动交| 国产成人无码精品亚洲| 肉色丝袜一区二区| 韩国欧美亚洲国产| 久久久久久在线观看| 久久精品72免费观看| 亚洲专区国产精品| 天堂影院在线| 国产精品久久久久aaaa| 黄色特一级视频| 亚洲天堂手机| 7777精品伊人久久久大香线蕉超级流畅| 久久久久久综合网| 久久中文字幕导航| 在线观看国产精品淫| 日本天堂中文字幕| 美女诱惑一区| 97超碰资源| 精品成人一区二区三区免费视频| 成人激情小说乱人伦| 蜜桃欧美视频| av小次郎在线| 在线一区二区观看| 精品国产免费av| 国内欧美日韩| 亚洲精品在线免费播放| 免费观看a级片| 女人丝袜激情亚洲| 精品激情国产视频| 精品不卡一区二区| 激情综合色播五月| 久久久久一区二区| h视频在线免费观看| 欧美性jizz18性欧美| 在线观看日本www| 宅男在线一区| 欧美精品成人在线| 91精品国产乱码久久久| 久久影院午夜论| 欧美狂野激情性xxxx在线观| 国产精品66| 亚洲国产精品推荐| 日本青青草视频| 免费在线观看不卡| 免费看成人av| 多野结衣av一区| 欧美一区二区在线视频| eeuss中文字幕| 国产精品最新自拍| 国产日韩一区二区| 在线xxxx| 欧美一区二区三区影视| 日本免费www| 美女视频一区免费观看| 精品午夜一区二区| 国内在线免费视频| 日韩视频一区二区在线观看| 亚洲欧美综合7777色婷婷| 性一交一乱一区二区洋洋av| 成人在线视频电影| 少女频道在线观看免费播放电视剧| 亚洲乱码国产乱码精品精可以看| 国产a级片免费观看| 欧美自拍一区| 69国产精品成人在线播放| 亚洲av永久无码国产精品久久| 国产精品久久久久久久久图文区| 国内自拍视频一区| 精品一区二区三区中文字幕老牛| 啪一啪鲁一鲁2019在线视频| 手机在线观看毛片| 婷婷六月综合网| 国产黄色三级网站| 羞羞答答国产精品www一本 | 黄色一级a毛片| 99免费精品视频| 色视频一区二区三区| 外国成人直播| 亚洲天堂一区二区三区| 毛片在线免费播放| 欧美高清在线视频| 亚洲综合欧美激情| 久久久久蜜桃| 91九色在线免费视频| heyzo中文字幕在线| 亚洲国产精品久久久久秋霞不卡| 免费观看成人毛片| 久久久精品国产免大香伊| 国产裸体免费无遮挡| 日韩一区欧美| 91九色视频在线观看| 99色在线观看| 中文日韩在线观看| 国产日韩欧美视频在线观看| 一区二区三区在线视频免费观看| 在线播放第一页| 先锋a资源在线看亚洲| 亚洲日本无吗高清不卡| 日韩欧美中文字幕在线视频| 国内精品小视频| 你懂的在线看| 欧美精品在欧美一区二区少妇| 18岁成人毛片| 91蝌蚪porny| 色婷婷.com| 欧美性久久久| 日韩视频专区| 亚洲精品18| 欧洲亚洲在线视频| 18av在线视频| 亚洲视频欧洲视频| 国产v片在线观看| 色综合天天狠狠| 日韩av手机在线免费观看| 成人av在线播放网址| 国产九九在线视频| 一区在线免费观看| 日韩在线导航| 爱高潮www亚洲精品| 国产精品999999| 欧美色图天堂| 色黄久久久久久| 五月婷婷在线观看视频| 337p亚洲精品色噜噜噜| 久久久久久久久久影院| 日韩理论片在线| 亚欧洲乱码视频| 国产福利一区二区三区在线视频| 日韩一级免费在线观看| 精品91视频| 秋霞在线一区二区| 精品久久久久久久| 韩国一区二区三区美女美女秀| 日韩三区四区| 国产99久久精品一区二区 夜夜躁日日躁 | 挪威xxxx性hd极品| 久久精品国产成人一区二区三区| 免费看又黄又无码的网站| 欧美一区二区三区另类| 涩涩涩999| 亚洲ab电影| 国产高清自拍一区| 成年永久一区二区三区免费视频| 国产亚洲精品久久久优势| 亚洲av无码一区二区三区性色| 欧美日韩在线观看一区二区 | 成人勉费视频| 久久久久久一区二区三区| 老司机精品影院| 中文字幕日韩有码| 国产一级在线| 亚洲男人7777| 涩爱av在线播放一区二区| 亚洲成色777777女色窝| 欧美a∨亚洲欧美亚洲| 一区二区三区在线观看欧美| 日本中文在线视频| 国产精品久久久一本精品| 日韩福利在线视频| 国产视频在线观看一区二区三区 | 青青草国产成人a∨下载安卓| 久久人人九九| 亚洲国产合集| 久久久99爱| 亚洲欧洲av| 欧美激情www| 国产成人黄色| 欧美一区视久久| 久久av中文| 天堂资源在线亚洲资源| 91日韩视频| 青少年xxxxx性开放hg| 999视频精品| 欧美性受黑人性爽| 午夜精品免费| 国产美女在线一区| 99亚洲精品| 欧美日韩亚洲第一| 日韩精品免费视频人成| 亚洲精品自拍网| 国内一区二区视频| 久久久无码人妻精品无码| 丁香一区二区三区| 呦呦视频在线观看| 久久欧美中文字幕| 国产一二三四区在线| 国产精品成人在线观看| 欧美国产日韩在线观看成人 | 久久夜色精品国产欧美乱| 黄网页免费在线观看| 欧美日韩国产999| 国产乱码午夜在线视频| 人人做人人澡人人爽欧美| 外国电影一区二区| 亚洲精品女av网站| 欧美一区 二区| 日韩免费av电影| 久久精品影视| 欧美三级一级片| 免费看欧美女人艹b| 无套内谢丰满少妇中文字幕| av在线播放成人| 337人体粉嫩噜噜噜| 一区二区三区精品久久久| 国产一级做a爱片久久毛片a| 精品视频免费在线| 日本人妻丰满熟妇久久久久久| 欧美日韩国产精品自在自线| www.成人精品| 亚洲免费小视频| 麻豆视频在线播放| 性色av一区二区三区免费| 日本精品网站| 91久久久一线二线三线品牌| 天堂99x99es久久精品免费| 一区二区三区欧美在线| 99精品免费视频| 8x8x成人免费视频| 91免费在线播放| 国产精品国产精品88| 欧美天天综合色影久久精品| 国产麻豆一精品一男同| 日韩成人免费视频| av网站在线免费| 国产精品精品一区二区三区午夜版| 日韩区一区二| 亚洲精品欧美精品| 一二三区精品| 一二三区视频在线观看| 亚洲国产高清不卡| www.日本精品| 精品久久久影院| 日本在线视频网| 日韩av日韩在线观看| 国产精品毛片av| 亚洲一区二区三区在线观看视频| 亚洲在线电影| 四虎精品一区二区| 亚洲欧美偷拍三级| 美女黄页在线观看| 亚洲美女av电影| h片在线观看下载| 99久久伊人精品影院| 99久久久国产精品美女| 宅男噜噜噜66国产免费观看| 99精品欧美一区二区三区小说 | av剧情在线观看| 91久久久一线二线三线品牌| 亚洲成人最新网站| 激情视频免费网站| 久国产精品韩国三级视频| 国产精品毛片一区二区| 亚洲午夜精品一区二区三区他趣| 国产伦精品一区二区三区免.费| 伊人青青综合网站| 蜜桃视频成人m3u8| 欧美日韩精品久久久免费观看| 亚洲欧洲日本mm| 国产精品一区二区人妻喷水| 亚洲综合一区在线| www.日本在线观看| 久久资源免费视频| 日韩精品视频在线看| 日本老太婆做爰视频| 国产制服丝袜一区| 国产又粗又硬又长又爽| 777奇米四色成人影色区| 一级毛片视频在线观看| 国产日韩在线一区| 999国产精品永久免费视频app| 中文字幕 日韩 欧美| 亚洲婷婷国产精品电影人久久| 国产欧美久久久精品免费| 毛片精品免费在线观看| 日韩精品成人在线观看| 国产成人一区二区三区别| 成人在线综合网| 国产精品黄色大片| 国产一区二区三区网站| 国语自产精品视频在线看抢先版结局| 色一情一乱一伦一区二区三欧美| 美女网站色91| 欧产日产国产v| 亚洲黄色有码视频| 电影网一区二区| 亚洲一区二区精品在线| 国产麻豆精品95视频| 国产一级免费观看| 亚洲精品在线视频| 国产精品99久久久久久董美香 | 先锋影音日韩| 麻豆成人在线观看| 青娱乐91视频| 亚洲欧美日韩国产中文专区| 亚洲青青久久| 无码熟妇人妻av在线电影| 91丝袜高跟美女视频| 亚洲婷婷久久综合| 九九热视频这里只有精品| 欧美日韩一区二区三区在线电影| 国产又大又黄又粗的视频| 综合久久国产九一剧情麻豆| 殴美一级特黄aaaaaa| 国产福利精品av综合导导航| 亚洲mv大片欧洲mv大片| 中文字幕三级电影| 欧美日韩一区二区在线视频| 欧美亚洲天堂| 日韩欧美亚洲日产国产| 国产成人精品影视| 极品国产91在线网站| 超碰精品一区二区三区乱码| 色狼人综合干| 99日在线视频| 色狠狠色狠狠综合| 污污的视频在线观看| 欧美重口乱码一区二区| 高清成人免费视频| 国产日韩在线免费观看| 久久久久久免费精品| 日韩激情一区| 国产精品无码网站| 日韩午夜电影在线观看| 亚洲www啪成人一区二区|