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

API網(wǎng)關(guān)從入門到放棄

網(wǎng)絡(luò) 通信技術(shù)
假設(shè)你正在開發(fā)一個(gè)電商網(wǎng)站,那么這里會(huì)涉及到很多后端的微服務(wù),比如會(huì)員、商品、推薦服務(wù)等等。那么這里就會(huì)遇到一個(gè)問題,APP/Browser怎么去訪問這些后端的服務(wù)?

前言

假設(shè)你正在開發(fā)一個(gè)電商網(wǎng)站,那么這里會(huì)涉及到很多后端的微服務(wù),比如會(huì)員、商品、推薦服務(wù)等等。

API網(wǎng)關(guān)從入門到放棄

那么這里就會(huì)遇到一個(gè)問題,APP/Browser怎么去訪問這些后端的服務(wù)? 如果業(yè)務(wù)比較簡(jiǎn)單的話,可以給每個(gè)業(yè)務(wù)都分配一個(gè)獨(dú)立的域名(https://service.api.company.com),但這種方式會(huì)有幾個(gè)問題:

  • 每個(gè)業(yè)務(wù)都會(huì)需要鑒權(quán)、限流、權(quán)限校驗(yàn)等邏輯,如果每個(gè)業(yè)務(wù)都各自為戰(zhàn),自己造輪子實(shí)現(xiàn)一遍,會(huì)很蛋疼,完全可以抽出來,放到一個(gè)統(tǒng)一的地方去做。
  • 如果業(yè)務(wù)量比較簡(jiǎn)單的話,這種方式前期不會(huì)有什么問題,但隨著業(yè)務(wù)越來越復(fù)雜,比如淘寶、亞馬遜打開一個(gè)頁(yè)面可能會(huì)涉及到數(shù)百個(gè)微服務(wù)協(xié)同工作,如果每一個(gè)微服務(wù)都分配一個(gè)域名的話,一方面客戶端代碼會(huì)很難維護(hù),涉及到數(shù)百個(gè)域名,另一方面是連接數(shù)的瓶頸,想象一下你打開一個(gè)APP,通過抓包發(fā)現(xiàn)涉及到了數(shù)百個(gè)遠(yuǎn)程調(diào)用,這在移動(dòng)端下會(huì)顯得非常低效。
  • 每上線一個(gè)新的服務(wù),都需要運(yùn)維參與,申請(qǐng)域名、配置Nginx等,當(dāng)上線、下線服務(wù)器時(shí),同樣也需要運(yùn)維參與,另外采用域名這種方式,對(duì)于環(huán)境的隔離也不太友好,調(diào)用者需要自己根據(jù)域名自己進(jìn)行判斷。
  • 另外還有一個(gè)問題,后端每個(gè)微服務(wù)可能是由不同語(yǔ)言編寫的、采用了不同的協(xié)議,比如HTTP、Dubbo、GRPC等,但是你不可能要求客戶端去適配這么多種協(xié)議,這是一項(xiàng)非常有挑戰(zhàn)的工作,項(xiàng)目會(huì)變的非常復(fù)雜且很難維護(hù)。
  • 后期如果需要對(duì)微服務(wù)進(jìn)行重構(gòu)的話,也會(huì)變的非常麻煩,需要客戶端配合你一起進(jìn)行改造,比如商品服務(wù),隨著業(yè)務(wù)變的越來越復(fù)雜,后期需要進(jìn)行拆分成多個(gè)微服務(wù),這個(gè)時(shí)候?qū)ν馓峁┑姆?wù)也需要拆分成多個(gè),同時(shí)需要客戶端配合你進(jìn)行改造,非常蛋疼。

API Gateway

API網(wǎng)關(guān)從入門到放棄

更好的方式是采用API網(wǎng)關(guān),實(shí)現(xiàn)一個(gè)API網(wǎng)關(guān)接管所有的入口流量,類似Nginx的作用,將所有用戶的請(qǐng)求轉(zhuǎn)發(fā)給后端的服務(wù)器,但網(wǎng)關(guān)做的不僅僅只是簡(jiǎn)單的轉(zhuǎn)發(fā),也會(huì)針對(duì)流量做一些擴(kuò)展,比如鑒權(quán)、限流、權(quán)限、熔斷、協(xié)議轉(zhuǎn)換、錯(cuò)誤碼統(tǒng)一、緩存、日志、監(jiān)控、告警等,這樣將通用的邏輯抽出來,由網(wǎng)關(guān)統(tǒng)一去做,業(yè)務(wù)方也能夠更專注于業(yè)務(wù)邏輯,提升迭代的效率。

通過引入API網(wǎng)關(guān),客戶端只需要與API網(wǎng)關(guān)交互,而不用與各個(gè)業(yè)務(wù)方的接口分別通訊,但多引入一個(gè)組件就多引入了一個(gè)潛在的故障點(diǎn),因此要實(shí)現(xiàn)一個(gè)高性能、穩(wěn)定的網(wǎng)關(guān),也會(huì)涉及到很多點(diǎn)。

API網(wǎng)關(guān)從入門到放棄

API注冊(cè)

業(yè)務(wù)方如何接入網(wǎng)關(guān)?一般來說有幾種方式。

第一種采用插件掃描業(yè)務(wù)方的API,比如Spring MVC的注解,并結(jié)合Swagger的注解,從而實(shí)現(xiàn)參數(shù)校驗(yàn)、文檔&&SDK生成等功能,掃描完成之后,需要上報(bào)到網(wǎng)關(guān)的存儲(chǔ)服務(wù)。

手動(dòng)錄入。比如接口的路徑、請(qǐng)求參數(shù)、響應(yīng)參數(shù)、調(diào)用方式等信息,但這種方式相對(duì)來說會(huì)麻煩一些,如果參數(shù)過多的話,前期錄入會(huì)很費(fèi)時(shí)費(fèi)力。

API網(wǎng)關(guān)從入門到放棄

配置文件導(dǎo)入。比如通過Swagger\OpenAPI等,比如阿里云的網(wǎng)關(guān):

API網(wǎng)關(guān)從入門到放棄

協(xié)議轉(zhuǎn)換

內(nèi)部的API可能是由很多種不同的協(xié)議實(shí)現(xiàn)的,比如HTTP、Dubbo、GRPC等,但對(duì)于用戶來說其中很多都不是很友好,或者根本沒法對(duì)外暴露,比如Dubbo服務(wù),因此需要在網(wǎng)關(guān)層做一次協(xié)議轉(zhuǎn)換,將用戶的HTTP協(xié)議請(qǐng)求,在網(wǎng)關(guān)層轉(zhuǎn)換成底層對(duì)應(yīng)的協(xié)議,比如HTTP -> Dubbo, 但這里需要注意很多問題,比如參數(shù)類型,如果類型搞錯(cuò)了,導(dǎo)致轉(zhuǎn)換出問題,而日志又不夠詳細(xì)的話,問題會(huì)很難定位。

服務(wù)發(fā)現(xiàn)

網(wǎng)關(guān)作為流量的入口,負(fù)責(zé)請(qǐng)求的轉(zhuǎn)發(fā),但首先需要知道轉(zhuǎn)發(fā)給誰(shuí),如何尋址,這里有幾種方式:

  • 寫死在代碼/配置文件里,這種方式雖然比較挫,但也能使用,比如線上仍然使用的是物理機(jī),IP變動(dòng)不會(huì)很頻繁,但擴(kuò)縮容、包括應(yīng)用上下線都會(huì)很麻煩,網(wǎng)關(guān)自身甚至需要實(shí)現(xiàn)一套健康監(jiān)測(cè)機(jī)制。
  • 域名。采用域名也是一種不錯(cuò)的方案,對(duì)于所有的語(yǔ)言都適用,但對(duì)于內(nèi)部的服務(wù),走域名會(huì)很低效,另外環(huán)境隔離也不太友好,比如預(yù)發(fā)、線上通常是同一個(gè)數(shù)據(jù)庫(kù),因此網(wǎng)關(guān)讀取到的可能是同一個(gè)域名,這時(shí)候預(yù)發(fā)的網(wǎng)關(guān)調(diào)用的就是線上的服務(wù)。
  • 注冊(cè)中心。采用注冊(cè)中心就不會(huì)有上述的這些問題,即使是在容器環(huán)境下,節(jié)點(diǎn)的IP變更比較頻繁,但節(jié)點(diǎn)列表的實(shí)時(shí)維護(hù)會(huì)由注冊(cè)中心搞定,對(duì)網(wǎng)關(guān)是透明的,另外應(yīng)用的正常上下線、包括異常宕機(jī)等情況,也會(huì)由注冊(cè)中心的健康檢查機(jī)制檢測(cè)到,并實(shí)時(shí)反饋給網(wǎng)關(guān)。并且采用注冊(cè)中心性能也沒有額外的性能損耗,采用域名的方式,額外需要走一次DNS解析、Nginx轉(zhuǎn)發(fā)等,中間多了很多跳,性能會(huì)有很大的下降,但采用注冊(cè)中心,網(wǎng)關(guān)是和業(yè)務(wù)方直接點(diǎn)對(duì)點(diǎn)的通訊,不會(huì)有額外的損耗。

服務(wù)調(diào)用

網(wǎng)關(guān)由于對(duì)接很多種不同的協(xié)議,因此可能需要實(shí)現(xiàn)很多種調(diào)用方式,比如HTTP、Dubbo等,基于性能原因,最好都采用異步的方式,而Http、Dubbo都是支持異步的,比如apache就提供了基于NIO實(shí)現(xiàn)的異步HTTP客戶端。

因?yàn)榫W(wǎng)關(guān)會(huì)涉及到很多異步調(diào)用,比如攔截器、HTTP客戶端、dubbo、redis等,因此需要考慮下異步調(diào)用的方式,如果基于回調(diào)或者future的話,代碼嵌套會(huì)很深,可讀性很差,可以參考zuul和spring cloud gateway的方案,基于響應(yīng)式進(jìn)行改造。

優(yōu)雅下線

優(yōu)雅下線也是網(wǎng)關(guān)需要關(guān)注的一個(gè)問題,網(wǎng)關(guān)底層會(huì)涉及到很多種協(xié)議,比如HTTP、Dubbo,而HTTP又可以繼續(xù)細(xì)分,比如域名、注冊(cè)中心等,有些自身就支持優(yōu)雅下線,比如Nginx自身是支持健康監(jiān)測(cè)機(jī)制的,如果檢測(cè)到某一個(gè)節(jié)點(diǎn)已經(jīng)掛掉了,就會(huì)把這個(gè)節(jié)點(diǎn)摘掉,對(duì)于應(yīng)用正常下線,需要結(jié)合發(fā)布系統(tǒng),首先進(jìn)行邏輯下線,然后對(duì)后續(xù)Nginx的健康監(jiān)測(cè)請(qǐng)求直接返回失敗(比如直接返回500),然后等待一段時(shí)間(根據(jù)Nginx配置決定),然后再將應(yīng)用實(shí)際下線掉。另外對(duì)于注冊(cè)中心的其實(shí)也類似,一般注冊(cè)中心是只支持手動(dòng)下線的,可以在邏輯下線階段調(diào)用注冊(cè)中心的接口將節(jié)點(diǎn)下線掉,而有些不支持主動(dòng)下線的,需要結(jié)合緩存的配置,讓應(yīng)用延遲下線。另外對(duì)于其他比如Dubbo等原理也是類似。

性能

網(wǎng)關(guān)作為所有流量的入口,性能是重中之重,早期大部分網(wǎng)關(guān)都是基于同步阻塞模型構(gòu)建的,比如Zuul 1.x。但這種同步的模型我們都知道,每個(gè)請(qǐng)求/連接都會(huì)占用一個(gè)線程,而線程在JVM中是一個(gè)很重的資源,比如Tomcat默認(rèn)就是200個(gè)線程,如果網(wǎng)關(guān)隔離沒有做好的話,當(dāng)發(fā)生網(wǎng)絡(luò)延遲、FullGC、第三方服務(wù)慢等情況造成上游服務(wù)延遲時(shí),線程池很容易會(huì)被打滿,造成新的請(qǐng)求被拒絕,但這個(gè)時(shí)候其實(shí)線程都阻塞在IO上,系統(tǒng)的資源被沒有得到充分的利用。另外一點(diǎn),容易受網(wǎng)絡(luò)、磁盤IO等延遲影響。需要謹(jǐn)慎設(shè)置超時(shí)時(shí)間,如果設(shè)置不當(dāng),且服務(wù)隔離做的不是很完善的話,網(wǎng)關(guān)很容易被一個(gè)慢接口拖垮。

而異步化的方式則完全不同,通常情況下一個(gè)CPU核啟動(dòng)一個(gè)線程即可處理所有的請(qǐng)求、響應(yīng)。一個(gè)請(qǐng)求的生命周期不再固定于一個(gè)線程,而是會(huì)分成不同的階段交由不同的線程池處理,系統(tǒng)的資源能夠得到更充分的利用。而且因?yàn)榫€程不再被某一個(gè)連接獨(dú)占,一個(gè)連接所占用的系統(tǒng)資源也會(huì)低得多,只是一個(gè)文件描述符加上幾個(gè)監(jiān)聽器等,而在阻塞模型中,每條連接都會(huì)獨(dú)占一個(gè)線程,而線程是一個(gè)非常重的資源。對(duì)于上游服務(wù)的延遲情況,也能夠得到很大的緩解,因?yàn)樵谧枞P椭校?qǐng)求會(huì)獨(dú)占一個(gè)線程資源,而異步化之后,因?yàn)閱螚l連接所占用的資源變的非常低,系統(tǒng)可以同時(shí)處理大量的請(qǐng)求。

如果是JVM平臺(tái),Zuul 2、Spring Cloud gateway等都是不錯(cuò)的異步網(wǎng)關(guān)選型,另外也可以基于Netty、Spring Boot2.x的webflux、vert.x或者servlet3.1的異步支持進(jìn)行自研。

緩存

對(duì)于一些冪等的get請(qǐng)求,可以在網(wǎng)關(guān)層面根據(jù)業(yè)務(wù)方指定的緩存頭做一層緩存,存儲(chǔ)到Redis等二級(jí)緩存中,這樣一些重復(fù)的請(qǐng)求,可以在網(wǎng)關(guān)層直接處理,而不用打到業(yè)務(wù)線,降低業(yè)務(wù)方的壓力,另外如果業(yè)務(wù)方節(jié)點(diǎn)掛掉,網(wǎng)關(guān)也能夠返回自身的緩存。

限流

限流對(duì)于每個(gè)業(yè)務(wù)組件來說,可以說都是一個(gè)必須的組件,如果限流做不好的話,當(dāng)請(qǐng)求量突增時(shí),很容易導(dǎo)致業(yè)務(wù)方的服務(wù)掛掉,比如雙11、雙12等大促時(shí),接口的請(qǐng)求量是平時(shí)的數(shù)倍,如果沒有評(píng)估好容量,又沒有做限流的話,很容易服務(wù)整個(gè)不可用,因此需要根據(jù)業(yè)務(wù)方接口的處理能力,做好限流策略,相信大家都見過淘寶、百度搶紅包時(shí)的降級(jí)頁(yè)面。

因此一定要在接入層做好限流策略,對(duì)于非核心接口可以直接將降級(jí)掉,保障核心服務(wù)的可用性,對(duì)于核心接口,需要根據(jù)壓測(cè)時(shí)得到的接口容量,制定對(duì)應(yīng)的限流策略。限流又分為幾種:

  • 單機(jī)。單機(jī)性能比較高,不涉及遠(yuǎn)程調(diào)用,只是本地計(jì)數(shù),對(duì)接口RT影響最小。但需要考慮下限流數(shù)的設(shè)置,比如是針對(duì)單臺(tái)網(wǎng)關(guān)、還是整個(gè)網(wǎng)關(guān)集群,如果是整個(gè)集群的話,需要考慮到網(wǎng)關(guān)縮容、擴(kuò)容時(shí)修改對(duì)應(yīng)的限流數(shù)。
  • 分布式。分布式的就需要一個(gè)存儲(chǔ)節(jié)點(diǎn)維護(hù)當(dāng)前接口的調(diào)用數(shù),比如redis、sentinel等,這種方式由于涉及到遠(yuǎn)程調(diào)用,會(huì)有些性能損耗,另外也需要考慮到存儲(chǔ)掛掉的問題,比如redis如果掛掉,網(wǎng)關(guān)需要考慮降級(jí)方案,是降級(jí)到本地限流,還是直接將限流功能本身降級(jí)掉。
  • 另外還有不同的策略:簡(jiǎn)單計(jì)數(shù)、令牌桶等,大部分場(chǎng)景下其實(shí)簡(jiǎn)單計(jì)數(shù)已經(jīng)夠用了,但如果需要支持突發(fā)流量等場(chǎng)景時(shí),可以采用令牌桶等方案。還需要考慮根據(jù)什么限流,比如是IP、接口、用戶維度、還是請(qǐng)求參數(shù)中的某些值,這里可以采用表達(dá)式,相對(duì)比較靈活。

穩(wěn)定性

穩(wěn)定性是網(wǎng)關(guān)非常重要的一環(huán),監(jiān)控、告警需要做的很完善才可以,比如接口調(diào)用量、響應(yīng)時(shí)間、異常、錯(cuò)誤碼、成功率等相關(guān)的監(jiān)控告警,還有線程池相關(guān)的一些,比如活躍線程數(shù)、隊(duì)列積壓等,還有些系統(tǒng)層面的,比如CPU、內(nèi)存、FullGC這些基本的。

網(wǎng)關(guān)是所有服務(wù)的入口,對(duì)于網(wǎng)關(guān)的穩(wěn)定性的要求相對(duì)于其他服務(wù)會(huì)更高,最好能夠一直穩(wěn)定的運(yùn)行,盡量少重啟,但當(dāng)新增功能、或者加日志排查問題時(shí),不可避免的需要重新發(fā)布,因此可以參考zuul的方式,將所有的核心功能都基于不同的攔截器實(shí)現(xiàn),攔截器的代碼采用Groovy編寫,存儲(chǔ)到數(shù)據(jù)庫(kù)中,支持動(dòng)態(tài)加載、編譯、運(yùn)行,這樣在出了問題的時(shí)候能夠第一時(shí)間定位并解決,并且如果網(wǎng)關(guān)需要開發(fā)新功能,只需要增加新的攔截器,并動(dòng)態(tài)添加到網(wǎng)關(guān)即可,不需要重新發(fā)布。

熔斷降級(jí)

熔斷機(jī)制也是非常重要的一項(xiàng)。若某一個(gè)服務(wù)掛掉、接口響應(yīng)嚴(yán)重超時(shí)等發(fā)生,則可能整個(gè)網(wǎng)關(guān)都被一個(gè)接口拖垮,因此需要增加熔斷降級(jí),當(dāng)發(fā)生特定異常的時(shí)候,對(duì)接口降級(jí)由網(wǎng)關(guān)直接返回,可以基于Hystrix或者Resilience4j實(shí)現(xiàn)。

日志

由于所有的請(qǐng)求都是由網(wǎng)關(guān)處理的,因此日志也需要相對(duì)比較完善,比如接口的耗時(shí)、請(qǐng)求方式、請(qǐng)求IP、請(qǐng)求參數(shù)、響應(yīng)參數(shù)(注意脫敏)等,另外由于可能涉及到很多微服務(wù),因此需要提供一個(gè)統(tǒng)一的traceId方便關(guān)聯(lián)所有的日志,可以將這個(gè)traceId置于響應(yīng)頭中,方便排查問題。

隔離

比如線程池、http連接池、redis等應(yīng)用層面的隔離,另外也可以根據(jù)業(yè)務(wù)場(chǎng)景,將核心業(yè)務(wù)部署帶單獨(dú)的網(wǎng)關(guān)集群,與其他非核心業(yè)務(wù)隔離開。

網(wǎng)關(guān)管控平臺(tái)

這塊也是非常重要的一環(huán),需要考慮好整個(gè)流程的用戶體驗(yàn),比如接入到網(wǎng)關(guān)的這個(gè)流程,能不能盡量簡(jiǎn)化、智能,比如如果是dubbo接口,我們可以通過到git倉(cāng)庫(kù)中獲取源碼、解析對(duì)應(yīng)的類、方法,從而實(shí)現(xiàn)自動(dòng)填充,盡量幫用戶減少操作;另外接口一般是從測(cè)試->預(yù)發(fā)->線上,如果每次都要填寫一遍表單會(huì)非常麻煩,我們能不能自動(dòng)把這個(gè)事情做掉,另外如果網(wǎng)關(guān)部署到了多個(gè)可用區(qū)、甚至不同的國(guó)家,那這個(gè)時(shí)候,我們還需要接口數(shù)據(jù)同步功能,不然用戶需要到每個(gè)后臺(tái)都操作一遍,非常麻煩。

這塊個(gè)人的建議是直接參考阿里云、aws等提供的網(wǎng)關(guān)服務(wù)即可,功能非常全面。

其他

其他還有些需要考慮到的點(diǎn),比如接口mock,文檔生成、sdk代碼生成、錯(cuò)誤碼統(tǒng)一、服務(wù)治理相關(guān)的等,這里就不累述了。

總結(jié)

目前的網(wǎng)關(guān)還是中心化的架構(gòu),所有的請(qǐng)求都需要走一次網(wǎng)關(guān),因此當(dāng)大促或者流量突增時(shí),網(wǎng)關(guān)可能會(huì)成為性能的瓶頸,而且當(dāng)網(wǎng)關(guān)接入的大量接口的時(shí)候,做好流量評(píng)估也不是一項(xiàng)容易的工作,每次大促前都需要跟業(yè)務(wù)方一起針對(duì)接口做壓測(cè),評(píng)估出大致的容量,并對(duì)網(wǎng)關(guān)進(jìn)行擴(kuò)容,而且網(wǎng)關(guān)是所有流量的入口,所有的請(qǐng)求都是由網(wǎng)關(guān)處理,要想準(zhǔn)確的評(píng)估出容量很復(fù)雜。可以參考目前比較流行的ServiceMesh,采用去中心化的方案,將網(wǎng)關(guān)的邏輯下沉到sidecar中,

sidecar和應(yīng)用部署到同一個(gè)節(jié)點(diǎn),并接管應(yīng)用流入、流出的流量,這樣大促時(shí),只需要對(duì)相關(guān)的業(yè)務(wù)壓測(cè),并針對(duì)性擴(kuò)容即可,另外升級(jí)也會(huì)更平滑,中心化的網(wǎng)關(guān),即使灰度發(fā)布,但是理論上所有業(yè)務(wù)方的流量都會(huì)流入到新版本的網(wǎng)關(guān),如果出了問題,會(huì)影響到所有的業(yè)務(wù),但這種去中心化的方式,可以先針對(duì)非核心業(yè)務(wù)升級(jí),觀察一段時(shí)間沒問題后,再全量推上線。另外ServiceMesh的方案,對(duì)于多語(yǔ)言支持也更友好。

責(zé)任編輯:未麗燕 來源: Github
相關(guān)推薦

2017-03-25 20:30:15

2017-12-25 11:15:06

JavaArray數(shù)組

2020-07-07 10:50:19

Python丄則表達(dá)文本

2025-04-22 02:00:00

芯片晶圓光刻機(jī)

2022-01-17 08:52:32

CPUCPU工具顯卡

2022-03-28 11:00:34

JVMJava對(duì)象

2016-08-03 16:01:47

GitLinux開源

2021-11-08 07:11:49

決策樹數(shù)據(jù)分類器

2022-04-19 11:25:31

JVMZGC垃圾收集器

2020-04-10 15:05:09

深度學(xué)習(xí)人工智能蒸餾

2018-01-26 14:35:16

程序員入門經(jīng)歷

2019-06-23 15:21:42

Google谷歌平板

2021-08-02 06:49:46

Flutter Router安全

2021-05-11 11:08:37

電腦病毒軟件

2022-04-21 08:20:33

CPU換蓋CPU

2021-10-25 05:54:59

SSD固態(tài)硬盤存儲(chǔ)

2021-10-15 22:19:15

電腦藍(lán)屏重啟

2021-02-06 22:10:12

宏定義處理器代碼

2024-07-30 14:39:58

2021-08-12 07:01:23

FlutterRouter Android
點(diǎn)贊
收藏

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

精品久久久一区| 人人狠狠综合久久亚洲| 欧美成人猛片aaaaaaa| 欧美综合在线播放| 日本天堂影院在线视频| 日本不卡免费在线视频| 久久6免费高清热精品| 一区二区在线免费观看视频| 欧美黑人巨大xxxxx| 自拍偷在线精品自拍偷无码专区| 岛国一区二区三区高清视频| 欧美一级淫片免费视频黄| 97在线精品| 亚洲国内精品在线| 亚洲图色中文字幕| 国产夫妻在线播放| 亚洲视频小说图片| 欧美极品一区二区| 亚洲国产成人精品一区二区三区| 视频精品一区二区| 久久露脸国产精品| 色偷偷www8888| 男男gay无套免费视频欧美| 欧美一卡二卡三卡| 日韩av片网站| av日韩电影| 亚洲一区二区三区在线播放| 亚洲精品一区二区三区樱花 | 99re国产在线播放| 午夜视频网站在线观看| 一区二区国产精品| 欧美激情视频免费观看| 日韩在线视频网址| 欧美色女视频| 亚洲欧美成人网| 女性生殖扒开酷刑vk| 国产精品**亚洲精品| 欧美综合天天夜夜久久| 国产91在线视频观看| 懂色av一区| 亚洲黄色av一区| 国产成人三级视频| 伦xxxx在线| 国产精品久久午夜夜伦鲁鲁| 日韩av电影免费观看| 手机福利在线| 91在线云播放| 久久亚洲高清| 三区在线观看| 久久嫩草精品久久久精品一| 久久久久久久久一区| 天天色综合av| 成人国产精品免费| 国产日韩一区欧美| 女人18毛片水真多18精品| 国产999精品久久久久久绿帽| 国产精品最新在线观看| 在线观看日批视频| 精品一区二区日韩| 亚洲xxxx视频| 午夜老司机福利| 国产福利一区二区三区视频在线| 96久久精品| 亚洲精品国产av| 成人午夜私人影院| 精品不卡在线| 免费在线性爱视频| 日本一区二区不卡视频| 国产精品美女在线播放| 免费男女羞羞的视频网站在线观看| 亚洲精品一二三区| 日韩精品在线中文字幕| 丝袜美女在线观看| 亚洲成人一二三| 欧美韩国日本在线| 久久精品资源| 欧美成人在线直播| 少妇按摩一区二区三区| 国产欧美日韩免费观看| 久久精品国产综合| 国产一卡二卡在线| 日韩激情一二三区| 91视频88av| 亚洲三区在线播放| 国产精品家庭影院| 国产女主播自拍| 欧美精选视频一区二区| 欧美一级夜夜爽| 久久精品老司机| 天天天综合网| 26uuu亚洲国产精品| 国产精品无码一区| 丁香婷婷综合五月| 日韩欧美视频第二区| 免费的黄网站在线观看| 亚洲大片精品永久免费| 亚洲xxxx2d动漫1| 粉嫩av一区二区| 一区二区在线视频播放| 免费在线观看黄视频| 噜噜噜躁狠狠躁狠狠精品视频 | 国产在线播放精品| 在线观看欧美视频| 日本学生初尝黑人巨免费视频| 日本中文字幕一区二区视频| 国产传媒欧美日韩| eeuss影院在线观看| 亚洲一区电影777| 天堂在线资源视频| 色88888久久久久久影院| 按摩亚洲人久久| 亚洲精品男人的天堂| 国产精品伊人色| 久久久久一区二区| 免费污视频在线| 制服丝袜激情欧洲亚洲| 中文字幕免费高清| 亚洲精品一区二区妖精| 国产成人精品亚洲精品| 亚洲精品国产片| 中文字幕在线免费不卡| 成年人视频网站免费观看| 亚洲精品视频一二三区| 精品久久久av| 综合久久中文字幕| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美性xxxx极品hd满灌| 日本美女高潮视频| 亚洲涩涩av| 午夜精品一区二区三区在线播放| 国产日韩欧美一区二区东京热| 国产欧美一区二区精品秋霞影院 | 日韩av一二三| 欧美日韩电影一区二区| 三级在线观看视频| 亚洲成人教育av| 久久在线视频精品| 国产精品1区2区| 四虎免费在线观看视频| 在线观看欧美| 久久亚洲春色中文字幕| 国产精品无码一区二区桃花视频| 国产精品久久久久久久久免费樱桃| 日本在线视频www| 亚洲第一福利社区| 欧洲成人午夜免费大片| 日本福利片在线| 色综合天天综合网天天看片| 天堂久久久久久| 国产精品入口| 欧美精品一区在线发布| gogo亚洲高清大胆美女人体| 亚洲欧洲在线播放| 少妇无套内谢久久久久| 日本一区二区高清| 国产又粗又猛大又黄又爽| 中文字幕亚洲精品乱码| 147欧美人体大胆444| 综合图区亚洲| 亚洲国产成人精品女人久久久| 国产精品第9页| 久久免费午夜影院| 粉色视频免费看| 欧美成人精品| 久久99精品久久久久久久青青日本 | 韩国女主播成人在线观看| 成人黄色激情网| 国产午夜精品久久久久免费视| 欧美美女一区二区三区| 一起操在线播放| 粉嫩aⅴ一区二区三区四区 | 国产精品xx| 一本一本久久a久久精品综合小说| 免费在线观看av的网站| 亚洲欧美激情插 | 欧美精品第一页在线播放| 天天干天天摸天天操| 欧美中文字幕不卡| 欧美成人aaa片一区国产精品| 不卡在线视频中文字幕| 国产精品视频黄色| 国产精品hd| 欧美日韩在线一二三| 电影91久久久| 91av福利视频| 老司机av在线免费看| 亚洲国产精品系列| 亚洲无码精品在线播放| 亚洲伊人色欲综合网| 中文字幕免费视频| 国产精品乡下勾搭老头1| 美女日批免费视频| 国产精品传媒精东影业在线 | 不用播放器的免费av| 亚洲毛片一区| 亚洲综合激情五月| 久久99国产精品视频| 成人动漫视频在线观看免费| 神马久久资源| 欧美激情按摩在线| 999国产在线视频| 亚洲缚视频在线观看| 亚洲一级特黄毛片| 欧美色播在线播放| 欧美三级 欧美一级| 国产精品网站在线| 免费无码一区二区三区| 国产精品一区2区| 一道本视频在线观看| 亚洲深夜影院| 成人国产在线看| 久久一区二区三区喷水| 美脚丝袜一区二区三区在线观看| 久久国产精品免费一区二区三区| 国产精品ⅴa在线观看h| 欧美另类老肥妇| 九色精品免费永久在线| 日本福利专区在线观看| 亚洲欧美精品一区| 欧美视频xxx| 欧美成人精精品一区二区频| 国产又黄又粗又长| 欧美日韩一区二区三区高清| 亚洲欧美综合自拍| 天天综合色天天综合| 久久激情免费视频| 一区二区在线观看免费| 黄色香蕉视频在线观看| 中文一区一区三区高中清不卡| 中文字幕国产专区| www日韩大片| 一二三不卡视频| 99久久精品99国产精品| 亚洲中文字幕一区| 成人国产在线观看| xfplay5566色资源网站| 成人午夜电影久久影院| 成人在线观看一区二区| 国产精品乡下勾搭老头1| 一二三av在线| 国产原创一区二区三区| √天堂资源在线| 国产一区二区三区四区在线观看| 污视频网址在线观看| 精品一区免费av| 91亚洲一区二区| 国产电影一区在线| 亚洲视频天天射| aa级大片欧美| 女人又爽又黄免费女仆| 国产喂奶挤奶一区二区三区| 久久国产柳州莫菁门| 国产精品天干天干在观线| 欧美一级特黄高清视频| 亚洲精品国产无天堂网2021| 久久久久久久久久久网| 亚洲成在人线免费| aaa人片在线| 欧美午夜影院一区| 国产又爽又黄又嫩又猛又粗| 在线综合亚洲欧美在线视频 | 亚洲欧美中文另类| 成年人视频在线观看免费| 精品久久国产精品| 爱情岛亚洲播放路线| 欧亚精品中文字幕| 欧洲午夜精品| 99在线观看| 蜜桃精品wwwmitaows| 亚洲日本japanese丝袜| 欧美高清日韩| 97成人在线观看视频| 免费黄网站欧美| 麻豆传媒在线看| www精品美女久久久tv| 三级黄色片在线观看| 亚洲综合视频在线观看| 国产精品免费精品一区| 欧美精品免费视频| 国产91久久久| 中文字幕亚洲天堂| 国产精品186在线观看在线播放| 欧美有码在线观看| 国产精品久久久久久av公交车| 国产呦系列欧美呦日韩呦| 成人亚洲一区二区| 国产精品久久久久久久乖乖| 视频一区中文字幕国产| 日本高清免费观看| 久久看人人爽人人| 一级黄色录像视频| 91福利在线看| 丁香六月天婷婷| 日韩在线观看网站| 欧美三级网站| 国产在线98福利播放视频| 日韩aaa久久蜜桃av| 婷婷视频在线播放| 久久经典综合| 在线中文字日产幕| 国产精品久久看| 天天干天天干天天干天天| 欧美一区二区三区日韩视频| 你懂的免费在线观看视频网站| 欧美精品手机在线| 国产亚洲欧美日韩精品一区二区三区| 国产91免费视频| 小小影院久久| 啊啊啊国产视频| 99re亚洲国产精品| 久久久久久久福利| 欧美疯狂性受xxxxx喷水图片| 日本不卡视频一区二区| 欧美精品videossex性护士| 电影91久久久| 天天干天天操天天干天天操| 日韩**一区毛片| 久久国产精品影院| 午夜精品福利一区二区蜜股av| 国产欧美综合视频| 色综合伊人色综合网站| 成人精品电影在线| 欧美大陆一区二区| 99成人在线| 五月天激情小说| 亚洲妇女屁股眼交7| 精品国产av鲁一鲁一区| 播播国产欧美激情| 久久久免费人体| 丝袜足脚交91精品| 日韩国产欧美在线视频| 巨胸大乳www视频免费观看| 婷婷久久综合九色综合绿巨人| 亚洲黄色精品视频| 欧美成人免费全部| 涩涩屋成人免费视频软件| 99热都是精品| 国产精品888| 成人免费看片98| 亚洲国产99精品国自产| 国产在线观看www| 久久国产精品一区二区三区四区| 91久久久久| 欧美性xxxx图片| 色婷婷激情一区二区三区| 经典三级在线| 国产精品欧美风情| 99久久激情| 国产人妻精品久久久久野外| 亚洲精品第1页| 亚洲精品福利网站| 97在线日本国产| 要久久电视剧全集免费| 日本男人操女人| 中文字幕av一区 二区| 91资源在线视频| 蜜臀久久99精品久久久无需会员 | 老司机精品视频导航| 久久av红桃一区二区禁漫| 日韩欧美美女一区二区三区| 青青草原av在线| 久久久久一区二区| 日本不卡高清视频| 欧美成人国产精品高潮| 亚洲精品电影网在线观看| 范冰冰一级做a爰片久久毛片| 日本在线观看一区| 激情深爱一区二区| 精品无码久久久久| 亚洲嫩模很污视频| 日日狠狠久久| 男女啪啪免费视频网站| 国产日韩欧美综合一区| 91丨porny丨在线中文 | 国产乱理伦片在线观看夜一区| 久久久美女视频| 亚洲视频在线视频| 国产精品中文| 欧美精品99久久| 中文字幕亚洲电影| 天堂在线资源网| 国产欧美中文字幕| 99精品视频免费观看| 女人十八毛片嫩草av| 欧美一区二区高清| 日韩欧美看国产| 男人天堂网站在线| 久久毛片高清国产| www.成人免费视频| 国产精品成人免费电影| 午夜精品久久久久99热蜜桃导演 | 国产在线观看网站| 亚洲伊人成综合成人网| 蘑菇福利视频一区播放| 日日骚一区二区三区| 亚洲午夜未删减在线观看 | 91小视频在线| 国产三级视频在线播放| 欧美中文字幕视频| 午夜电影亚洲|