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

SpringCloud,這份架構圖幫你梳理全部知識點

開發 架構
Spring Cloud Gateway 是一款基于 Spring 5,Project Reactor 以及 Spring Boot 2 構建的 API 網關,是 Spring Cloud 微服務生態的主要組件之一。Spring Cloud Gateway 主要負責接口請求的路由分發,并且支持對請求的安全驗證,流量監控和流量控制等擴展操作。

思維導圖

 

SpringCloud,這份架構圖幫你梳理全部知識點

認識 Spring Cloud Gateway

Spring Cloud Gateway 是一款基于 Spring 5,Project Reactor 以及 Spring Boot 2 構建的 API 網關,是 Spring Cloud 微服務生態的主要組件之一。Spring Cloud Gateway 主要負責接口請求的路由分發,并且支持對請求的安全驗證,流量監控和流量控制等擴展操作。另外值得一提的點是,Spring Cloud Gateway 默認采用了非阻塞 I/O 模型實現請求路由的分發。對于處理一些I/O 耗時長的請求上,相比其他一樣用 Java 編寫采用的同步阻塞I/O 模型的網關性能更高,處理的并發數也更高,避免了因為 I/O 阻塞(網絡調用,數據庫操作等)導致線程空閑下來,仍能繼續處理響應其他請求。

Spring Cloud Gateway 適用場景

作為 API 網關,Spring Cloud Gateway 所提供的功能也很強大,集成了對負載均衡,動態路由,訪問控制,限流熔斷,埋點監控等功能的支持。如果現有的微服務體系是以 Java 生態甚至 Spring 生態為基礎的,那么就十分適合使用 Spring Cloud Gateway 作為 API 應用網關了,讓聚合管理多個微服務 API,對外進行統一的輸出。

同時秉承 Spring 家族的傳統,Spring Cloud Gateway 也旨在提供一個簡單,且高效的方式來進行 API 路由和請求關注點的擴展,對于已經熟悉 Spring 或者 Spring Boot 的開發者來說,Spring Cloud Gateway 學習成本并不高,利用底層框架所帶的注解驅動和自動化配置等特性,使用和擴展起來難度都不算高。

快速上手 Spring Cloud Gateway

利用 Spring Cloud Gateway 能快速搭建一個 API 網關,但在這之前,先介紹一下使用 Spring Cloud Gateway 框架所涉及的一些專用概念,來加深對 Spring Cloud Gateway 的認識,方便后面的使用。

  • 路由:是 Spring Cloud Gateway 中基礎的組件,通常由一個 id 標識,目標 URI,以及一系列斷言(Predicate)和過濾器組成。
  • 斷言(Predicate):是 Java 8 函數庫的 Predicate 對象,具體類型為 Predicate ,用于匹配 HTTP 請求上數據信息,如請求頭信息,請求體信息。如果對于某個請求的斷言為 true,那么它所關聯的路由就算匹配成功,然后將請求給這個路由處理。
  • 過濾器:用于某一個路由的請求或者響應進行修改的組件,在 Spring Cloud Gateway 都要實現 GatewayFilter 接口,并且需要由基于 GatewayFilterFactory 具體實現類構造。

 

SpringCloud,這份架構圖幫你梳理全部知識點

認識上面三個概念之后,再看上圖所示,就能清楚看出 Spring Cloud Gateway 對客戶端請求的處理過程了,這幫助我們用好 Spring Cloud Gateway 幫助很大。

  • 客戶端請求首先被 GatewayHandlerMapping 獲取,然后根據斷言匹配找到對應的路由
  • 找到路由后,走完所關聯的一組請求過濾器的處理方法,請求到目標 URI 所對應的服務程序,獲得服務響應。
  • 網關收到響應后,通過關聯的響應過濾器的處理方法后,同樣由 GatewayHandlerMapping 返回響應給客戶端。

額外需要注意的是 Spring Cloud Gateway 的過濾器是有序執行的,統一以 order 值的大小決定執行順序,值越小優先級越高,就越先執行。

如何實現 API 聚合

認識 Spring Cloud Gateway 整體處理請求過程之后,我們現在就快速構建一個基于 Spring Cloud Gateway 的 API 網關,看看在實際應用中還需要注意的哪些地方,需要注意的是本文所使用的 Spring Cloud Gateway 屬于最新的里程碑版本 2.2.3,對應 Spring Boot 版本為 2.3.1, 并且 Spring Cloud 版本為 Hoxton.SR6 。利用 Spring Initializr ,選擇對應的版本和依賴后快速新建一個項目 spring-cloud-gateway-quick-start ,并且為了實現請求的路由,表現網關的效果,再分別新建用戶服務應用 demo-userservice 和訂單服務應用 demo-orderservice ,各自提供一個可調用 API 接口。

用戶服務暴露 8071 端口,提供 /user/get 接口:

  1. // demo-userservice  項目 
  2. @RestController 
  3. @RequestMapping("/user"
  4. public class UserServiceController { 
  5.     @RequestMapping("/get"
  6.     public User get() { 
  7.         return User.mock(); 
  8.     } 

類似,訂單服務暴露 8061 端口,提供 /order/get 接口:

  1. // demo-orderservice 項目 
  2. @RestController 
  3. @RequestMapping("/order"
  4. public class OrderServiceController { 
  5.     @RequestMapping("/get"
  6.     public Order get() { 
  7.         return Order.mock(); 
  8.     } 

接下來要通過 Spring Cloud Gateway 將兩個服務接口聚合在 spring-cloud-gateway-quick-start 項目中,首先來看下利用 Spring Cloud Gateway API 方式的實現:

  1. @SpringBootApplication 
  2. public class DemogatewayApplication { 
  3.     public static void main(String[] args) { 
  4.         SpringApplication.run(DemogatewayApplication.class, args); 
  5.     } 
  6.  
  7.     @Bean 
  8.     public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { 
  9.         return builder.routes().route("user-service", r -> r.path("/user/*").uri("http://localhost:8071")) 
  10.                 .route("order-service", r -> r.path("/order/*").uri("http://localhost:8061")) 
  11.                 .build(); 
  12.     } 

接下來要通過 Spring Cloud Gateway 將兩個服務接口聚合在 spring-cloud-gateway-quick-start 項目中,首先來看下利用 Spring Cloud Gateway API 方式的實現:

上述代碼就已經實現 API 路由的功能,是不是很快速,同時啟動 spring-cloud-gateway-quick-start 和其他服務應用,就可以統一通過網關應用訪問用戶服務和訂單服務了:

  1. one@192 ~ % curl http://localhost:8080/user/get 
  2. {"id":4720186416534735290,"token":"86b6118d-7dc6-4d30-a5f3-3d5fc6348f9a"
  3.    
  4. one@192 ~ % curl http://localhost:8080/order/get 
  5. {"id":5832646761962425508,"title":"My Order"

回到 API 實現的代碼, DemogatewayApplication#customRouteLocator 方法中定義了兩個 id 分別為 user-service 和 order-service 的路由,并且設置了匹配請求的斷言,以及真正目標請求地址。這里路由的斷言采用了路徑匹配的規則,只要原始請求地址符合對應的規則就算匹配到此路由,但 Spring Cloud Gate 還支持豐富的斷言規則,如主機匹配,請求體字段匹配,請求數據匹配等等,足以滿足定制路由斷言的規則了。

由于使用 API 就是硬編碼方式將路由規則定義在程序里了,這樣做擴展性很差,也不好維護。于是更推薦另外一種實現方式:配置化。來看下要實現相同功能,在 application.properties 里該如何配置:

  1. spring.cloud.gateway.routes[0].id=order-service 
  2. spring.cloud.gateway.routes[0].uri=http://localhost:8061 
  3. spring.cloud.gateway.routes[0].predicates[0].name=Path 
  4. spring.cloud.gateway.routes[0].predicates[0].args[pattern]=/order/* 
  5. spring.cloud.gateway.routes[1].id=user-service 
  6. spring.cloud.gateway.routes[1].uri=http://localhost:8071 
  7. spring.cloud.gateway.routes[1].predicates[0].name=Path 
  8. spring.cloud.gateway.routes[1].predicates[0].args[pattern]=/user/* 

使用上面的配置,重啟網關應用,同樣能完成之前 API 方式的效果,由于路由規則轉移到了配置文件中,就大大方便對 API 的管理,為實現動態路由也提供了可能。當然需要實現動態路由,除了路由配置,還需要進行額外的擴展實現路由規則的動態刷新,涉及 Spring Cloud Gateway 更高級的用法,本文就不再詳細贅述了,可以等后續進階使用和分析的文章或者參考網上其他實現資料。

如何自定義過濾器

為了能對 API 的請求或者響應處理,Spring Cloud Gateway 提供過濾器組件來實現這一功能,并且內置了很多功能強大。另外過濾器分兩類,全局過濾器和網關過濾器,對于全局過濾器,所有匹配到路由的請求處理時都會經過全局過濾器處理;而網關過濾器只有顯示在指定路由上時才會起到左右。

Spring Cloud Gateway 默認的全局過濾器有 8個:

  • ForwardRoutingFilter
  • LoadBalancerClientFilter(棄用)
  • ReactiveLoadBalancerClientFilter
  • WebClientHttpRoutingFilter
  • NettyWriteResponseFilter
  • RouteToRequestUrlFilter
  • WebsocketRoutingFilter
  • GatewayMetricsFilter

而網關過濾器就更多了,并且由對應工廠類來構造,比如用于熔斷的 HystrixGatewayFilterFactory ,用于限流的 RequestRateLimiterGatewayFilterFactory,用于修改請求數據的 ModifyRequestBodyGatewayFilterFactory 等等,當然也支持開發者進行定義自己的過濾器。

首先來看下如何自定義一個全局過濾器,代碼實現比較簡單:

  1. @Component 
  2. public class CustomGlobalFilter implements GlobalFilter, Ordered { 
  3.     private Logger log = LoggerFactory.getLogger(MyAuthFilterFactory.class); 
  4.  
  5.     @Override 
  6.     public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { 
  7.         log.info("執行自定過濾器"); 
  8.         return chain.filter(exchange); 
  9.     } 
  10.  
  11.     @Override 
  12.     public int getOrder() { 
  13.         return -1; 
  14.     } 

這樣就可以為所有路由添加一個全局的過濾器了。不同于全局過濾器的定義,網關過濾器必須在指定路由上進行申明才能生效,參考官方內置的網關攔截器,自定義一個用于授權的簡易網關攔截器工廠如下:

  1. @Component 
  2. public class MyAuthGatewayFilterFactory extends AbstractGatewayFilterFactory<MyAuthGatewayFilterFactory.Config> { 
  3.     private Logger logger = LoggerFactory.getLogger(MyAuthGatewayFilterFactory.class); 
  4.  
  5.     public MyAuthGatewayFilterFactory() { 
  6.         super(Config.class); 
  7.     } 
  8.  
  9.     @Override 
  10.     public GatewayFilter apply(Config config) { 
  11.         return new GatewayFilter() { 
  12.             @Override 
  13.             public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { 
  14.                 ServerHttpRequest request = exchange.getRequest(); 
  15.                 MultiValueMap<String, String> queryParams = request.getQueryParams(); 
  16.                 String from = queryParams.getFirst(config.getAuthKey()); 
  17.                 ServerHttpResponse response = exchange.getResponse(); 
  18.                 logger.warn("校驗授權開始"); 
  19.                 if (config.getAuthValue().equals(from)) { 
  20.                     logger.warn("校驗授權成功"); 
  21.                     return chain.filter(exchange); 
  22.                 } else { 
  23.                     logger.warn("校驗授權失敗"); 
  24.                     response.setStatusCode(HttpStatus.OK); 
  25.                     response.getHeaders().setContentType(MediaType.valueOf("text/html;charset=utf-8")); 
  26.                     DataBuffer wrap = response.bufferFactory().wrap(config.getAuthFailMsg().getBytes(Charset.forName("UTF-8"))); 
  27.                     return response.writeWith(Flux.just(wrap)); 
  28.                 } 
  29.             } 
  30.         }; 
  31.     } 
  32.  
  33.     public static class Config { 
  34.         private String authKey = "from"
  35.         private String authValue = "system"
  36.         private String authFailMsg = "授權失敗"
  37.  
  38.         public String getAuthKey() { 
  39.             return authKey; 
  40.         } 
  41.  
  42.         public void setAuthKey(String authKey) { 
  43.             this.authKey = authKey; 
  44.         } 
  45.  
  46.         public String getAuthValue() { 
  47.             return authValue; 
  48.         } 
  49.  
  50.         public void setAuthValue(String authValue) { 
  51.             this.authValue = authValue; 
  52.         } 
  53.  
  54.         public String getAuthFailMsg() { 
  55.             return authFailMsg; 
  56.         } 
  57.  
  58.         public void setAuthFailMsg(String authFailMsg) { 
  59.             this.authFailMsg = authFailMsg; 
  60.         } 
  61.     } 

如果要在 user-service 路由下使用,需要在 application.properties 配置文件添加如下配置:

  1. spring.cloud.gateway.routes[1].filters[0].name=MyAuth 

這里的名稱就需要跟 MyAuthGatewayFilterFactory 類的 MyAuth 保持一致,Spring Cloud Gateway 會自動拼接上 AuthGatewayFilterFactory 去查找對應的網關過濾器,沒有找到就會導致啟動失敗,拋出異常:

  1. java.lang.IllegalArgumentException: Unable to find GatewayFilterFactory with name MyAuth2 

配置完對網關應用進行重啟,這是使用原來的方式去請求用戶服務,已經無法正常訪問,只會返回校驗授權失敗的信息,必須以 http://localhost:8080/user/get?from=system 方式訪問才能成功獲取到數據,說明定義的授權攔截器已經起了作用。

這里我們就將全局攔截器和網關攔截器都實現了自定義,通常情況我們都會在網關攔截器上進行擴展定制,也結合內置的過濾器使用。

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2017-09-26 13:52:52

深度學習機器學習思維導圖

2018-11-27 15:51:10

MySQL數據庫查詢優化

2018-01-16 12:31:33

Python爬蟲數據

2020-07-16 15:00:56

MySQL索引數據庫

2018-10-21 15:36:13

UI適配iOS

2025-04-25 10:00:00

2016-05-30 17:31:34

Spring框架

2011-04-15 12:25:21

BGP路由

2010-08-17 14:56:00

HCNE認證

2010-06-17 16:42:04

UML

2010-07-27 15:49:28

Flex

2009-12-18 17:34:38

Ruby線程

2021-01-18 10:33:53

Java反射模塊

2009-08-06 17:42:32

C#知識點

2025-05-07 08:55:00

2010-08-18 10:52:46

Linux筆試

2020-10-07 15:15:41

Python

2025-05-19 10:00:00

MySQL數據庫InnoDB

2025-07-09 09:05:00

2010-09-02 10:11:11

華為認證
點贊
收藏

51CTO技術棧公眾號

色偷偷9999www| 色综合久久久久久久| 国产激情一区二区三区在线观看| 久久精品人妻一区二区三区| 日本中文字幕在线一区| 欧美日韩中文国产| 国产精品入口芒果| 波多野结衣在线网站| 国产传媒欧美日韩成人| 欧洲精品在线视频| 欧美精品xxxxx| 国产亚洲电影| 精品国产sm最大网站免费看| 午夜dv内射一区二区| 污污的网站在线免费观看| 91麻豆免费观看| 91中文在线视频| 无码人妻精品一区二区三区蜜桃91| 亚洲成人精品| 在线看日韩欧美| 先锋资源av在线| 国产精选久久| 欧美系列在线观看| 伊人成色综合网| 超碰公开在线| 国产精品乱人伦中文| 久久精品人人做人人爽电影| 国产99999| 久久狠狠亚洲综合| 国产成人鲁鲁免费视频a| 久久亚洲成人av| 久久综合88| 亚洲图片欧洲图片av| 天天插天天射天天干| 一区二区免费| 91精品国产综合久久久久久漫画 | 国产永久免费高清在线观看| 国产91丝袜在线观看| 91视频九色网站| 一区二区视频网站| 日日摸夜夜添夜夜添国产精品 | 亚洲欧美中文日韩在线| aaa黄色大片| 国产日韩欧美中文在线| 欧美色图第一页| 欧美一级黄色影院| av有声小说一区二区三区| 日韩欧美国产骚| 精品国产一区三区| 韩国成人二区| 偷拍一区二区三区| 18禁网站免费无遮挡无码中文| 污污的网站在线免费观看| 亚洲免费观看高清完整版在线| 影音先锋亚洲视频| 麻豆传媒免费在线观看| 国产精品美女久久久久久久久| 五月天综合网| 婷婷五月在线视频| 亚洲天堂av老司机| 91视频 - 88av| 俺来俺也去www色在线观看| 亚洲成人动漫在线观看| 久久久性生活视频| 亚洲欧洲日本韩国| 欧美午夜精品伦理| 密臀av一区二区三区| 成人精品国产亚洲| 欧美人体做爰大胆视频| 日本亚洲一区二区三区| 91九色鹿精品国产综合久久香蕉| 精品久久久三级丝袜| 国产麻豆剧传媒精品国产av| 亚洲丁香日韩| 这里只有精品在线观看| 国产午夜手机精彩视频| 国产一区久久| 日韩免费观看高清| 国产精品毛片一区视频播| 国产高清亚洲一区| 精品综合久久久| 国产精品一二三区视频| 中文字幕一区二区在线观看 | 欧美xxxx黑人又粗又长| 欧美性xxxx| 午夜剧场在线免费观看| 国产一区在线电影| 国产一区二区三区在线看| 免费高清在线观看电视| 国产亚洲午夜| 国产在线视频一区| 五月婷婷在线播放| 国产精品高潮久久久久无| 久久国产精品网| 播放一区二区| 精品成人一区二区三区四区| 插吧插吧综合网| 中文一区一区三区免费在线观看| 久久免费视频这里只有精品| 中文在线免费观看| 成人毛片老司机大片| 亚洲巨乳在线观看| 9999精品成人免费毛片在线看 | 亚洲免费一级片| 久久精品一区二区三区不卡| 久久久久亚洲av无码专区喷水| 中文字幕人成乱码在线观看| 91麻豆精品国产无毒不卡在线观看| 亚洲中文字幕一区| 久久久久久久久久久妇女| 55夜色66夜色国产精品视频| va视频在线观看| 国产精品网站在线| 国产中文字幕在线免费观看| 国产成人免费视频网站视频社区 | 欧美jizz18性欧美| 欧美日韩亚洲视频| 欧美性生交xxxxx| 91精品国产调教在线观看| 国产精品精品一区二区三区午夜版 | 久久黄色网页| 国产精品手机视频| yellow91字幕网在线| 欧美色图12p| 国产又爽又黄无码无遮挡在线观看| 欧美激情亚洲| 91精品国产综合久久久久久蜜臀| 国产午夜在线观看| 欧美丝袜一区二区三区| 国产高潮失禁喷水爽到抽搐| 亚洲国产一区二区三区在线播放| 国产免费一区二区三区在线观看| 久草视频在线看| 精品久久久久久国产| 97精品人人妻人人| 欧美激情91| 91久久精品一区| 人人干在线视频| 欧美色男人天堂| 中文字幕av久久爽一区| 久久性天堂网| 欧美精品一区三区在线观看| 国产乱码精品一区二三赶尸艳谈| 亚洲成人久久一区| 日本熟伦人妇xxxx| 99久久精品免费观看| www国产精品内射老熟女| 国产精品2023| 欧美一区二区三区精品电影| 婷婷综合激情网| 五月婷婷欧美视频| 久久久午夜精品福利内容| 日韩午夜激情| 欧美高清性xxxxhd| 中文字幕日本一区二区| 在线看片第一页欧美| 在线免费一级片| 最新成人av在线| 亚洲欧美日韩网站| 国产精品分类| 久久伊人一区二区| 精品视频一区二区三区四区五区| 神马久久久久久| 国产乱淫片视频| 亚洲成a人片在线观看中文| 高清中文字幕mv的电影| 午夜一区二区三区不卡视频| 日本不卡一二三区| 亚洲精品第一| 色综合久久88色综合天天看泰| 人人妻人人澡人人爽精品日本 | 国产亚洲福利社区一区| 麻豆一区二区三区视频| 亚洲经典一区| 激情五月综合色婷婷一区二区| 久久uomeier| 日韩中文在线不卡| 亚洲精品久久久久久无码色欲四季 | 亚洲美女中文字幕| 亚洲中文字幕一区二区| 亚洲综合色婷婷| 乐播av一区二区三区| 国产麻豆一精品一av一免费| 亚洲中文字幕无码av永久| 少妇久久久久| 成人综合国产精品| 波多野结衣中文字幕久久| 一区二区在线视频播放| 亚洲av无码国产综合专区| 色就色 综合激情| 538精品在线视频| 99精品视频在线播放观看| 日本超碰在线观看| 亚洲精品色图| 欧美一级免费在线观看| 一呦二呦三呦国产精品| 亚洲一区二区在线| 忘忧草在线www成人影院| 欧美精品在线观看91| 国产无套粉嫩白浆在线2022年| 欧美一区中文字幕| 日韩电影在线观看一区二区| 亚洲制服丝袜一区| 精品丰满少妇一区二区三区| 福利电影一区二区| 国内国产精品天干天干| 久久国产精品毛片| 成品人视频ww入口| 91精品国产自产拍在线观看蜜| 欧美一区1区三区3区公司| 99a精品视频在线观看| 国产精品女人网站| 色一区二区三区| 欧美精品成人91久久久久久久| av资源种子在线观看| 亚洲精品成人久久| 亚洲精品久久久久久久久久久久久久 | 色老头一区二区三区| 少妇性bbb搡bbb爽爽爽欧美| 日韩美女一区二区三区四区| 在线观看免费中文字幕| 日本久久精品电影| 日本网站免费观看| 一区二区欧美精品| 亚洲国产成人精品综合99| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品一区二区入口九绯色| 国产成人在线电影| 亚洲一区二区三区四区精品| 免费黄网站欧美| 一级黄色香蕉视频| 天堂成人国产精品一区| 国产 日韩 欧美在线| 欧美日韩综合| avav在线播放| 在线观看日韩av电影| 2019日韩中文字幕mv| 欧美午夜精品| 欧美中文字幕在线观看视频| 亚洲一区二区三区| 99热这里只有精品7| 91精品亚洲| 青青草影院在线观看| 一区二区三区四区电影| 日韩精品福利片午夜免费观看| 在线精品国产| 999久久欧美人妻一区二区| 欧美日本一区| 欧美乱大交xxxxx潮喷l头像| 一区在线视频| 波多野结衣综合网| 免费国产自线拍一欧美视频| 国产男女无遮挡| 天堂资源在线中文精品| 日韩av片网站| 国产综合久久久久久鬼色| 三级网站免费看| 成人av网站在线观看免费| 成人h动漫精品一区| 久久久www免费人成精品| 成人黄色免费网址| 亚洲国产精品成人久久综合一区| 亚洲aaa视频| 亚洲激情在线播放| 日韩伦人妻无码| 91久久精品一区二区| 亚洲精品一区二区二区| 91精品国产综合久久久蜜臀图片| 亚洲欧美激情在线观看| 亚洲黄色成人网| 国产大学生校花援交在线播放 | 欧美激情第一页在线观看| 精品一区二区三| 日本黄xxxxxxxxx100| 亚洲毛片一区| 丝袜制服一区二区三区| 激情深爱一区二区| 日本五十肥熟交尾| 国产欧美精品一区二区三区四区| 三级黄色录像视频| 亚洲国产中文字幕在线视频综合| 麻豆成人免费视频| 91精品欧美综合在线观看最新| 人妻无码一区二区三区久久99 | 91超碰这里只有精品国产| 丰满熟妇乱又伦| 中文字幕亚洲欧美一区二区三区| 超碰在线观看免费| 日本三级久久久| 日韩中文字幕| 欧美视频观看一区| 亚洲网站视频| 57pao国产成永久免费视频| www.亚洲色图.com| 国产真实乱在线更新| 欧美色播在线播放| 99视频国产精品免费观看a| 日韩禁在线播放| 怡红院红怡院欧美aⅴ怡春院| 日本欧美精品在线| www.爱久久| 中文字幕中文字幕在线中心一区 | 免费视频亚洲| 国产精品自拍合集| 美女视频黄 久久| 久久精品国产亚洲av久| 一区二区三区精品在线| 中文字幕日韩第一页| 亚洲欧美激情另类校园| 麻豆av在线播放| 91亚洲精品在线观看| 波多野结衣在线观看一区二区三区| 国产日韩av网站| 国产二区国产一区在线观看 | 亚洲一区中文在线| 一区二区久久精品66国产精品| 日韩精品中文字幕久久臀| 欧美韩日亚洲| 91日韩久久| 久久久久国产精品| 手机av在线网| 欧美国产精品一区| 九九热在线免费观看| 亚洲成av人乱码色午夜| caoporn免费在线| 国产综合色香蕉精品| 欧美日韩激情在线一区二区三区| 波多野结衣之无限发射| 成人午夜私人影院| 免费看特级毛片| 在线播放欧美女士性生活| 在线观看麻豆| 国产精品免费久久久久久| 九色精品国产蝌蚪| av天堂永久资源网| 91丨九色porny丨蝌蚪| 日韩免费观看一区二区| 亚洲成人免费网站| 日本免费一区二区六区| 精品国产aⅴ麻豆| 亚洲欧美综合| 在线观看欧美一区二区| 亚洲人成影院在线观看| 99热这里精品| 欧美富婆性猛交| 韩国女主播一区二区三区| 日韩精品在线观看av| jvid福利写真一区二区三区| 欧美激情亚洲综合| 亚洲欧美国产精品久久久久久久| 成人性生交大片免费观看网站| 麻豆精品传媒视频| 日韩专区欧美专区| 精品伦精品一区二区三区视频密桃| 欧美日韩国产精选| gogogogo高清视频在线| 91精品国产综合久久久久久丝袜| 欧美精品97| 性欧美成人播放77777| 欧美综合久久久| 国产原厂视频在线观看| 国产精品久久久久久久久久久久冷 | 91麻豆免费看片| 无码无套少妇毛多18pxxxx| 一区二区三区 在线观看视| 日韩久久一区| www.xxx麻豆| 91视视频在线直接观看在线看网页在线看 | 九九九久久久久久久| 亚洲一区二区影院| 日本一区二区三区在线观看视频| 国产精品99久久久久久久久久久久| 久久影院100000精品| 国产香蕉精品视频| 欧美性猛交xxxx免费看| 日本在线www| 激情小说网站亚洲综合网 | 久久无码专区国产精品s| 午夜免费久久看| jyzzz在线观看视频| 91在线看网站| 久久综合影音| 免费在线观看一级片| 亚洲欧美成人网| 国产欧美88| 欧美 日韩精品| 亚洲男人天堂av网| 理论在线观看| 97久草视频| 免费看欧美女人艹b| 日本少妇吞精囗交| 最新中文字幕亚洲| 牲欧美videos精品| aaaaaaaa毛片| 91黄视频在线观看| 国产盗摄精品一区二区酒店| 日韩欧美视频一区二区| 成人av在线网站| 国产视频在线一区| 国产成人高潮免费观看精品|