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

創業之初的技術題:如何構建一個較為通用的業務技術架構

開發 架構
經過很長一段時間的實踐后摸索出來的業務技術架構,自認為還算通用,而且能夠在一定程度上支撐易變的業務。當然這套架構肯定不是銀彈,不可能解決所有業務場景,所以最終還是需要圍繞到具體的場景加以借鑒。

1、通用架構概述

創業之初,我們往往會為了快速迭代出產品,而選擇最簡單的技術架構,比如LAMP架構,SSH三層架構。這些架構可以適應初期業務的快速發展,但是,隨著業務變得越來越復雜,我們會發現這些架構越來越難支撐業務的發展,出現在一個類中寫好幾千行代碼,一個方法中到處都是if else語句,如果中間遇到主程序猿離職,后面介入的程序猿幾乎無法理解這些代碼,到***,產品越來越難迭代,只能推翻重做。如果我們在創業初始就以一種適應性較強的架構去寫代碼,后面就會少走很多彎路。下面的文章是我自己總結出來的一套架構,經過實踐,適應性還算不錯。

2、通用架構實現

總的來說我的通用架構還是以三層架構為基礎進行演變的,在經典的三層架構中,最上層的是controller,中間是service,下層是dao。在我的架構中,最上層是網關層,controller只是網關的一種,中間是業務層,service只是業務層的入口,最下層是基礎層,dao只是基礎層中的數據存儲組件。

2.1、網關層

網關層本質上是對不同的網絡協議的請求進行處理,比如HTTP協議,TCP協議,當然,也可以對其他協議進行處理。具體見下圖:

2.1.1、HTTP請求

一般來自PC端和APP端的請求都是基于HTTP協議的,對于處理HTTP請求的方案,業內已經非常成熟了。首先,tomcat容器本身已經把HTTP請求處理的復雜性封裝掉了,其次,spring mvc對請求處理提供了RESTful風格的編碼方式,大大降低了開發的復雜度。我們要做的就是對controller按照業務領域劃分,比如按照訂單、會員去劃分大的領域,里面的各種方法就是這個領域內的操作。這里的controller就是統一網關處理層,對于每個controller的方法只做三件事,***,將請求參數解析出來并組裝成內部參數,第二調用下層服務執行業務邏輯,第三組裝返回結果,對于異常情況,需要記錄異常堆棧日志并轉換錯誤碼,堆棧信息不要暴露到調用方。

2.1.2、TCP請求

對于處理TCP請求的方案,業內也已經很成熟了,比如Netty。但是,TCP請求畢竟太底層,我們往往會基于TCP協議去開發自己的協議。另外,很多分布式框架都是基于TCP協議的,比如RPC框架Dubbo,消息框架RocketMQ等等。從單機系統到分布式系統,無非就是網關層多了處理TCP請求的邏輯,理論上底層的業務是無需感知自己到底是出于單機環境還是分布式環境,網關層的作用就是要屏蔽這種不同外部調用源的細節。在Dubbo服務端中,我們需要實現遠程接口,并對遠程服務調用進行內部的轉發,轉發的邏輯也很簡單,首先是解析參數并組裝內部參數,然后調用業務層的接口執行業務邏輯,***組裝返回結果,對于異常處理也需要在這里做掉,防止異常暴露給外部應用。

2.1.3、小結

網關層本質是對協議進行處理,同時將業務邏輯收斂到網關層,而不是暴露給外部,當內部業務邏輯進行重構的時候,外部調用方就不需要感知這些變化,當外部調用源增加時,內部業務邏輯不需要感知這種變化,從而將外部調用方和內部業務邏輯進行了解耦。

2.2、業務層

業務層是一個系統,無論是單機系統還是分布式系統群中的某個業務系統,業務層都是承載業務流程和規則的地方。業務層從外到內包含三層:***層是業務服務,第二層是業務流程,第三層是業務組件。具體如下圖:

2.2.1、業務服務

業務服務是業務層對外的統一門面,它由三方面組成:業務接口、入參、出參。

a) 業務接口

一個業務接口代表一個領域的業務服務,比如訂單域的業務服務就由接口OrderService表示,會員域的業務服務就由接口MemberService表示。接口可以按照執行性質分為讀接口和寫接口,比如OrderReadService和OrderWriteService。讀寫分離的好處是可以對集群進行讀寫分組,從而管理流量,當然,單機系統讀寫分離意義不是太大。領域內的操作則以業務接口中的方法的形式體現,比如訂單域有下單createOrder,取消訂單cancelOrder等等操作。對于這些操作,盡量設計出有業務含義的方法,而不是增刪改查,當然,對于一些簡單的業務,也只能增刪改查。

b)入參

接下來,是入參的設計。入參對于讀方法,比較簡單,不做討論。對于寫方法,我們將入參設計成有層次的數據模型。首先需要設計出公共的數據模型,比如訂單數據模型,商家數據模型,商品數據模型等,然后將這些數據模型和一些特定業務下的個性數據結合,組成Request對象,這個request對象按照不同業務操作不同而不同,對應的返回結果就是response,它也是隨著不同業務返回的參數不同。

舉個例子,拿下餐飲訂單來說,首先,我們應該識別出這些業務流程中一些比較基礎的數據模型,比如餐飲領域的菜品、桌位等,這些模型之所以說是基礎模型,是因為,不管下什么餐飲訂單,菜品和桌位肯定是逃不了的,它們是可以被復用的!因此,我們分別為這些基礎模型設計相對于的DO(Domian Object):DishDO(菜品)、BoardDO(桌位)等等,接下來,我們為下餐飲訂單設計一個請求對象DishOrderCreateRequest其中DishOrderCreateRequest內部包含了DishDO和BoardDO,另外會包含一些特定的屬性,比如人數啊,折扣啊等等,這樣一來就能做到通用和靈活兼顧,DishOrderCreateRequest代表的個性化的靈活的業務入參,而DishDO和BoardDO等則代表了不易變化的基礎模型。

c) 出參

***,是出參的設計。對于寫方法,一般出參比較簡單。對于讀方法,出參往往是一個結構與層次比較復雜的組合對象。比如查詢一個訂單,這個訂單有訂單基本信息,還有商品信息,收貨人地址信息等。在設計出參的時候,結構上要設計成組合對象,但是真正查詢的時候,通過查詢選擇器,去查詢不同的組合對象。比如查詢選擇器設置商品查詢為true,地址查詢為false,那么這次查詢出的訂單就只包含商品,而不包含地址。

2.2.2、業務流程

業務流程其實就是對業務規則的解釋,只是這種解釋使用代碼去實現的,我們要做的其實就是準確翻譯這些業務規則,并維護好這些業務規則。

業務流程中可以大致分為三種動作節點,1、組裝參數節點  2、規則判斷節點  3、執行動作節點,其中每個動作節點都是一些業務代碼的片段。舉個例子,下餐飲訂單,我們***步就是將上層傳入的參數組裝出一個基礎的DishOrderDO(組裝參數節點),然后按照特定的規則去填充這個DishOrderDO(規則判斷節點),然后就是調用DAO去創建DishOrderDO(執行動作節點)。

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

2.2.2、業務組件

a) 基礎組件

業務組件其實是將一些內聚的可復用的代碼片段進行封裝。和業務流程中的三種業務節點相對應,業務組件也分為三種:組裝參數組件 、規則判斷組件 、動作執行業務組件。業務組件的抽象往往是對業務有了深刻理解之后才進行的,盲目地進行業務組件的抽象,往往到頭來白忙活。

b) 能力

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

c)更高緯度的抽象

經過本人的實踐,對于互聯網這樣的需求變化極快的場景,更高緯度的組件抽象往往性價比很低,不建議大家去做。

2.3、基礎層

基礎層包含兩個部分,***是接口定義,第二是技術組件。

2.3.1、接口定義

接口定義是按照不同的技術框架,同時結合業務需要,設計出合理的接口,對于業務組件來說,它們只會感知技術接口,而不會去感知技術實現,我們也不應該將具體的技術細節向上暴露,這也就是所謂的面向接口編程。技術接口往往是業務與技術之間的橋梁,接口本身是含有業務含義的,最常見的就是DAO接口,我們設計DAO接口的時候,不會設計成insert、update、query這樣業務無關的接口,而是設計成insertUser,updateUserById等等和業務相關的接口,同樣的道理,設計緩存接口的時候,也不能設計成put、get這樣的接口,而應該設計成cacheUser,deprecateUser這樣的接口。

2.3.2、技術組件

單機系統的技術組件一般來說分兩種,一種是通用的技術組件,比如:數據存儲、緩存、消息和調度任務、事務、鎖。一種是基礎設施,比如spring容器,tomcat容器。下面稍微談談通用技術組件。

數據存儲:數據存儲包括關系型數據庫、非關系型數據庫以及文件存儲系統。關系型數據庫,比如MySQL,適合存放絕大部分業務數據。非關系型數據庫,比如hbase,可以存放歷史日志,也可以對歷史的MySQL數據進行歸檔。文件存儲系統,一般都是基于Linux文件系統,比如圖片、html文件等等,也有基于HDFS的,用于大數據分析。

緩存:緩存按響應時間分,可以分為納秒級緩存,毫秒級緩存和百毫秒級緩存。納秒級緩存就是一般的基于本地內存的緩存,比如encache,毫秒級緩存一般是集中式的內存緩存,比如memcache,由于訪問時遠程調用,因此響應時間會延長到幾毫秒,百毫秒級緩存一般是集中式可持久化的緩存,比如redis,由于存在遠程訪問以及緩存擊穿導致的讀取持久化記錄,它的響應時間會更長些,到幾十甚至上百毫秒。單機系統一般用本地內存緩存就夠了,當緩存被擊穿的時候,直接訪問數據庫。

消息和調度任務:消息和調度任務本質都是一種異步化的手段,區別在于消息無法控制異步的時間,而調度任務可以。一般,消息發送出去后,監聽消息的系統會立即收到消息,從而立即觸發業務邏輯的執行,而調度任務則會按照調度規則,一次或者多次的執行業務邏輯。單機系統中消息和調度任務用到的比較少,在做日志監控的時候可能會用到消息,在進行數據報表統計的時候可能會用到調度任務。

事務:事務本質都是基于數據庫去實現的,單機系統的事務就是依賴數據庫的事務,我們可以使用spring-tx的事務模板進行事務操作,在業務邏輯開發中,一定要把握事務的大小,建議把業務比較緊密的一堆數據庫操作放在一個事務里,不要隨意的為每個方法都開啟事務。

鎖:單機系統中主要用到兩種鎖:樂觀鎖和悲觀鎖。樂觀鎖依靠在數據庫的業務表加版本字段來實現,每次更新都會去判斷版本是否變化,如果變化則需要重試,這種鎖的粒度比較小。悲觀鎖是基于JDK的Lock接口的,對一個業務流程進行加鎖和釋放鎖的操作,鎖的粒度比較粗。

3、總結

以上是我經過很長一段時間的實踐后摸索出來的業務技術架構,自認為還算通用,而且能夠在一定程度上支撐易變的業務。當然這套架構肯定不是銀彈,不可能解決所有業務場景,所以最終還是需要圍繞到具體的場景加以借鑒。

關于作者

吳極心,目前在杭州旅居星球擔任架構師,專注于技術架構治和產品架構。

責任編輯:王雪燕 來源: 碼農網
相關推薦

2016-12-26 17:28:08

構建業務技術架構

2020-01-13 15:40:14

架構師業務技術網關

2022-03-01 11:38:51

RPC框架后端

2019-05-15 09:26:50

后臺技術棧系統

2022-02-10 07:03:32

流量應用架構數據交換

2017-10-18 15:19:23

架構師技術開發

2017-04-27 14:26:55

CTO訓練營,技術管理

2020-02-14 10:40:13

技術研發指標

2014-01-23 11:11:31

2013-09-03 16:21:07

物聯網IoT數據中心

2023-10-20 09:49:46

AI技術

2014-10-08 11:26:14

2015-12-04 11:36:04

SaaS架構設計可持續

2016-09-21 12:54:10

CAAS系統鏡像

2017-07-31 19:57:13

2014-02-13 17:21:23

技術創業

2018-05-14 09:00:23

NB架構師素質

2017-10-10 19:43:44

架構 搭建 技術

2020-08-26 15:10:37

微服務中臺數據

2020-05-26 10:16:50

CIO首席信息官IT
點贊
收藏

51CTO技術棧公眾號

国产精品一区二区无码对白| 国产日韩视频在线播放| 日韩美一区二区| 日韩欧美电影| 日韩视频在线一区二区| 免费不卡av在线| 国产二区在线播放| 国产在线精品一区二区三区不卡| 久久久久久有精品国产| 91成人在线免费视频| 欧美h版在线观看| 狠狠综合久久av一区二区小说| 亚洲精品无人区| 丰满肉肉bbwwbbww| 日韩av一级片| 久久男人资源视频| 永久免费看片视频教学| 五月国产精品| 日韩视频在线观看一区二区| 99视频免费播放| a视频在线免费看| 91美女在线视频| 国产精品果冻传媒潘| 国产成人av免费| 中文一区二区| 欧美黄色性视频| 女同久久另类69精品国产| 亚洲成aⅴ人片久久青草影院| 欧美一级黄色录像| 在线免费观看视频黄| 伊人久久在线| 欧美日韩国产色| 乱熟女高潮一区二区在线| 高清福利在线观看| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲区国产区| 欧美成人中文字幕| 神马久久精品综合| 欧美特黄一级大片| 亚洲跨种族黑人xxx| 日本久久久久久久久久| 日韩高清一区| 欧美一级黄色大片| 永久免费黄色片| 国产精品国产亚洲精品| 欧美日韩国产高清一区| 日本人视频jizz页码69| 欧洲精品一区二区三区| 日本精品一区二区三区高清| 夫妻免费无码v看片| 超碰在线资源| 亚洲成人免费视| 2018国产在线| а√在线中文在线新版| 亚洲成av人影院| 青娱乐自拍偷拍| 极品在线视频| 色综合中文字幕| 色综合手机在线| 国产精品传媒麻豆hd| 精品视频免费看| 亚洲一区二区三区四区五区| 99综合久久| 日韩欧美一区电影| 黄色免费看视频| 亚洲另类av| 亚洲一区第一页| 亚洲精品自拍视频在线观看| 911久久香蕉国产线看观看| 欧美成人精品影院| 日韩精品乱码久久久久久| 亚洲美女少妇无套啪啪呻吟| 2018日韩中文字幕| 91porny九色| 狠狠色丁香久久婷婷综合_中 | 一区二区三区鲁丝不卡| 国产 日韩 亚洲 欧美| 黑人巨大精品| 欧美精品乱码久久久久久| 日韩欧美中文视频| 国产一区二区三区亚洲| 亚洲欧洲日韩国产| 亚洲ⅴ国产v天堂a无码二区| 欧美一区二区三区另类| 性欧美在线看片a免费观看 | 欧美成人精品3d动漫h| 中文精品在线观看| 日韩欧美视频专区| 久久久久在线观看| 波多野结衣电车痴汉| 国产一区二区三区在线观看免费视频| 国产伦精品一区二区三区在线| 青青草娱乐在线| 亚洲天堂久久久久久久| 乱人伦xxxx国语对白| xxxxx.日韩| 亚洲变态欧美另类捆绑| 欧美日韩生活片| 在线观看日韩av电影| 国产欧美日韩高清| 少妇喷水在线观看| 中文字幕在线播放不卡一区| 3d动漫一区二区三区| 日韩一区二区三区四区五区| 日韩av在线免费播放| 尤物在线免费视频| 午夜一区二区三区不卡视频| 亚洲最大福利视频网| 蜜桃视频在线播放| 一区二区欧美视频| jizz欧美性11| 日韩欧美中文字幕电影| 欧美成人精品在线| 艳妇乳肉豪妇荡乳av| 91影院在线观看| 亚洲激情免费视频| 九七电影院97理论片久久tvb| 亚洲国产欧美一区二区三区同亚洲| youjizz亚洲女人| 亚洲伊人网站| 成人激情直播| 国产盗摄在线观看| 欧美视频一区二区三区四区| 久久无码人妻精品一区二区三区| 在线精品国产| 国产视频观看一区| a天堂在线资源| 色视频欧美一区二区三区| 日韩少妇一区二区| 欧美久色视频| 91啪国产在线| 麻豆传媒视频在线观看| 在线观看av一区二区| 在线观看国产网站| 亚洲激情国产| 国产高清一区二区三区| 中文在线字幕免费观看| 337p亚洲精品色噜噜噜| 午夜激情福利电影| 免费在线看成人av| 日韩欧美一区二区三区四区 | 91传媒在线免费观看| 欧美18hd| 5月丁香婷婷综合| 成年人网站在线观看视频| 蓝色福利精品导航| 夜夜爽99久久国产综合精品女不卡| 欧亚一区二区| 在线观看中文字幕亚洲| 中文字幕在线播放不卡| 国产精品热久久久久夜色精品三区 | 一区二区伦理片| 欧美综合国产| 日韩国产伦理| 国产精品久久久久久久久久齐齐| 中文欧美日本在线资源| 亚洲综合精品国产一区二区三区| 国产精品久久免费看| xxxx在线免费观看| 欧美aa国产视频| 国产99午夜精品一区二区三区 | 精品999视频| 欧美伊人久久久久久久久影院 | 中国男女全黄大片| 一区视频在线| 欧美 日韩 国产在线| 精品欧美一区二区三区在线观看 | 欧美一区二区三区在线看| 高h视频免费观看| 成人免费毛片片v| 亚洲色欲综合一区二区三区| 不卡中文字幕| 亚洲www在线| 久草在线资源站手机版| 亚洲品质视频自拍网| 一卡二卡在线视频| 亚洲一区二区三区在线| 三上悠亚ssⅰn939无码播放| 蜜桃传媒麻豆第一区在线观看| 三级网在线观看| 国产丝袜一区| 国产色综合天天综合网| 波多野结衣在线高清| 亚洲欧美在线看| 国产欧美一级片| 岛国av一区二区| 九九热久久免费视频| 顶级嫩模精品视频在线看| 成年人黄色片视频| 影音先锋成人在线电影| 精品乱色一区二区中文字幕| 久久91视频| 国内偷自视频区视频综合| 成人在线视频成人| 精品欧美乱码久久久久久| 免费av中文字幕| 一级精品视频在线观看宜春院 | 欧美日韩一二| 99三级在线| 国产原创一区| 久久久久国产精品www| 婷婷成人激情| 日韩精品久久久久久福利| 国产精品主播一区二区| 欧美色道久久88综合亚洲精品| 国产精品成人69xxx免费视频| 91网上在线视频| 国产精品19p| 人人精品人人爱| 国产素人在线观看| 亚洲综合专区| 亚洲综合网中心| 欧美人与物videos另类xxxxx| 高清国产在线一区| 婷婷久久免费视频| 国产精品678| 中文字幕乱码在线播放| 欧美精品国产精品日韩精品| 欧美13一16娇小xxxx| 一区二区三区黄色| 日夜干在线视频| 亚洲成人中文字幕| 国产黄色高清视频| 7777精品伊人久久久大香线蕉超级流畅| 日韩成人免费在线视频| 一区二区三区欧美日| 国产精品久久久免费看| 国产目拍亚洲精品99久久精品| 精品国产av色一区二区深夜久久| 国产精品资源站在线| 亚洲免费一级视频| 日本大胆欧美人术艺术动态| 老司机午夜av| 爽爽淫人综合网网站| 午夜肉伦伦影院| 国产情侣一区| 每日在线更新av| 亚洲毛片网站| 男女视频网站在线观看| 亚洲午夜视频| 僵尸世界大战2 在线播放| 国一区二区在线观看| 日本免费a视频| 狠狠入ady亚洲精品| 免费高清一区二区三区| 午夜性色一区二区三区免费视频| 天天操天天干天天玩| 亚洲九九在线| 久久久天堂国产精品| 欧美黄色大片网站| 97久久国产亚洲精品超碰热| 欧美激情在线| 成人免费播放器| 免费在线亚洲欧美| 日av中文字幕| 麻豆一区二区三| 99日在线视频| 成人性色生活片免费看爆迷你毛片| 三上悠亚 电影| av一区二区久久| 国产精品九九九九九| 欧美国产精品v| 国产精品国产三级国产传播| 亚洲乱码一区二区三区在线观看| 欧美激情精品久久| 亚洲五月六月丁香激情| 欧美一级片免费在线观看| 在线欧美日韩精品| 日本一区高清不卡| 国产精品一区二区三区免费观看| 日本h片久久| 国产精品欧美风情| 99er精品视频| 国产成人av一区二区三区| 国产精品巨作av| 欧美在线3区| 久久精品免费一区二区三区| 久艹在线免费观看| 美女视频一区免费观看| 亚洲视频第二页| 成人性生交大片免费看中文网站| 久久亚洲国产精品| 日韩国产精品一区二区| 国产精品情侣呻吟对白视频| 夜夜春很很躁夜夜躁| 亚洲女人久久久| 成人av色网站| 亚洲精品国产成人久久av盗摄| 黄色99视频| www亚洲视频| 综合久草视频| 成人黄色777网| 日韩精品久久久久| 成人精品视频一区二区| 久久伊伊香蕉| 中文在线日韩| 一区二区国产视频| 欧亚精品中文字幕| 中文字幕人妻熟女在线| 亚洲女同志亚洲女同女播放| 激情不卡一区二区三区视频在线 | 欧美激情在线一区二区| 亚洲国产精品大全| 欧洲视频一区二区三区| 一卡二卡三卡四卡| 国产原创在线观看| 久久婷婷麻豆| 欧美一区二区不卡视频| 国产精品av免费| 中文字幕av在线免费观看| 草草视频在线一区二区| 一区二区三区四区国产精品| 国产成人一区二| 一本加勒比波多野结衣| 欧美人与禽性xxxxx杂性| 国产农村妇女精品一区二区| 3atv一区二区三区| 久久久久久久免费| 久久精品黄色片| 日本精品裸体写真集在线观看| 成人动漫一区二区在线| 91成人性视频| 麻豆av免费观看| 岛国中文字幕在线| 亚洲免费在线| 日韩一区二区三区精品视频| 日本免费一区二区三区| 激情综合五月网| 亚洲超碰在线观看| 亚洲色图.com| 国产伦精品一区二区三| 青青青在线免费观看| 成人国产精品一区二区免费麻豆| 亚洲欧洲日韩在线| 欧美精彩一区二区三区| 在线观看国产亚洲| 老牛精品亚洲成av人片| 精品高清一区二区三区| 久久本道综合色狠狠五月| 黄色片中文字幕| 99ri日韩精品视频| 亚洲国产欧美另类丝袜| 欧美13一14另类| 免费看av在线| 五月天亚洲一区| 日本久久电影网| 国产一区二区中文字幕免费看| 一区二区成人免费视频| 给我免费播放日韩视频| 欧美日韩亚洲高清| 欧美视频小说| 综合色就爱涩涩涩综合婷婷| 国产美女永久无遮挡| 国产精品 欧美精品| 三级影片在线看| 精品国产一二三| 97人澡人人添人人爽欧美| 国产免费高清一区| 国产视频亚洲| a级在线免费观看| 欧美三级蜜桃2在线观看| 三区四区电影在线观看| 91色视频在线导航| 欧美日本亚洲韩国国产| 无码国产精品一区二区免费式直播| 亚洲永久精品大片| 天堂中文在线看| 国产www精品| 久久国产成人精品| 天天干天天曰天天操| 亚洲午夜久久久久久久久电影网| 人成网站在线观看| 欧美亚洲另类激情另类| 成人动漫免费在线观看| 国产精品视频中文字幕| 一区二区在线观看免费视频播放| 欧美 日韩 国产 成人 在线 91 | 男人久久精品| 国产精品欧美日韩久久| 亚洲女同另类| 给我看免费高清在线观看| 欧美一a一片一级一片| 国产黄a三级三级三级av在线看| 国产精品免费观看高清| 美女91精品| 一起操在线播放| 日韩国产精品视频| 青青伊人久久| 免费看国产曰批40分钟| 国产精品国模大尺度视频| 欧美一级在线免费观看| 国产精品三级久久久久久电影| 欧美日韩一区二区三区四区在线观看| 风间由美一二三区av片| 欧美精品777| 中文字幕人成乱码在线观看| 自拍偷拍一区二区三区| xfplay精品久久| 国产成人精品亚洲精品色欲| 国产精品九九九|