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

創(chuàng)業(yè)之初的技術(shù)題:如何構(gòu)建一個(gè)較為通用的業(yè)務(wù)技術(shù)架構(gòu)

開(kāi)發(fā) 架構(gòu)
我經(jīng)過(guò)很長(zhǎng)一段時(shí)間的實(shí)踐后摸索出來(lái)的業(yè)務(wù)技術(shù)架構(gòu),自認(rèn)為還算通用,而且能夠在一定程度上支撐易變的業(yè)務(wù)。當(dāng)然這套架構(gòu)肯定不是銀彈,不可能解決所有業(yè)務(wù)場(chǎng)景,所以最終還是需要圍繞到具體的場(chǎng)景加以借鑒。

1、通用架構(gòu)概述

創(chuàng)業(yè)之初,我們往往會(huì)為了快速迭代出產(chǎn)品,而選擇最簡(jiǎn)單的技術(shù)架構(gòu),比如LAMP架構(gòu),SSH三層架構(gòu)。這些架構(gòu)可以適應(yīng)初期業(yè)務(wù)的快速發(fā)展,但是,隨著業(yè)務(wù)變得越來(lái)越復(fù)雜,我們會(huì)發(fā)現(xiàn)這些架構(gòu)越來(lái)越難支撐業(yè)務(wù)的發(fā)展,出現(xiàn)在一個(gè)類(lèi)中寫(xiě)好幾千行代碼,一個(gè)方法中到處都是if else語(yǔ)句,如果中間遇到主程序猿離職,后面介入的程序猿幾乎無(wú)法理解這些代碼,到***,產(chǎn)品越來(lái)越難迭代,只能推翻重做。如果我們?cè)趧?chuàng)業(yè)初始就以一種適應(yīng)性較強(qiáng)的架構(gòu)去寫(xiě)代碼,后面就會(huì)少走很多彎路。下面的文章是我自己總結(jié)出來(lái)的一套架構(gòu),經(jīng)過(guò)實(shí)踐,適應(yīng)性還算不錯(cuò)。

2、通用架構(gòu)實(shí)現(xiàn)

總的來(lái)說(shuō)我的通用架構(gòu)還是以三層架構(gòu)為基礎(chǔ)進(jìn)行演變的,在經(jīng)典的三層架構(gòu)中,最上層的是controller,中間是service,下層是dao。在我的架構(gòu)中,最上層是網(wǎng)關(guān)層,controller只是網(wǎng)關(guān)的一種,中間是業(yè)務(wù)層,service只是業(yè)務(wù)層的入口,最下層是基礎(chǔ)層,dao只是基礎(chǔ)層中的數(shù)據(jù)存儲(chǔ)組件。

2.1、網(wǎng)關(guān)層

網(wǎng)關(guān)層本質(zhì)上是對(duì)不同的網(wǎng)絡(luò)協(xié)議的請(qǐng)求進(jìn)行處理,比如HTTP協(xié)議,TCP協(xié)議,當(dāng)然,也可以對(duì)其他協(xié)議進(jìn)行處理。具體見(jiàn)下圖:

2.1.1、HTTP請(qǐng)求

一般來(lái)自PC端和APP端的請(qǐng)求都是基于HTTP協(xié)議的,對(duì)于處理HTTP請(qǐng)求的方案,業(yè)內(nèi)已經(jīng)非常成熟了。首先,tomcat容器本身已經(jīng)把HTTP請(qǐng)求處理的復(fù)雜性封裝掉了,其次,spring mvc對(duì)請(qǐng)求處理提供了RESTful風(fēng)格的編碼方式,大大降低了開(kāi)發(fā)的復(fù)雜度。我們要做的就是對(duì)controller按照業(yè)務(wù)領(lǐng)域劃分,比如按照訂單、會(huì)員去劃分大的領(lǐng)域,里面的各種方法就是這個(gè)領(lǐng)域內(nèi)的操作。這里的controller就是統(tǒng)一網(wǎng)關(guān)處理層,對(duì)于每個(gè)controller的方法只做三件事,***,將請(qǐng)求參數(shù)解析出來(lái)并組裝成內(nèi)部參數(shù),第二調(diào)用下層服務(wù)執(zhí)行業(yè)務(wù)邏輯,第三組裝返回結(jié)果,對(duì)于異常情況,需要記錄異常堆棧日志并轉(zhuǎn)換錯(cuò)誤碼,堆棧信息不要暴露到調(diào)用方。

2.1.2、TCP請(qǐng)求

對(duì)于處理TCP請(qǐng)求的方案,業(yè)內(nèi)也已經(jīng)很成熟了,比如Netty。但是,TCP請(qǐng)求畢竟太底層,我們往往會(huì)基于TCP協(xié)議去開(kāi)發(fā)自己的協(xié)議。另外,很多分布式框架都是基于TCP協(xié)議的,比如RPC框架Dubbo,消息框架RocketMQ等等。從單機(jī)系統(tǒng)到分布式系統(tǒng),無(wú)非就是網(wǎng)關(guān)層多了處理TCP請(qǐng)求的邏輯,理論上底層的業(yè)務(wù)是無(wú)需感知自己到底是出于單機(jī)環(huán)境還是分布式環(huán)境,網(wǎng)關(guān)層的作用就是要屏蔽這種不同外部調(diào)用源的細(xì)節(jié)。在Dubbo服務(wù)端中,我們需要實(shí)現(xiàn)遠(yuǎn)程接口,并對(duì)遠(yuǎn)程服務(wù)調(diào)用進(jìn)行內(nèi)部的轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)的邏輯也很簡(jiǎn)單,首先是解析參數(shù)并組裝內(nèi)部參數(shù),然后調(diào)用業(yè)務(wù)層的接口執(zhí)行業(yè)務(wù)邏輯,***組裝返回結(jié)果,對(duì)于異常處理也需要在這里做掉,防止異常暴露給外部應(yīng)用。

2.1.3、小結(jié)

網(wǎng)關(guān)層本質(zhì)是對(duì)協(xié)議進(jìn)行處理,同時(shí)將業(yè)務(wù)邏輯收斂到網(wǎng)關(guān)層,而不是暴露給外部,當(dāng)內(nèi)部業(yè)務(wù)邏輯進(jìn)行重構(gòu)的時(shí)候,外部調(diào)用方就不需要感知這些變化,當(dāng)外部調(diào)用源增加時(shí),內(nèi)部業(yè)務(wù)邏輯不需要感知這種變化,從而將外部調(diào)用方和內(nèi)部業(yè)務(wù)邏輯進(jìn)行了解耦。

2.2、業(yè)務(wù)層

業(yè)務(wù)層是一個(gè)系統(tǒng),無(wú)論是單機(jī)系統(tǒng)還是分布式系統(tǒng)群中的某個(gè)業(yè)務(wù)系統(tǒng),業(yè)務(wù)層都是承載業(yè)務(wù)流程和規(guī)則的地方。業(yè)務(wù)層從外到內(nèi)包含三層:***層是業(yè)務(wù)服務(wù),第二層是業(yè)務(wù)流程,第三層是業(yè)務(wù)組件。具體如下圖:

2.2.1、業(yè)務(wù)服務(wù)

業(yè)務(wù)服務(wù)是業(yè)務(wù)層對(duì)外的統(tǒng)一門(mén)面,它由三方面組成:業(yè)務(wù)接口、入?yún)?、出參?/p>

a) 業(yè)務(wù)接口

一個(gè)業(yè)務(wù)接口代表一個(gè)領(lǐng)域的業(yè)務(wù)服務(wù),比如訂單域的業(yè)務(wù)服務(wù)就由接口OrderService表示,會(huì)員域的業(yè)務(wù)服務(wù)就由接口MemberService表示。接口可以按照?qǐng)?zhí)行性質(zhì)分為讀接口和寫(xiě)接口,比如OrderReadService和OrderWriteService。讀寫(xiě)分離的好處是可以對(duì)集群進(jìn)行讀寫(xiě)分組,從而管理流量,當(dāng)然,單機(jī)系統(tǒng)讀寫(xiě)分離意義不是太大。領(lǐng)域內(nèi)的操作則以業(yè)務(wù)接口中的方法的形式體現(xiàn),比如訂單域有下單createOrder,取消訂單cancelOrder等等操作。對(duì)于這些操作,盡量設(shè)計(jì)出有業(yè)務(wù)含義的方法,而不是增刪改查,當(dāng)然,對(duì)于一些簡(jiǎn)單的業(yè)務(wù),也只能增刪改查。

b)入?yún)?/strong>

接下來(lái),是入?yún)⒌脑O(shè)計(jì)。入?yún)?duì)于讀方法,比較簡(jiǎn)單,不做討論。對(duì)于寫(xiě)方法,我們將入?yún)⒃O(shè)計(jì)成有層次的數(shù)據(jù)模型。首先需要設(shè)計(jì)出公共的數(shù)據(jù)模型,比如訂單數(shù)據(jù)模型,商家數(shù)據(jù)模型,商品數(shù)據(jù)模型等,然后將這些數(shù)據(jù)模型和一些特定業(yè)務(wù)下的個(gè)性數(shù)據(jù)結(jié)合,組成Request對(duì)象,這個(gè)request對(duì)象按照不同業(yè)務(wù)操作不同而不同,對(duì)應(yīng)的返回結(jié)果就是response,它也是隨著不同業(yè)務(wù)返回的參數(shù)不同。

舉個(gè)例子,拿下餐飲訂單來(lái)說(shuō),首先,我們應(yīng)該識(shí)別出這些業(yè)務(wù)流程中一些比較基礎(chǔ)的數(shù)據(jù)模型,比如餐飲領(lǐng)域的菜品、桌位等,這些模型之所以說(shuō)是基礎(chǔ)模型,是因?yàn)椋还芟率裁床惋嬘唵?,菜品和桌位肯定是逃不了的,它們是可以被?fù)用的!因此,我們分別為這些基礎(chǔ)模型設(shè)計(jì)相對(duì)于的DO(Domian Object):DishDO(菜品)、BoardDO(桌位)等等,接下來(lái),我們?yōu)橄虏惋嬘唵卧O(shè)計(jì)一個(gè)請(qǐng)求對(duì)象DishOrderCreateRequest其中DishOrderCreateRequest內(nèi)部包含了DishDO和BoardDO,另外會(huì)包含一些特定的屬性,比如人數(shù)啊,折扣啊等等,這樣一來(lái)就能做到通用和靈活兼顧,DishOrderCreateRequest代表的個(gè)性化的靈活的業(yè)務(wù)入?yún)?,而DishDO和BoardDO等則代表了不易變化的基礎(chǔ)模型。

c) 出參

***,是出參的設(shè)計(jì)。對(duì)于寫(xiě)方法,一般出參比較簡(jiǎn)單。對(duì)于讀方法,出參往往是一個(gè)結(jié)構(gòu)與層次比較復(fù)雜的組合對(duì)象。比如查詢(xún)一個(gè)訂單,這個(gè)訂單有訂單基本信息,還有商品信息,收貨人地址信息等。在設(shè)計(jì)出參的時(shí)候,結(jié)構(gòu)上要設(shè)計(jì)成組合對(duì)象,但是真正查詢(xún)的時(shí)候,通過(guò)查詢(xún)選擇器,去查詢(xún)不同的組合對(duì)象。比如查詢(xún)選擇器設(shè)置商品查詢(xún)?yōu)閠rue,地址查詢(xún)?yōu)閒alse,那么這次查詢(xún)出的訂單就只包含商品,而不包含地址。

2.2.2、業(yè)務(wù)流程

業(yè)務(wù)流程其實(shí)就是對(duì)業(yè)務(wù)規(guī)則的解釋?zhuān)皇沁@種解釋使用代碼去實(shí)現(xiàn)的,我們要做的其實(shí)就是準(zhǔn)確翻譯這些業(yè)務(wù)規(guī)則,并維護(hù)好這些業(yè)務(wù)規(guī)則。

業(yè)務(wù)流程中可以大致分為三種動(dòng)作節(jié)點(diǎn),1、組裝參數(shù)節(jié)點(diǎn)  2、規(guī)則判斷節(jié)點(diǎn)  3、執(zhí)行動(dòng)作節(jié)點(diǎn),其中每個(gè)動(dòng)作節(jié)點(diǎn)都是一些業(yè)務(wù)代碼的片段。舉個(gè)例子,下餐飲訂單,我們***步就是將上層傳入的參數(shù)組裝出一個(gè)基礎(chǔ)的DishOrderDO(組裝參數(shù)節(jié)點(diǎn)),然后按照特定的規(guī)則去填充這個(gè)DishOrderDO(規(guī)則判斷節(jié)點(diǎn)),然后就是調(diào)用DAO去創(chuàng)建DishOrderDO(執(zhí)行動(dòng)作節(jié)點(diǎn))。

業(yè)務(wù)流程是最容易變化的地方,要想維護(hù)好業(yè)務(wù)流程并不容易,總的思想是將大的業(yè)務(wù)流程拆分成小的業(yè)務(wù)流程,抽出每個(gè)業(yè)務(wù)流程中共有的代碼片段,變成可維護(hù)的業(yè)務(wù)組件。

2.2.2、業(yè)務(wù)組件

a) 基礎(chǔ)組件

業(yè)務(wù)組件其實(shí)是將一些內(nèi)聚的可復(fù)用的代碼片段進(jìn)行封裝。和業(yè)務(wù)流程中的三種業(yè)務(wù)節(jié)點(diǎn)相對(duì)應(yīng),業(yè)務(wù)組件也分為三種:組裝參數(shù)組件 、規(guī)則判斷組件 、動(dòng)作執(zhí)行業(yè)務(wù)組件。業(yè)務(wù)組件的抽象往往是對(duì)業(yè)務(wù)有了深刻理解之后才進(jìn)行的,盲目地進(jìn)行業(yè)務(wù)組件的抽象,往往到頭來(lái)白忙活。

b) 能力

對(duì)業(yè)務(wù)組件進(jìn)行進(jìn)一步抽象,可以得到能力。業(yè)務(wù)能力是具有一定復(fù)用性的組件的組合,比如發(fā)短信能力=組裝短信參數(shù)組件+發(fā)短信組件。對(duì)于發(fā)短信能力,可以被不同的業(yè)務(wù)流程復(fù)用,比如訂單下單成功發(fā)短信,支付成功發(fā)短信,邏輯都是相似的,只有內(nèi)容不同。能力是一種粒度比較大的組件,粒度越大,往往復(fù)用性就越小,對(duì)能力的抽取,也是基于對(duì)特定業(yè)務(wù)深刻的理解,沒(méi)有一勞永逸的銀彈。

c)更高緯度的抽象

經(jīng)過(guò)本人的實(shí)踐,對(duì)于互聯(lián)網(wǎng)這樣的需求變化極快的場(chǎng)景,更高緯度的組件抽象往往性?xún)r(jià)比很低,不建議大家去做。

2.3、基礎(chǔ)層

基礎(chǔ)層包含兩個(gè)部分,***是接口定義,第二是技術(shù)組件。

2.3.1、接口定義

接口定義是按照不同的技術(shù)框架,同時(shí)結(jié)合業(yè)務(wù)需要,設(shè)計(jì)出合理的接口,對(duì)于業(yè)務(wù)組件來(lái)說(shuō),它們只會(huì)感知技術(shù)接口,而不會(huì)去感知技術(shù)實(shí)現(xiàn),我們也不應(yīng)該將具體的技術(shù)細(xì)節(jié)向上暴露,這也就是所謂的面向接口編程。技術(shù)接口往往是業(yè)務(wù)與技術(shù)之間的橋梁,接口本身是含有業(yè)務(wù)含義的,最常見(jiàn)的就是DAO接口,我們?cè)O(shè)計(jì)DAO接口的時(shí)候,不會(huì)設(shè)計(jì)成insert、update、query這樣業(yè)務(wù)無(wú)關(guān)的接口,而是設(shè)計(jì)成insertUser,updateUserById等等和業(yè)務(wù)相關(guān)的接口,同樣的道理,設(shè)計(jì)緩存接口的時(shí)候,也不能設(shè)計(jì)成put、get這樣的接口,而應(yīng)該設(shè)計(jì)成cacheUser,deprecateUser這樣的接口。

2.3.2、技術(shù)組件

單機(jī)系統(tǒng)的技術(shù)組件一般來(lái)說(shuō)分兩種,一種是通用的技術(shù)組件,比如:數(shù)據(jù)存儲(chǔ)、緩存、消息和調(diào)度任務(wù)、事務(wù)、鎖。一種是基礎(chǔ)設(shè)施,比如spring容器,tomcat容器。下面稍微談?wù)勍ㄓ眉夹g(shù)組件。

數(shù)據(jù)存儲(chǔ):數(shù)據(jù)存儲(chǔ)包括關(guān)系型數(shù)據(jù)庫(kù)、非關(guān)系型數(shù)據(jù)庫(kù)以及文件存儲(chǔ)系統(tǒng)。關(guān)系型數(shù)據(jù)庫(kù),比如MySQL,適合存放絕大部分業(yè)務(wù)數(shù)據(jù)。非關(guān)系型數(shù)據(jù)庫(kù),比如hbase,可以存放歷史日志,也可以對(duì)歷史的MySQL數(shù)據(jù)進(jìn)行歸檔。文件存儲(chǔ)系統(tǒng),一般都是基于Linux文件系統(tǒng),比如圖片、html文件等等,也有基于HDFS的,用于大數(shù)據(jù)分析。

緩存:緩存按響應(yīng)時(shí)間分,可以分為納秒級(jí)緩存,毫秒級(jí)緩存和百毫秒級(jí)緩存。納秒級(jí)緩存就是一般的基于本地內(nèi)存的緩存,比如encache,毫秒級(jí)緩存一般是集中式的內(nèi)存緩存,比如memcache,由于訪(fǎng)問(wèn)時(shí)遠(yuǎn)程調(diào)用,因此響應(yīng)時(shí)間會(huì)延長(zhǎng)到幾毫秒,百毫秒級(jí)緩存一般是集中式可持久化的緩存,比如redis,由于存在遠(yuǎn)程訪(fǎng)問(wèn)以及緩存擊穿導(dǎo)致的讀取持久化記錄,它的響應(yīng)時(shí)間會(huì)更長(zhǎng)些,到幾十甚至上百毫秒。單機(jī)系統(tǒng)一般用本地內(nèi)存緩存就夠了,當(dāng)緩存被擊穿的時(shí)候,直接訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。

消息和調(diào)度任務(wù):消息和調(diào)度任務(wù)本質(zhì)都是一種異步化的手段,區(qū)別在于消息無(wú)法控制異步的時(shí)間,而調(diào)度任務(wù)可以。一般,消息發(fā)送出去后,監(jiān)聽(tīng)消息的系統(tǒng)會(huì)立即收到消息,從而立即觸發(fā)業(yè)務(wù)邏輯的執(zhí)行,而調(diào)度任務(wù)則會(huì)按照調(diào)度規(guī)則,一次或者多次的執(zhí)行業(yè)務(wù)邏輯。單機(jī)系統(tǒng)中消息和調(diào)度任務(wù)用到的比較少,在做日志監(jiān)控的時(shí)候可能會(huì)用到消息,在進(jìn)行數(shù)據(jù)報(bào)表統(tǒng)計(jì)的時(shí)候可能會(huì)用到調(diào)度任務(wù)。

事務(wù):事務(wù)本質(zhì)都是基于數(shù)據(jù)庫(kù)去實(shí)現(xiàn)的,單機(jī)系統(tǒng)的事務(wù)就是依賴(lài)數(shù)據(jù)庫(kù)的事務(wù),我們可以使用spring-tx的事務(wù)模板進(jìn)行事務(wù)操作,在業(yè)務(wù)邏輯開(kāi)發(fā)中,一定要把握事務(wù)的大小,建議把業(yè)務(wù)比較緊密的一堆數(shù)據(jù)庫(kù)操作放在一個(gè)事務(wù)里,不要隨意的為每個(gè)方法都開(kāi)啟事務(wù)。

鎖:?jiǎn)螜C(jī)系統(tǒng)中主要用到兩種鎖:樂(lè)觀鎖和悲觀鎖。樂(lè)觀鎖依靠在數(shù)據(jù)庫(kù)的業(yè)務(wù)表加版本字段來(lái)實(shí)現(xiàn),每次更新都會(huì)去判斷版本是否變化,如果變化則需要重試,這種鎖的粒度比較小。悲觀鎖是基于JDK的Lock接口的,對(duì)一個(gè)業(yè)務(wù)流程進(jìn)行加鎖和釋放鎖的操作,鎖的粒度比較粗。

3、總結(jié)

以上是我經(jīng)過(guò)很長(zhǎng)一段時(shí)間的實(shí)踐后摸索出來(lái)的業(yè)務(wù)技術(shù)架構(gòu),自認(rèn)為還算通用,而且能夠在一定程度上支撐易變的業(yè)務(wù)。當(dāng)然這套架構(gòu)肯定不是銀彈,不可能解決所有業(yè)務(wù)場(chǎng)景,所以最終還是需要圍繞到具體的場(chǎng)景加以借鑒。

關(guān)于作者

吳極心,目前在杭州旅居星球擔(dān)任架構(gòu)師,專(zhuān)注于技術(shù)架構(gòu)治和產(chǎn)品架構(gòu)。

本文鏈接:http://www.codeceo.com/article/business-framework.html
本文作者:碼農(nóng)網(wǎng) – 吳極心

責(zé)任編輯:王雪燕 來(lái)源: 碼農(nóng)網(wǎng)
相關(guān)推薦

2016-11-10 14:34:15

創(chuàng)業(yè)業(yè)務(wù)技術(shù)架構(gòu)

2020-01-13 15:40:14

架構(gòu)師業(yè)務(wù)技術(shù)網(wǎng)關(guān)

2022-03-01 11:38:51

RPC框架后端

2019-05-15 09:26:50

后臺(tái)技術(shù)棧系統(tǒng)

2022-02-10 07:03:32

流量應(yīng)用架構(gòu)數(shù)據(jù)交換

2017-10-18 15:19:23

架構(gòu)師技術(shù)開(kāi)發(fā)

2017-04-27 14:26:55

CTO訓(xùn)練營(yíng),技術(shù)管理

2020-02-14 10:40:13

技術(shù)研發(fā)指標(biāo)

2014-01-23 11:11:31

2013-09-03 16:21:07

物聯(lián)網(wǎng)IoT數(shù)據(jù)中心

2023-10-20 09:49:46

AI技術(shù)

2014-10-08 11:26:14

2015-12-04 11:36:04

SaaS架構(gòu)設(shè)計(jì)可持續(xù)

2016-09-21 12:54:10

CAAS系統(tǒng)鏡像

2017-07-31 19:57:13

2014-02-13 17:21:23

技術(shù)創(chuàng)業(yè)

2018-05-14 09:00:23

NB架構(gòu)師素質(zhì)

2017-10-10 19:43:44

架構(gòu) 搭建 技術(shù)

2020-08-26 15:10:37

微服務(wù)中臺(tái)數(shù)據(jù)

2020-05-26 10:16:50

CIO首席信息官IT
點(diǎn)贊
收藏

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

欧美成人精品不卡视频在线观看| 欧美综合天天夜夜久久| 国产亚洲精品美女久久久m| 日产亚洲一区二区三区| 九九视频精品全部免费播放| 欧美体内she精视频| 99精品一级欧美片免费播放| 久久精品日产第一区二区三区精品版| 中文字幕第22页| ****av在线网毛片| 国产精品区一区二区三区| 国产精品久久久久免费| 中文字幕永久在线视频| 亚洲美女一区| 久久不射电影网| av黄色在线免费观看| 69精品国产久热在线观看| 在线观看国产91| 欧美视频在线免费播放| av大大超碰在线| 国产欧美精品一区aⅴ影院| 国产精品免费一区二区三区四区| 一道本无吗一区| 亚洲永久在线| 欧美极品少妇xxxxⅹ免费视频| xxxxx在线观看| 成人动态视频| 欧美麻豆精品久久久久久| 各处沟厕大尺度偷拍女厕嘘嘘| 51xtv成人影院| 国产精品丝袜黑色高跟| 久久精品国产理论片免费| 亚洲av永久无码国产精品久久 | 亚洲 欧美 综合 另类 中字| av在线免费观看网| 久久久亚洲精品石原莉奈| 国内精品二区| 免费a级片在线观看| 国产一区二区中文字幕| 国产主播在线一区| 一级片aaaa| 久久精品99国产国产精| 国产成人亚洲综合91精品| 黄色一级片免费在线观看| 激情六月综合| 久久免费少妇高潮久久精品99| 91在线播放观看| 91精品久久久久久久久久不卡| 中文字幕一区电影| 黄色免费一级视频| 中文亚洲av片在线观看| 九色porny丨入口在线| 亚洲伊人伊色伊影伊综合网| 亚洲五码在线观看视频| 在线观看a级片| 亚洲黄色片在线观看| 免费日韩在线观看| 免费影视亚洲| 婷婷综合久久一区二区三区| 欧美日韩不卡在线视频| 免费高潮视频95在线观看网站| 五月天激情小说综合| 日本日本19xxxⅹhd乱影响| 中文在线аv在线| 欧美这里有精品| 天天做天天干天天操| 一区二区三区国产好| 亚洲国产精品久久久久| 精品国产乱码久久久久| 日本成人在线免费| 51社区在线成人免费视频| 亚洲第一综合天堂另类专| 中文字幕在线视频播放| 亚州av日韩av| 中文字幕亚洲综合久久筱田步美 | 欧洲av在线播放| 97国产精品videossex| 日本一区二区高清视频| 免费黄网站在线播放| 亚洲综合一区二区| 国产一区二区网| 123成人网| 日韩一级在线观看| 亚洲欧美色图视频| 日韩三级在线| 欧美激情影音先锋| 亚洲综合久久网| 国产精品伊人色| 美国av一区二区三区| 日本在线视频站| 亚洲第一福利一区| 五月婷婷丁香综合网| 免费观看亚洲天堂| 亚洲天堂影视av| 青青草偷拍视频| 老**午夜毛片一区二区三区| 成人xvideos免费视频| 天天干天天舔天天射| 国产精品麻豆网站| 97成人在线免费视频| 国产a亚洲精品| 亚洲成人精品久久| 日韩在线一卡二卡| 久久国产主播| 国产精品国产精品国产专区蜜臀ah | 日本成人在线电影网| 97av影视网在线观看| 九色在线播放| 午夜精品免费在线| 91网址在线观看精品| 国产一区网站| 国自在线精品视频| av高清一区二区| 欧美激情一区二区三区全黄| 男人添女荫道口图片| 精品在线视频免费观看| 都市激情亚洲一区| 精品国产欧美一区二区| 登山的目的在线| 日韩精品成人一区二区在线| 国产精品手机在线| 最新日本在线观看| 欧美群妇大交群中文字幕| 动漫精品一区二区三区| 在线成人欧美| 成人动漫在线视频| av片哪里在线观看| 欧美一区二区在线看| 国精产品一区一区| 欧美aⅴ一区二区三区视频| 国内一区在线| 丰满的护士2在线观看高清| 91精品福利在线一区二区三区| 中文字幕第24页| 久久精品亚洲| 欧美一进一出视频| 成人性生交大片免费观看网站| 亚洲国产日韩欧美在线99| 久久精品亚洲无码| 成人动漫精品一区二区| 日韩精品视频在线观看视频| 日韩中文字幕一区二区高清99| 久久国产精品久久久| 国产乱码精品一区二三区蜜臂 | 综合国产在线观看| 中文字幕免费视频观看| 国产喷白浆一区二区三区| 成人在线激情网| 国产一区二区欧美| 国产精品pans私拍| av在线电影播放| 精品视频在线免费| 国产尤物在线播放| 国产成人av网站| 男的插女的下面视频| 国产一区在线电影| 日韩av免费看网站| 第一福利在线| 91精品视频网| 久久久精品国产sm调教网站| 成人国产视频在线观看| 日批视频在线免费看| 欧美先锋资源| 亚洲一区二区三区香蕉| 免费av不卡在线观看| 亚洲精品国产综合区久久久久久久| 久久午夜免费视频| 国产亚洲自拍一区| 久久久久久久高清| 国产精品mm| 免费在线观看91| 99久久亚洲国产日韩美女| 久久亚洲精品网站| 日本高清视频网站| 色综合久久88色综合天天| 制服丨自拍丨欧美丨动漫丨| 国产福利一区二区三区| 一区二区传媒有限公司| 日本欧美视频| 成人午夜电影免费在线观看| 日本不良网站在线观看| 日日狠狠久久偷偷四色综合免费| 午夜久久久久久噜噜噜噜| 狠狠色噜噜狠狠狠狠97| 国产黄色片在线| 波多野结衣中文字幕一区| 成年人在线观看视频免费| 欧美一区亚洲| 欧洲在线视频一区| 日韩欧美久久| 国产xxx69麻豆国语对白| 成人av福利| 亚洲全黄一级网站| 精品国产无码一区二区| 一本久道中文字幕精品亚洲嫩| 神马久久精品综合| 久久综合精品国产一区二区三区 | 国产亚洲午夜高清国产拍精品| 日本77777| 久久久久久色| 无码人妻精品一区二区蜜桃网站| 精品美女久久久| 国产一区二区不卡视频| 亚洲成人1区| 日本中文字幕久久看| 成人性免费视频| 欧美特黄一级视频| 欧美日韩精品一二三区| 欧美一级视频免费观看| 亚洲黄色在线视频| 二区三区四区视频| 久久综合给合久久狠狠狠97色69| 免费欧美一级片| 麻豆国产精品视频| 可以免费观看av毛片| 欧美日一区二区在线观看| 一本一本a久久| 美日韩中文字幕| 狠狠综合久久av| 亚洲伊人影院| 91香蕉国产在线观看| 国产在线|日韩| 日本精品中文字幕| 九色porny自拍视频在线播放| 欧美精品制服第一页| 欧美私人网站| 亚洲天堂开心观看| 色视频在线观看| 日韩精品视频在线免费观看| 亚洲伦理在线观看| 日韩色在线观看| 国产黄色片免费观看| 91精品国产综合久久蜜臀| 亚洲午夜精品久久久| 色天天综合久久久久综合片| 五月婷婷中文字幕| 一二三区精品福利视频| 免费在线观看一级片| 亚洲狼人国产精品| 男人操女人的视频网站| 综合色中文字幕| 你懂得视频在线观看| 国产女人18毛片水真多成人如厕| 国产精品无码一区二区三区免费| aaa欧美色吧激情视频| 亚洲调教欧美在线| 96av麻豆蜜桃一区二区| 在线观看日韩精品视频| 久久精品一区四区| 亚洲黄色网址大全| 亚洲欧美视频一区| 欧美日韩免费一区二区| 亚洲综合久久久久| 91国产丝袜播放在线| 欧美视频中文在线看| 四虎影院在线免费播放| 欧美日韩在线电影| av观看在线免费| 亚洲成人久久电影| 国产在线视频网站| 精品激情国产视频| 国内老司机av在线| 777777777亚洲妇女| 婷婷综合六月| 成人免费淫片视频软件| 草莓视频一区二区三区| 久久久久久久久久久久久久一区| 最新亚洲精品| 中文字幕乱码一区二区三区| 在线国产一区| 久久久一本二本三本| 日韩综合小视频| 天天综合成人网| 99精品国产99久久久久久白柏| 国产av自拍一区| 亚洲精品你懂的| 麻豆一区二区三区精品视频| 色婷婷综合久久久| 国产精品久久久久毛片| 日韩欧美一级二级三级久久久| 天天躁日日躁狠狠躁伊人| 这里只有精品视频在线| 欧美女同一区| 国产精品久久久久久久电影| 国产精品高清一区二区| 国内精品久久久久久久果冻传媒| 精品freesex老太交| 777久久精品一区二区三区无码| 日韩香蕉视频| 国产永久免费网站| 久久久午夜精品理论片中文字幕| 国产中文av在线| 日韩欧美福利视频| 99视频在线观看免费| 亚洲人成自拍网站| 91黄色在线| 国产精品免费电影| 国产精品网址| 国产日韩视频在线播放| 亚洲一区二区动漫| 久久久久亚洲av无码网站| 久久久91精品国产一区二区精品 | 4438x全国最大成人| 国产日韩v精品一区二区| 精品少妇久久久久久888优播| 91成人免费电影| 秋霞av鲁丝片一区二区| www.久久色.com| 伊人久久精品一区二区三区| www.久久久| 婷婷另类小说| 日本999视频| 婷婷av一区二区三区| 五月天中文字幕一区二区| 亚洲一区精品在线观看| 亚洲欧美日韩中文视频| 波多野结依一区| 国产欧美中文字幕| 综合伊思人在钱三区| 亚洲理论电影在线观看| 激情综合色丁香一区二区| 国产精品密蕾丝袜| 欧美三级xxx| 视频一区二区免费| 欧美日韩高清在线观看| 亚洲精品66| 五月天亚洲综合小说网| 久久一区精品| 欧美熟妇一区二区| 精品国产鲁一鲁一区二区张丽 | 亚洲高清福利视频| 天天干在线视频论坛| 成人黄色大片在线免费观看| 成人在线免费观看91| 久久久国产欧美| 久久精品亚洲国产奇米99| 国产精品熟女视频| 亚洲欧洲第一视频| 日韩免费福利视频| 日韩av不卡在线播放| 老司机精品视频网站| 精品无人区无码乱码毛片国产| 欧美性极品xxxx做受| 欧美在线一卡| 国产91精品在线播放| 少妇精品久久久| 欧美日韩在线成人| 国产精品卡一卡二卡三| 一道本无吗一区| 久久综合伊人77777| 97成人在线| 97超碰在线人人| 99久久精品国产网站| 丁香六月婷婷综合| 亚洲欧美精品在线| 久久99国产精品二区高清软件| 久久影院理伦片| 日本系列欧美系列| 国产精品精品软件男同| 欧美一区二区三区四区视频| 91麻豆免费在线视频| 狠狠色综合网站久久久久久久| 国产人成精品一区二区三| 99久久久无码国产精品性| 日韩欧美主播在线| 97在线观看免费观看高清 | 久久久久久尹人网香蕉| 精品视频自拍| 黄色三级视频片| 国产精品成人一区二区艾草 | 高清在线成人网| 99热只有这里有精品| 国产亚洲美女久久| 玖玖精品一区| 免费欧美一级视频| 中文字幕第一区二区| 国产熟女一区二区丰满| 久久久之久亚州精品露出| 精品72久久久久中文字幕| 亚洲综合激情视频| 午夜私人影院久久久久| 第一页在线观看| 动漫精品视频| 日韩精品五月天| 日韩黄色免费观看| 日韩精品在线观看一区二区| 亚洲精品tv| 18禁网站免费无遮挡无码中文| 国产丝袜欧美中文另类| av av片在线看| 国产91在线播放九色快色| 66久久国产| 性高潮久久久久久久| 日韩西西人体444www| 日韩三级影视| 日韩xxxx视频| 亚洲美女一区二区三区| 青青草手机在线| 91精品久久香蕉国产线看观看| 久久人人超碰|