国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

保姆級(jí)教程!Golang微服務(wù)簡(jiǎn)潔架構(gòu)實(shí)戰(zhàn)

共 5572字,需瀏覽 12分鐘

 ·

2022-03-10 02:40


導(dǎo)語?|?本文從簡(jiǎn)潔架構(gòu)的理論出發(fā),依托trpc-go目錄規(guī)范,簡(jiǎn)單闡述了整體代碼架構(gòu)如何劃分,具體trpc-go服務(wù)代碼實(shí)現(xiàn)細(xì)節(jié),和落地步驟,并討論了和DDD的區(qū)別。文章源于我們組內(nèi)發(fā)起的go微服務(wù)最佳實(shí)踐的第一部分,希望從開發(fā)和閱讀學(xué)習(xí)中總結(jié)出一套go微服務(wù)開發(fā)的方法論,互相分享一下在尋求最佳的實(shí)踐過程中的思考和取舍的過程。本次主要討論目錄如何組織,目錄的組織其實(shí)就是架構(gòu)的設(shè)計(jì),一套通用架構(gòu)的設(shè)計(jì),可以讓開發(fā)專注于邏輯設(shè)計(jì)和具體場(chǎng)景的代碼設(shè)計(jì),好的架構(gòu)設(shè)計(jì)可以預(yù)防代碼的腐敗,并且相關(guān)的規(guī)范操作簡(jiǎn)單,可以按步驟根據(jù)情況分步落地,可操作性強(qiáng)。


引言


現(xiàn)在有了高效的go語言和成熟的trpc-go框架和一系列的中臺(tái)SDK,發(fā)布平臺(tái),一個(gè)新手也可以通過教程快速寫出簡(jiǎn)單功能的微服務(wù),以此入門,開始go的微服務(wù)開發(fā),并應(yīng)對(duì)大部分開發(fā)需求。


但是一旦開始了就會(huì)發(fā)現(xiàn)隨著需求的增加我們常常不得不去花很多時(shí)間去維護(hù)代碼,變更已有的邏輯,不斷的抽象,提高部分常用能力的可擴(kuò)展性,但往往隨著多個(gè)人在同一份微服務(wù)代碼里協(xié)作,維護(hù)這件事情越來越難做了,不僅僅是因?yàn)榇蠹业某橄箫L(fēng)格不同,對(duì)于抽象的標(biāo)準(zhǔn),模塊的分割,數(shù)據(jù)的流向,分層的邏輯都是不同的,看每個(gè)服務(wù)都像是一個(gè)新的生命,千姿百態(tài)。


千姿百態(tài)的代碼庫(kù)不是我們希望的,我們希望在代碼的架構(gòu)上保持易讀性、可擴(kuò)展性、可維護(hù)性,這樣除了對(duì)于代碼細(xì)節(jié)的一致性(代碼標(biāo)準(zhǔn))外,還希望有架構(gòu)上的標(biāo)準(zhǔn),讓開發(fā)專注于邏輯設(shè)計(jì)和具體場(chǎng)景的代碼設(shè)計(jì),在海量之道的知識(shí)下把服務(wù)相關(guān)內(nèi)容做好,而不是將時(shí)間和精力浪費(fèi)在糾結(jié)如何重新組織和解亂麻、重構(gòu)等工作上,如果每個(gè)服務(wù)的架構(gòu)都足夠簡(jiǎn)潔清晰,團(tuán)隊(duì)內(nèi)部每個(gè)倉(cāng)庫(kù)都像是自己寫的,上手也會(huì)很快,團(tuán)隊(duì)的效率就會(huì)幾何的速度提升。



一、 開發(fā)現(xiàn)狀


不同的業(yè)務(wù)場(chǎng)景不太一樣,在增值的業(yè)務(wù)場(chǎng)景下,大部分的需求邊界或者服務(wù)全部職能一開始并不能確定,一般就是一個(gè)小需求開始的微服務(wù),后續(xù)可能隨著業(yè)務(wù)的增長(zhǎng)慢慢變得復(fù)雜的,仿佛是從一顆小樹苗漸漸長(zhǎng)成一顆枝繁葉茂的大樹,可能一開始這個(gè)服務(wù)的職責(zé)很單一,很簡(jiǎn)單,一個(gè)service搭配一個(gè)logic就ok了,但后面加入了各種依賴,logic就開始變復(fù)雜,更可怕的是,因?yàn)閬硪粋€(gè)需求做一個(gè)需求(假設(shè)最壞的情況下無法預(yù)測(cè)產(chǎn)品的需求),對(duì)于落后的開發(fā)模式,或者沒有架構(gòu)概念來說,多一個(gè)需求,無非就是加個(gè)函數(shù),加個(gè)分支,需要啥,import啥就完事了,漸漸地,絕大多數(shù)服務(wù)成為:


  • 沒有合理分包,或者僅邏輯職責(zé)分包(分目錄)


  • 面向過程編程,函數(shù)調(diào)用鏈很長(zhǎng),在各種包之間穿插。


  • 沒有依賴注入,依賴是以全局引入的方式存在,作用域很大,潛在的并發(fā)問題。


最終導(dǎo)致


  • 不通用,一切都不通用,每次修改一個(gè)邏輯部分可能要牽扯到多個(gè)函數(shù)調(diào)用的地方去修改參數(shù)關(guān)系。


  • 測(cè)試用例難寫,import進(jìn)來的函數(shù),是mock呢還是不mock呢,mock函數(shù)一個(gè)個(gè)寫,monkey mock是否合理?


  • 每個(gè)模塊不獨(dú)立,看似按邏輯分了模塊,比如order_hanlder,conf,XXX_helper,database等,但沒有明確的上下層關(guān)系,每個(gè)模塊里可能都存在配置讀取,外部服務(wù)調(diào)用,協(xié)議轉(zhuǎn)換等。


先看目前的微服務(wù)代碼狀態(tài),截幾個(gè)常見的微服務(wù)目錄組織風(fēng)格:



四種目前常見的微服務(wù)目錄組織方式,從左至右分別為1,2,3,4,可以看到:


  • 服務(wù)1除了main全部都放在logic中,logic實(shí)際上已經(jīng)職責(zé)不清了。


  • 服務(wù)2全部平鋪式的,為什么作者要這么干,因?yàn)樗麑懥撕芏鄊onkey func mock,因?yàn)闆]有抽象,不同函數(shù)之間調(diào)用導(dǎo)致很多函數(shù)的mock需要復(fù)用,但測(cè)試文件中的內(nèi)容不支持import,所以為了避免底層邏輯函數(shù)要重復(fù)在不同包里寫mock,干脆平鋪了。


  • 服務(wù)3常見組織方式,以邏輯為單元進(jìn)行模塊分包解耦,基本符合單一職責(zé)原則,但這種微服務(wù)隨著需求的增長(zhǎng)會(huì)產(chǎn)生網(wǎng)狀調(diào)用的問題。


  • 服務(wù)4對(duì)外部調(diào)用有一定抽象的目錄設(shè)計(jì),但組織方式并不一眼清晰,沒有合理的分包,邏輯代碼寫在接入層。


(一)沒有架構(gòu)



如上述例子中,大多數(shù)服務(wù)沒有架構(gòu)上的概念,多數(shù)業(yè)務(wù)是以邏輯單元的方式去分包(分目錄),每個(gè)包之間關(guān)系是平級(jí)關(guān)系,每個(gè)包的邏輯獨(dú)立,理論上使用包功能時(shí)import進(jìn)來即可,隨著服務(wù)的成長(zhǎng):


  • 服務(wù)不同包函數(shù)之間的調(diào)用慢慢演變成網(wǎng)狀結(jié)構(gòu)。


  • 數(shù)據(jù)流的流向和邏輯的梳理變得越來越復(fù)雜。


  • 很難不看代碼調(diào)用的情況下搞清楚數(shù)據(jù)流向。


這是目前常見的一個(gè)實(shí)際問題,業(yè)務(wù)增長(zhǎng)過程中,微服務(wù)很容易長(zhǎng)成一個(gè)垃圾山,開發(fā)心累,改不動(dòng)的情況出現(xiàn)。


所謂的代碼腐敗即在代碼增量到一定程度后,服務(wù)內(nèi)部的函數(shù)調(diào)用組織是網(wǎng)狀結(jié)構(gòu),沒有層級(jí)結(jié)構(gòu),即使微觀上可能是解耦的,但宏觀上是亂成一團(tuán)的,DDD等設(shè)計(jì)思想都是為了解決這樣的問題。



(二)沒有分層


常見的微服務(wù)只有分包沒有分層的概念,數(shù)據(jù)流沒有分層,因?yàn)闆]有合理的分層,自然沒有上下調(diào)用的關(guān)系,最多就是邏輯上分個(gè)包而已,用到啥import進(jìn)來就完善,沒有層次的系統(tǒng)就是一盤散沙,一盤散沙的接口,互相隨意調(diào)用,關(guān)系亂成一團(tuán),這就是日后維護(hù)和調(diào)試的噩夢(mèng)。



二、 探索最佳架構(gòu)實(shí)踐


(一)簡(jiǎn)潔架構(gòu)



出自《架構(gòu)整潔之道》,此架構(gòu)模型是不區(qū)分前后端的廣義上的抽象架構(gòu)我們希望每個(gè)微服務(wù)的代碼在微觀上也是符合簡(jiǎn)潔架構(gòu)。


在后臺(tái)服務(wù)的場(chǎng)景下,以trpc-go目錄規(guī)范可以抽象出一種金字塔結(jié)構(gòu)的架構(gòu):



這種結(jié)構(gòu)的優(yōu)勢(shì)體現(xiàn)在:


  • 標(biāo)準(zhǔn)結(jié)構(gòu):層+模塊


  1. 結(jié)構(gòu)分層,每層之間劃分模塊。

  2. 數(shù)據(jù)流向固定,自上而下單一方向。

  3. 架構(gòu)清晰,需求代碼增長(zhǎng)是結(jié)構(gòu)化的,組織關(guān)系不是網(wǎng)狀。


  • 一致性


  1. 架構(gòu)通用,可以統(tǒng)一規(guī)范。

  2. 協(xié)作開發(fā)時(shí)不同服務(wù)的架構(gòu)一樣,無理解成本。


  • 易于操作


  1. 相關(guān)概念簡(jiǎn)單,易于操作,符合開發(fā)直覺,便于正確分類代碼。

  2. 不涉及領(lǐng)域建模等額外問題。


  • 減緩代碼膨脹


  1. 分層將代碼上升或下層,以三層的結(jié)構(gòu)可以一定程度上降低每一層的代碼膨脹的速度。



(二)目錄規(guī)范



分層按數(shù)據(jù)流向分為接口層(網(wǎng)關(guān)層)、邏輯層,外部依賴層,劃分方式和理解成本都不會(huì)很高,詳細(xì)如下:


  • gateway


  • 接口實(shí)現(xiàn)的地方,服務(wù)接口入口處,對(duì)應(yīng)trpc-go的service。


  • 只進(jìn)行協(xié)議解析轉(zhuǎn)換,協(xié)議的整理,不涉及業(yè)務(wù)邏輯。



  • logic


  • 服務(wù)核心業(yè)務(wù)邏輯實(shí)現(xiàn)的地方。


  • 內(nèi)部實(shí)現(xiàn)分模塊分包。



  • repo


  • 外部依賴層,包括外部數(shù)據(jù)庫(kù)、RPC調(diào)用等。


  • 每個(gè)包提供抽象接口,將外部數(shù)據(jù)調(diào)用并整理后以接口的方式提供給logic。


  • 僅做外部調(diào)用和數(shù)據(jù)整理,不包含業(yè)務(wù)邏輯。



  • entity


  • 貫穿整個(gè)服務(wù)的數(shù)據(jù)結(jié)構(gòu),類似常量,錯(cuò)誤碼。


  • 貧血模型,即僅包含數(shù)據(jù)結(jié)構(gòu)讀寫方法的對(duì)象。



  • 防腐層


  • 每層對(duì)外暴露的都以抽象接口方式,用依賴倒置的方式實(shí)現(xiàn)每層之間的防腐。


  • 抽象接口天然可以gomock生成樁代碼,上層單測(cè)時(shí)只需要用下層對(duì)應(yīng)的樁代碼mock下層依賴即可。



三、 實(shí)現(xiàn)規(guī)范



在實(shí)踐過程將代碼目錄按標(biāo)準(zhǔn)劃分歸類只是第一步,重要的是層與層之間的隔離和模塊與模塊之間的解耦,所以需要用到依賴倒置、依賴注入、封裝、測(cè)試規(guī)范來實(shí)現(xiàn)具體的代碼,其中測(cè)試規(guī)范是反向校驗(yàn)代碼設(shè)計(jì)是否合格的一把尺子,如果每個(gè)接口無法使用gomock打樁,那么依賴倒置就是沒有做好。


(一)依賴倒置、接口隔離


  • 依賴倒置


  • 上層模塊不應(yīng)該依賴底層模塊,它們都應(yīng)該依賴于抽象。


  • 抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象。



  • 接口隔離


  • 客戶端不應(yīng)該依賴它不需要的接口。


  • 模塊間的依賴應(yīng)該建立在最小的接口之上。


實(shí)現(xiàn)要求:不同層之間對(duì)外的接口一律以interface的方式提供,并且單一職責(zé)的設(shè)計(jì),接口盡可能簡(jiǎn)單清晰,接口文件單獨(dú)存放,不放在具體實(shí)現(xiàn)的文件中,依賴參數(shù)定義和接口聲明放在一起。


例,msg包下api.go定義消息接口:




(二)依賴注入


依賴注入(DI,Dependency Injection)指的是實(shí)現(xiàn)控制反轉(zhuǎn)(IOC,Inversion of Control)的一種方式,其實(shí)很好理解就是內(nèi)部依賴什么,不要在內(nèi)部創(chuàng)建,而是通過參數(shù)由外部注入。例:



  • 內(nèi)部封裝


  • 高內(nèi)聚低耦合。


  • 合理的抽象函數(shù),分子函數(shù),聚類等。


例:




(三)不引入gomock以外的mock包


如果一定要monkey mock來對(duì)函數(shù)打樁時(shí), 說明代碼沒有符合接口原則。并且Monkey mock的mock函數(shù)不可導(dǎo)出 在每個(gè)調(diào)用的此函數(shù)的包內(nèi)單測(cè)時(shí),都需要重新寫一遍mock。


Gomock樁代碼可自動(dòng)生成,上層需要mock下層依賴時(shí),只需要將mock的樁作為依賴注入即可。




(四)配置(遠(yuǎn)程配置)


現(xiàn)在幾乎每個(gè)服務(wù)除了框架配置外,會(huì)接入遠(yuǎn)程配置(七彩石配置),讀取遠(yuǎn)程配置的邏輯幾乎每個(gè)服務(wù)都要重新實(shí)現(xiàn)一遍,因?yàn)榕渲玫淖罱K輸出一定是一個(gè)個(gè)性化的結(jié)構(gòu)體(每個(gè)服務(wù)的配置肯定都不一樣),所以很難用一套代碼解決,這里采用了一個(gè)包替換的方式,將出口的結(jié)構(gòu)體通過引入不同的config entity定義,來實(shí)現(xiàn)代碼的通用(僅是通用,還實(shí)現(xiàn)不了零copy)


  • 每個(gè)服務(wù)一個(gè)遠(yuǎn)程配置。


  • 遠(yuǎn)程配置為json格式(yaml一樣,內(nèi)部統(tǒng)一即可)


  • 遠(yuǎn)程配置定義在entity/config包中,結(jié)構(gòu)體為Config。


這樣可以復(fù)用如下遠(yuǎn)程配置實(shí)現(xiàn):




這里如果服務(wù)有多個(gè)配置:


例:這個(gè)服務(wù)是重構(gòu)過的,之前沒有規(guī)范,所以弄了三個(gè)不同的遠(yuǎn)程配置(實(shí)際上一個(gè)即可):



因?yàn)镚et返回的結(jié)構(gòu)不同,所以不同配置使用不同的接口實(shí)例來實(shí)現(xiàn),每個(gè)不同結(jié)構(gòu)的配置在解析時(shí)是固定的結(jié)構(gòu)體,get返回也是固定的結(jié)構(gòu)體,在go模板特性未支持的情況下每個(gè)不同文件的配置,以不同實(shí)現(xiàn)impl來完成解析, 看起來代碼上有一些重復(fù),但這樣表達(dá)能保證清晰易懂,一般情況一個(gè)服務(wù)業(yè)務(wù)配置放在一個(gè)文件中。


一個(gè)服務(wù)一個(gè)配置,對(duì)于配置初始化等代碼的減少,有很大的幫助。



(五)配置的使用


接口化的配置很方便實(shí)現(xiàn)依賴注入,摒棄之前那種引入配置包,讀取全局配置的方式,通過依賴注入來實(shí)現(xiàn)配置作用域減小,避免很多并發(fā)問題:




四、落地方法


理想很豐滿現(xiàn)實(shí)很骨感,需求進(jìn)度和代碼質(zhì)量的矛盾,如果要一步到位,在實(shí)踐中等于一步也實(shí)行不下去。


實(shí)際情況往往是需求很緊急,并沒有太多時(shí)間給開發(fā)用來設(shè)計(jì)和優(yōu)化代碼,所以我們希望走第一步的時(shí)候不會(huì)占用開發(fā)太多的時(shí)間,最好時(shí)間分配可以從1:9的方式開始,并且在任何階段都可以以需求快速完成為優(yōu)先(即容忍一定程度的不遵守也不會(huì)破壞整體),即一開始你可以在90%的自由度上保持你自己舊的風(fēng)格,抽出10%的時(shí)間來設(shè)計(jì),這樣落實(shí)規(guī)范并不會(huì)很痛苦。



整體落地的步驟可以分為三個(gè)階段(不是必要經(jīng)歷的,時(shí)間不緊張可以直接按標(biāo)準(zhǔn)實(shí)現(xiàn)來)



根據(jù)當(dāng)前需求的緊急程度和個(gè)人時(shí)間安排來分階段實(shí)踐即可。



五、總結(jié)


微服務(wù)代碼架構(gòu)的一致性和實(shí)現(xiàn)規(guī)范的一致性可以帶來很多好處:



(一)為什么不是DDD


其實(shí)之所以要提DDD,是因?yàn)檫@是個(gè)避不開的問題,但答案其實(shí)已經(jīng)有了DDD是把控中大型項(xiàng)目的殺手锏,但使用DDD并不能使開發(fā)新項(xiàng)目變得更快,更方便,而是為了今后考慮,讓一個(gè)龐大的系統(tǒng)可以更快的迭代,更新,也就是說新的項(xiàng)目不用太在意領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),甚至新項(xiàng)目開始可以不用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)。


DDD的優(yōu)勢(shì)和劣勢(shì)



不同的業(yè)務(wù)可能面臨不一樣的問題,很多實(shí)踐中的需求往往不是一開始就有頂層設(shè)計(jì)的大需求、大項(xiàng)目,甚至很多微服務(wù)還沒確定自己領(lǐng)域內(nèi)的元素,就伴隨著業(yè)務(wù)死亡了,創(chuàng)建服務(wù)之初領(lǐng)域模型和邊界并不清楚,一個(gè)一個(gè)接口的新服務(wù),從一開始設(shè)計(jì)時(shí)就去事件風(fēng)暴、劃分元素、子域等也是不切實(shí)際的,所以越是微小的服務(wù),越是不需要DDD。很多時(shí)候我們不得不考慮團(tuán)隊(duì)的新成員快速成長(zhǎng)的問題,一個(gè)新同學(xué)或者實(shí)習(xí)生同學(xué)很難快速上手DDD,并把DDD落地到每個(gè)服務(wù)里,不能全部落地,這樣就會(huì)存在不同需求服務(wù)之間的不一致性,接手同事的服務(wù)時(shí),還是會(huì)存在理解結(jié)構(gòu)的心智負(fù)擔(dān)。



后記


整體的規(guī)則描述了大概,但是實(shí)踐的過程中,對(duì)于內(nèi)部具體細(xì)節(jié),函數(shù)的抽象,聚類,子模塊的劃分,都是經(jīng)驗(yàn)和實(shí)踐的積累,還是很考驗(yàn)一個(gè)人的代碼功底,這點(diǎn)架構(gòu)規(guī)范并不能給予幫助。


好的架構(gòu)或者說目錄設(shè)計(jì)像是垃圾分類的垃圾桶,預(yù)先設(shè)置好分類規(guī)則,垃圾就可以很輕松的進(jìn)行分類,分類好的垃圾就可以變廢為寶,成為可利用的資源,所以面對(duì)垃圾山一樣的代碼,重構(gòu)時(shí)我們首先要遵循正確的架構(gòu)進(jìn)行垃圾分類。


雖然進(jìn)行了有效的分層,但是對(duì)于logic層里面的模塊拆分并不要求嚴(yán)格,即提供了抽象接口之后,具體實(shí)現(xiàn)是細(xì)節(jié)問題,隨著需求的增長(zhǎng)實(shí)際上還是面臨增長(zhǎng)之后帶來復(fù)雜度關(guān)系,但由于拆分了外部調(diào)用在repo和數(shù)據(jù)實(shí)例在entity,微服務(wù)最終logic的代碼并不會(huì)膨脹的很快,三層結(jié)構(gòu)可以一定程度的減緩復(fù)雜度膨脹的速度,如果有一天膨脹大了,那么使用DDD進(jìn)行重構(gòu)可能是另一種解法。


本文是記錄一下在尋求最佳的實(shí)踐過程中的思考和取舍的過程,畢竟對(duì)于微服務(wù)代碼架構(gòu)的實(shí)踐沒有銀彈,不存在哪一種更好的情況,只有相對(duì)容易落地和簡(jiǎn)單有效的方案才比較通用


參考資料:

1.《架構(gòu)整潔之道》

2.《tRPC-Go目錄規(guī)范》

3.《go-clean-arch》



?作者簡(jiǎn)介


楊帥

騰訊后臺(tái)開發(fā)工程師

騰訊后臺(tái)開發(fā)工程師,深圳大學(xué)畢業(yè),目前負(fù)責(zé)社交增值商業(yè)廣告相關(guān)后臺(tái)開發(fā),主要開發(fā)語言為go語言,在渠道投放系統(tǒng)管理端建設(shè),和增值商業(yè)廣告中臺(tái)建設(shè)等領(lǐng)域積累了豐富的開發(fā)經(jīng)驗(yàn)。



?推薦閱讀


來,5W1H分析法幫你系統(tǒng)掌握緩存?。▓D文并茂)

模型也可以上網(wǎng)課?手把手教你在query-doc匹配模型上實(shí)現(xiàn)蒸餾優(yōu)化!

2種方式!帶你快速實(shí)現(xiàn)前端截圖

C++反射:深入探究function實(shí)現(xiàn)機(jī)制!



瀏覽 88
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 狠狠色五月| 午夜AV在线观看| 无码人妻一区二区三一区免费n狂飙 | 韩国成人无码视频| 免费操逼| 91丨九色丨熟女老版| 拍真实国产伦偷精品| 日韩精品成人av| 日本天堂网在线观看| 人妻被午夜福利AV| 三级片欧美| 操婊网| 无码成人精品| 夸克看成人片一级A片| 日韩二级片| 天天躁狠狠躁夜躁2024| 天堂中文在线资源| 成人三级片在线播放| 亚洲www在线| 天堂网2025| 亚洲欧洲久久| 人妻丝袜蕾丝高跟双飞| 成人无码免费毛片A片| 婷婷在线观看视频| 亚欧免费视频| 青青操久久| 国产亲子乱婬一级A片借种| 日本黄色大全| 大地8免费高清视频观看大全| 超碰人人在线| 国产suv精品一区二区6| 日韩成人在线免费观看| 在线无码电影| 久久嫩草国产成人一区| 成人精品免费无码毛片| 五月天无码免费视频| 亚洲成人无码片| 韩国中文字幕HD久久| 在线中文字幕网站| 三级片无码在线播放| 强开小嫩苞一区二区电影| 四川少妇bbbbbbbbb| 人人干人人操人人| 亚洲精品日韩综合观看成人91 | 久久丁香五月婷婷五月天激情视频 | 久久久91人妻无码精品蜜桃ID | 国产无遮挡又黄又爽在线观看| 国产熟女乱伦| 激情五月婷婷| 成人黄色电影在线观看| 中文字幕在线精品| 亚欧洲精品在线视频免费观看| 91爱逼| 91亚洲精品视频在线| 色香蕉在线视频| 国产黄色a片| 99re6热在线精品视频功能| 天天干天天添| 国产AV一区二区三区四区| 欧美a√| 久久精品苍井空免费一区二| 熟妇熟女一区二区三区| 亚洲秘无码一区二区三区| 亚洲高清毛片一区二区| 爱逼爱操| 日本无码片| 91大神免费在线观看| 五月天激情网站| 伊人操| 在线观看禁无码精品| 久久亚洲av| 一区成人| 69AV视频在线观看| 丁香五月婷婷啪啪| 国产黄色视频免费在线观看| 四色影视| 日本一区二区在线视频| 一级a一级a爰片免费免免中国A片 一级一级a免一级a做免费线看内裤 | 午夜亚洲福利视频| 2019中文字幕在线| 日本一级特黄电影| 黄色激情网站| 草逼免费视频| 色色成人网| 水果派解说在线观看| 色xxxx| 一本一道无码免费看视频| 91av免费| 欧美丰满美乳XXⅩ高潮www | 无码av在线播放| 91啪啪视频| 日韩欧美精品在线观看| 久久久久伊人| 日韩性爱视频网站| 亚洲第五页| 日韩中文字码无砖| 亚洲午夜久久久久久久久红桃| 男女啊啊啊| 一级二级三级无码| 狠狠躁18三区二区一区免费人| 日本久久精品18| 内射无码视频| 久久久久久久久久成人永久免费视频| 一级无码在线观看| 国产农村妇女精品一二区| 国产噜噜噜噜久久久久久久久 | 国内超碰| 91久久超碰| 无码人妻一区二区三一区免费n狂飙 | a√免费看| 大学生一级特黄大片| 肏逼综合网| 国产乱子伦无码视频免费| www.xxx国产| 91亚洲国产精品| 久久久久久免费| 韩国无码高清视频| 99国产综合| 国产精品码ls字幕影视| 一级黄色片网站| 少妇A片| 波多野59部无码喷潮| 久久综合在线| 蜜臀av在线播放| 国产精品99视频| 日本色电影在线观看| 自拍视频网| 人人操人人骑| 日韩啪| 日韩午夜AV| 波多野在线视频| 国产精视频| 东京热视频网| 女生被操网站| 日逼视频网站| 骚白虎一区| 人人操碰人人| 中国熟女视频| 乱伦乱伦乱伦中文字幕| 国产乱色精品成人免费视频| 成人大香蕉视频| 久久国产精品精品国产色婷婷| 免费日韩一级| 欧美一区三区| 毛片黄色| 粉嫩av懂色av蜜臀av分享| 欧美一级黃色A片免费看小优视频| 日韩人妻无码中文字幕| 一区二区毛片| 欧美一级在线| 麻豆三级片| 青青三级片| 亚洲无码人妻一区| 2024无码| 色视频免费在线观看| 亚洲三级电影在线观看| 丁香六月啪啪| 亚洲中文婷婷| 亚洲精品一区二区三区在线观看| 中文字幕亞洲高清手機版第617| 亚洲一级Av无码毛片久久精品| 超碰人人干| 正在播放李彩斐被洋老外| 影音先锋无码AV| 夜夜躁狠狠躁| 亚洲婷婷AV| 成人一区在线观看| 亚洲视频在线视频| 欧美精产国品一区二区区别 | 中文资源在线√8| 先锋影音成人资源| 免费Av在线| 你操综合| 熟妇人妻中文AV| 婷婷五月在线视频| 99久热| 88av在线观看| 欧美一级片网站| 91久久午夜无码鲁丝片久久人妻| 东京热无码一区| 91ThePorn国产在线观看| 日韩成人一区二区三区| 91精品一区| 99久久免费网| 女女女女女女BBBBBB手| 亚洲高清无码视频大全| 少妇搡BBBB搡BBB搡造水多/| 日本特黄AA片免费视频| 在线免费观看黄色电影| 欧美AⅤ| 久久青青婷婷| 青青草原视频在线免费观看| 性色A| 欧美在线无码| 第一福利成人AV导航| 外国一级片| 性欧美亚洲| 一级操逼大片| 欧美做受高潮白| 亚洲天堂高清| 啪啪国产| 亚洲天堂影院| 一本色道久久88综合无码| 五月天堂婷婷| 一卡二卡三卡无码| 亚州在线中文字幕经典a| 黄片免费视频观看| 久草这里只有精品| 中文免费高清在线观看视频| 亚洲综合免费观看高清完整版在线观 | 一区二区三区高清无码| 夜夜撸视频| 伊人9| 国产成人三级视频| 国产精品久久久久精| 去干网欧美| 在线观看国产| 大香伊人国产| 狠狠干2025| 欧美嗯啊| 日日摸日日| 丰满人妻一区二区三区视频在线不卡 | 成人在线日韩| 婷婷射图| 黄色片毛片| 三级无码视频| 97精品人妻一区| 五月天婷婷影院影院| 国产日韩欧美在线播放| 狠狠操综合网| 日本高清视频www| 亚洲.www| 欧美XXX黑人XYX性爽| 中文字幕无码在线视频| 欧美欧美欧美| 男女福利视频| 亚洲欧洲免费| 黄片伊人| 国产三级片视频在线观看| 丝袜三级片| 亚洲美女一区| 五月丁香色婷婷| 国产九九精品| 成人无码区亚洲AV久久| 国产嫩草精品A88AV| 小h片在线观看| 蝌蚪窝在线免费观看视频| 免费无码国产在线| 强伦轩人妻一区二区三区四区| 欧美在线一区二区三区| 国产喷潮| 成人午夜天堂| 日韩午夜AV| 日韩AV在线免费观看| 天天夜夜狠狠| 日本免费无码| 亚洲女人被黑人巨大进入| 免费无码视频一区二区| 中文字幕在线不卡视频| 五月大香蕉| 黄色网页在线免费观看| 国产精品揄拍一区二区| 日韩无码人妻视频| 不卡视频一区| 午夜成人免费视频| 日本久久久久久久久视频在线观看 | 国产免费一区二区三区最新不卡| 久久久国产一区二区三区| 欧美一级成人| 日韩成人一区二区三区| 亚洲国产高清在线观看视频| 一本一道久久综合| 欧美一区不卡| 久久精品99久久久久久久久| 国产欧美另类| 日韩精品一区二区三区中文在线 | 五月丁香色播| 午夜福利亚洲| 久久久18禁一区二区三区精品| 91丨PORN丨国产| 在线免费观看黄色片| 日本人人操人人摸| 亚洲AV秘无码不卡在线观看| 亚洲无码一本道| 木下凛凛子AV888AV在线观看| 男女啪啪啪网站| 91精品国产91久久久久久久久久| 精品久久久久久久| 青青草91在线| 亚洲无码一本道| 日韩免费高清在线视频| 日爽夜爽| 北条麻妃人妻中文无码| 国产变态另类| 另类欧美色图| 国产熟妇| 91免费成人视频| 手机成人在线视频| 青青草五月天色婷婷丁香| 免费一区视频| 黄色小视频免费观看| 国产精品9999久久久久仙踪林| 欧美操逼在线观看| 免费乱伦| 亚洲天堂视频网| 人人操人人骑| 91免费视频网站| 走光无码一区二区三区| 成人免费看片| 少妇无码中文| 九九小视频| 大香蕉伊在线观看| 黑人无码AV| 亚欧成人| 久草新| 大香蕉免费网站| 国产无码久久| AV电影在线免费观看| 91精品婷婷国产综合久久| 亚洲天堂AB| 三级A片视频| 日本一区二区三区在线视频| 中文字幕无码精品| 这里只有精品久久| 亚洲福利| 91亚洲精品视频在线| 日韩福利在线观看| 米奇色色色| 国产在线观看无码免费视频| AV天堂国产| 男女操逼视频网站| 在线视频亚洲| 刘玥一级婬片A片AAA| 久久久久久久性爱| 91精品国产综合久久久蜜臀图片| 91久久久久国产一区二区| 日本少妇电影| 亚洲精品中文字幕成人片| AV黄片| 北条麻妃三区| 7799精品视频| 中文免费高清在线| 内射无码专区久久亚洲| 激情无码av| 99热网| AV狠狠干| 中文区中文字幕免费看| 人妻在线你懂的| 91亚洲精品国偷拍自产在线观看 | 狠狠一区| 日韩AV成人无码久久电影| 午夜激情四射| 拍拍AV| 欧美成人精品欧美一级| 午夜撸一撸| 欧美日韩无码视频| 在线观看黄| 在线三级片视频| 中文亚洲字幕| 欧美黄色成人视频| 欧美日韩小视频| 亚洲欧美在线视频免费| 波多野结衣无码AV在线| 亚洲精品久久久久久久蜜桃| 成人网站av| 日韩三级片网址| 中文在线a√在线8| 成人无码日本动漫电影| 无码人妻精品一区二区三区99仓| 亚洲日日干| 国产亚洲一区二区三区| 国产一级A片在线观看| 亚洲乱码日产精品BD在线观看| 伊人网在线免费视频| 欧美精品日韩在线观看| 思思热99热| 97人妻精品一区二区三区视频 | 精品久久精品| 亚洲图片中文字幕| 91在线无码精品秘蜜桃入口 | 98国产精品| 黄色片网站视频| 国内精品久久久| 日韩第22页| 天天色av| 强伦人妻一区二区三区视频| 99久久精品国产一区色| 一级黄片免费| 亚洲AV成人无码久久精品麻豆| 牛牛在线精品视频| 久久久精品人妻| jlzzzjlzzz国产免费观看| 国产精品操逼| 777中文字幕| 大屌色片| 一区久久| 中文字幕无码一区二区| 国产亚洲一区二区三区| 性欧美日韩| 久久精品国产亚洲| 免费三级怡红院| 夜夜欢天天干| 色婷婷播放| 亚洲激情| 婷婷五月丁香色| 夜夜爽夜夜高潮夜夜爽| 91网站免费| 成人性爱视频免费在线观看| 亚洲va国产va天堂va久久 | 天堂成人AV| 中文字幕-区二区三区四区视频中国 | 婷婷五月天色播| 天天干夜夜爽| 婷婷精品在线视频| 女人高潮天天躁夜夜躁| 青青草视频黄| 国产亚洲视频免费观看| 午夜国产码网站码| 无码色| 91大铭哥| 91超碰人人操| 色婷婷电影网| 图片区视频区小说区| 男人V天堂| AV在线观看黄| 成人片无码| 中日韩中文字幕一区二区区别| 久久久久久精| 亚洲欧洲无码视频| 国产免费视频69| 亚洲一区二区精品| 精品国产123| 99无码视频| 老师搡BBBB搡BBB| 国产香蕉视屏| 国产乱妇乱子伦视频免费观看让女人| 国产在线你懂得| 国产女人18毛片18精品| 久久精品久久久久久久| 日韩性爱一区二区| 日本黄在线观看| 天堂性爱AV| 亚洲精品乱码久久久久| 永久免费无码中文字幕| 怡红院爽妇网| 天天视频黄| 特级西西444WWW无码视频兔费看| 翔田千里无码在线观看| 夜夜嗨AV一区二区三区| a片在线免费播放| 国产成人精品视频| 伊人春色av| 欧一美一婬一伦一区二区三区自慰国 | 精品素人在线| 无码高清在线| 丁香五月婷婷在线| 少妇性受XXXX黑人XYX性爽| 日韩人妻精品中文字幕| 俺也去五月婷婷| 天天操大香蕉| 免费激情网站| 国产人妻在线| 91人人妻人人做人人爽| 成人免费版欧美州| 欧美后门菊门交3p| 老鸭窝久久久| 成人在线观看网站| 亚洲日韩AV无码| 日韩AⅤ视频| 五月天婷婷激情| 日韩人妻AV| XX熟女HD| 久久久影院| 免费人成网站| 亚洲男女内射| 91成人在线观看学生和老师| 日韩性爱区| 91亚洲一区| 黄片免费网站| 亚洲一区在线免费观看| 蜜芽成人精品久久久视频| 久久91久久久久麻豆精品| 亚洲图片一区| 免费观看一级毛一片| 亚洲成人69| 久久午夜视频| 亚洲中文字幕人妻| 狠狠色噜噜狠狠狠7777米奇网| 人妻中文无码| 美女大香蕉| 黄91在线观看| 电影豹妹香港版| 亚洲无码99| 国产白丝视频| 思思热99热| 亚洲人人操| 老妇槡BBBB槡BBBB槡| 欧美精品久久久久久久久| www.色999| 狠狠撸在线观看| 秘亚洲国产精品成人网站| 国产青草视频在线观看| 99热国产精品| 偷拍亚洲| 永久m3u8在线观看| 亚洲AV综合色区无码国产播放| 国产精品久久久久久久久久王安宇| 国产传媒_色哟哟| 9999re| 成人aV免费观看| 怡红院男人天堂| 51妺嘿嘿午夜福利在线| 国产区视频| 国产精品国产精品国产| 在线色| 7799精品视频天天看| 操日韩美女| 欧美AⅤ| 国产成人亚洲综合A∨婷婷| 亚洲视频精品| 国产一区在线播放| 黄片无码| 日逼免费视频| 亚洲高清成人| 热久久最新| 色94色.欧美.setu| 色婷婷导航| 91成人无码视频| 黑人一区二区三区四区| 中国1级毛片| 狠狠操av| 无码一区二区三区四区五区六区| 可以看的毛片| 国产青草视频在线观看| 成人视频在线免费观看| 婷婷午夜精品久久久久久性色AV | av资源在线播放| 九九热视频在线观看| 色哟哟一区| 3级片网站| 国产午夜成人福利在线| 国产棈品久久久久久久久久九秃| 中文字幕在线观看有码| 粉嫩99精品99久久久久久特污兔 | 伊人狠狠蜜桃亚洲综合| 欧美熟妇搡BBBB搡BBBBB| 日韩国产综合| 香蕉黄色三级片| 在线一区二区三区四区| 俺去草| 欧美成人AA| 麻豆视频在线播放| 国产剧情一区二区av在线观看 | 国产成人亚洲精品| 日韩一级A| 详情:绿帽夫妻多人运动开淫啪-91n | 日一日干一干| 青青草乱伦视频| 日日夜夜天天综合| 激情AV在线观看| 大香蕉91| 欧美一级在线视频| 无码草逼| 在线免费观看成人网站| 欧美精品毛片| 日本三级网站| 青青草无码成人天堂免费| 亚洲无码高清视频在线| www高清无码| 狠狠操免费| 欧洲成人无码| 免费在线观看黄片| 大鸡巴在线观看| 99在线视频精品| 欧美人人| 亚洲人成电影网| 人人摸人人操人人看| 狠狠躁婷婷天天爽综合| 亚洲一区二区在线| 欧美操逼图片| 久草免费电影| 欧美亚洲三级| 少妇高潮在线| 成人无码网站在线观看| 特黄A级毛片| 国产无套在线| AV在线天堂| 高清国产mv在线观看| 91九色在线| 色婷婷18禁| 人人爽爽| 久草视频在线免费播放| 安徽妇搡BBBB搡BBB| 日本三级片在线| 国产成人aV| 日韩AV免费看| 琪琪色在线视频| 国产精品国三级国产a11| 欧美操逼大片| 清清草在线视频| 午夜精品18视频国产| 日韩免费在线视频观看| 国产AV资源| 3D动漫精品啪啪一区二区免费| 97人妻一区二区三区| 欧美日一区二区三区| 久久精品视频一区| 国产人妻一区二区精选| 国产在线精品自拍| 夜夜躁狠狠躁| 444444免费高清在线观看电视剧的注意| 国产一区二区三区18| 一本色道久久加勒比精品| 人妻少妇无码视频| 97自拍| 国产亚洲欧美精品综合在线| 毛片A级| 国产精品日韩高清北条麻衣| 激情人妻网站| 91大屁股| 在线看一区二区三区| 插菊花综合网亚洲| 操操小骚逼| 韩国精品久久久| 亚洲无码视频在线播放| 毛片二区| 国产不卡在线| 大香焦久久| 蜜桃av在线| 少妇高潮无码| 久青草资源福利视频| 无码欧美成人| jizz无码| 亚洲少妇熟女| 97国产精品视频人人做人人爱| 狠狠狠狠狠狠操| 91蝌蚪在线视频| 91人妻人人人| 欧美天天性| 黄色视频网站亚洲| 国产黄片自拍| 欧美性猛交一区二区三区精品| 国产丝袜视频| 亚洲A级片| 欧美一级性爱视频| 免费黄色视频网址| 日本一区二区三区在线播放| 亚洲精品成人无码AV在线| 无码区一区二区| 天堂在线观看av| 秋霞福利影院| 四色影视| 成人在线H| 日本精品视频一区二区| 先锋影音AV资源站| 天天爽夜夜操| 日韩国产传媒| 在线色综合| 婷婷情色| 在线播放高清无码| wwwxx国产| 五月丁香激情在线| 91香蕉视频免费| 男女啪啪啪网站| 国产一区二区三区四区在线观看| 日韩中字幕无码| 亚洲三级在线免费观看| 国产又爽又黄网站免费观看| 吃奶做爱视频| 激情无码在线观看| 伊人成人片| 亚洲淫秽视频| 四川少妇搡bbw搡bbbb| 91天天看| 91成人久久| 精品国产毛片| 日韩一级片免费| 91熟女乱伦| 少妇婷婷| 亚洲三级在线视频| 高清无码视频观看| 北条麻妃av在线播放| 无码人妻精品一区二区三区蜜桃91| 欧美成人精品在线观看| 日韩午夜av| 国产综合在线播放| 亚洲欧洲成人在线| 日本特级片| 婷婷五月天无码| 男女操网站| 久草免费在线视频| 日韩视频在线观看免费| 天天爱天天射| 国产在线小视频| 亚洲高清在线观看| 三级片青青草| av在线资源网站| 色99在线视频| 超碰人人干人人操| 久久久久一区二区三区| 欧美亚洲国产一区二区三区| 亚洲免费天堂| 国内不卡一卡二视频| 在线婷婷| 男女日皮的视频| 三级黄色毛片| 国产淫语| 中国熟妇XXXX18| 亚洲综合激情| 人人射| 国产黄色不卡| 欧洲三级片网站| 亚洲美女网站在线观看| 久久久无码电影| 99热999| 国产AⅤ无码一区二区| www.操| 国产三级片在线观看视频| 授乳奶水x88MAV| 西西西444www无码视| 亚洲性爱中文字幕| 大香蕉毛片| 欧亚无码| 骚妇一区| 免费无码一区二区三区四区五区| 三级成人AV| 操操操综合| 国产精品丝袜| 亚洲乱伦图片| av手机版| 91人妻人人澡人人爽人人 | 久久久久久久久久久久久自慰小片| 99re6热在线精品视频功能| 国产成人精品亚洲男人的天堂| 欧美老女人的逼| 日韩在线女优天天干| 91麻豆福利| 先锋资源av在线| 日韩在线视频免费| 猫咪AV成人永久网站| 露脸丨91丨九色露脸| 无码欧美| 亚洲人妻免费视频| 中文字幕资源在线| 91美女在线视频| 69亚洲精品| 麻豆久久久久| 国产在线中文字幕| 亚洲第二页| 一级黄色大片| 中文字幕高清无码在线播放| 国产又粗又长又硬又大毛苴茸图片 | 亚洲午夜无码精品专区| 青娱乐成人在线视频| 久久久77| 麻豆成人精品国产免费| aaa午夜| 7777av| 搡BBB,搡BBBB,搡BBBB| 国产精品HongKong麻豆| 能看的操逼网站| 一级AV在线| 无码秘蜜桃吴梦梦| 午夜精品电影| 在线观看黄色电影| a网站免费观看| 毛片黄色片| 亚洲综合二区| 黑人精品| 午夜成人视频在线观看| 亚洲艹逼| 一区二区免费| 囯产伦精一区二区三区四区| 欧美性综合网| 学生妹毛片视频| www.99视频| 久久久久久av| 色卻A| www.黄色大片| 国产麻豆一区二区三区| 欧美成人福利| 亚洲无码视频一区| 亚洲综合无码| 99re热在线视频| 中文字幕国产在线观看| 高清无码日本| 俄罗斯熟妇搡BBBB搡BBBB | 人人爱人人射| 久久久久国产| 中文字幕一二三| 欧美高潮| 91久久爱| 九九热精品视频在线播放| 婷婷五月天激情俺来也| 91麻豆国产在线| 鸡巴操骚逼视频| 亚洲免费观看高清完整版在va线 | 91操美女视频| 亚洲xxxxxx| 蜜臀av在线播放| 色色影院| 日逼视频免费看| 亚洲福利天堂| 大地影视官网第三页入口| 免费做a爰片77777| 99热免费在线观看| 亚洲婷婷三级成人网| 福利视频中文字幕| 天干天干天夜夜| 国产精品无码7777777| 性BBwBBwBBwBBw禽| 久久精品视频久久| 国产精品一级a毛视频| 黄色99| 无码免费一区二区| 天堂资源地址在线| 97人妻人人澡人人| 午夜福利国产| 九九这里有精品| 老司机永久免费91| 免费看黄视频| 免费18禁网站| 婷婷中文在线| 国产成人电影免费在线观看| 久久久久亚洲AV无码成人片| 日本欧美在线视频| 日本A片视频| 国产黄h| 日本黄色电影在线播放| 亚洲另类天堂| 在线观看的av| 亚洲激情性爱| 欧美在线视频一区二区| 北条麻妃中文字幕在线观看| 北条麻妃无码在线播放| 五月丁香六月情| 理论在线视频| 亚洲专区中文字幕| 久久ww| 国产精品国内自产| 亚洲无码一卡二卡| 成人午夜无码视频| 天天色免费视频| 亚洲色婷婷在线| 天天草天天干| 人妻中文无码| 亚洲色婷婷久久精品AV蜜桃| 国产三级视频在线| 亚洲成人视频免费观看| 91丝袜一区二区| 欧美性xxxxx| 婷婷中文网| 伊人大香蕉综合| 亚洲砖区| 在线无码免费视频| 亚州毛片| 看国产毛片| 日韩欧美国产综合| 亚洲AV动漫| 日本三级片视频不卡| 做a视频| 依人大香蕉| 91香蕉视频| 成人性爱视频在线| av色色| 18禁网站| 国产影视av| www.狠狠爱| 丁香五月在线观看| 丁香五月激情啪啪| 日韩av中文字幕在线| 国产黄色免费看| 久久精品99国产国产精| 又黄又爽的网站| 欧美中文字幕在线观看| 欧美一级日韩三级| 亚洲精品伊人| 日本人妻中文字幕| 丁香激情综合| 围产精品久久久久久久| 夜夜欢天天干| 91国产免费视频| 国产无码二区| 亚洲精品国产精品国自产观看| 一级婬片A片AAAAA毛片| 一区二区无码免费| 欧美另类色图| 国产精品人人| 国产精品成人99一区无码| 日本中文字幕在线观看| 色色网的五月天| 久久这里只有精品99| 午夜精品18视频国产17c| 国产成人AV一区二区三区在线观看 | av一级| 五月丁香综合网| 亚洲免费视频在线看| 自拍视频在线观看| 色视频在线观看| aav在线|