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

老代碼多=過度耦合=if else?阿里巴巴工程師這樣捋直老代碼

開發 前端
為了實現上述目標,針對發布和編輯功能,進行了兩輪升級。第一輪的目標在于“平臺和業務分離、業務和業務隔離”;而第二輪將更進一步,目標在于“系統之間的解耦合,提升團隊協同效率”。

發布編輯功能的升級改造

為了實現上述目標,針對發布和編輯功能,進行了兩輪升級。***輪的目標在于“平臺和業務分離、業務和業務隔離”;而第二輪將更進一步,目標在于“系統之間的解耦合,提升團隊協同效率”。

1.平臺和業務分離,業務和業務隔離

***輪改造中,閑魚將原先的商品發布和編輯功能從老應用中抽取到了新應用item。為了實現“平臺和業務分離、業務和業務隔離”的目標,閑魚自研了一套技術框架SWAK,具體請參考文章《業務代碼解構利器--SWAK》,該文介紹了其設計思想和實現原理。接入SWAK框架后,平臺邏輯和業務邏輯得到了分離,各個業務(如租房業務、免費送業務)之間的邏輯也不再耦合,而是變成package隔離(當然也是可以做成jar包隔離)。

看一看改造后的應用情況示意圖:

 

  • 我們根據發布和編輯的主干流程,抽象了17個SWAK擴展點。
  • 發布和編輯的主干流程主要就是對這些擴展點的編排。主干流程的編寫并不需要考慮業務上怎么實現這些擴展點的。
  • 我們根據不同的業務(在SWAK里面更準確的表述是tag)對這些擴展點進行了各自的實現。

根據這樣的開發方式,我們可以把開發同學分成如下的兩種角色:

  • 各業務開發人員。各業務開發人員主要是負責各個業務相關的代碼。在item應用里面,業務同學需要維護其業務中和發布編輯相關的個性化業務邏輯。
  • 主干開發人員。主干的人員只需要維護主干的代碼,尤其是擴展點的抽象。隨著不同業務的不斷接入,原先的擴展點也需要隨之調整。

如在之前的《業務代碼解構利器--SWAK》一文中指出的一樣,經過SWAK改造后,獲得了如下的幾個優點:

  • 代碼邏輯清晰,可變和不可變一目了然。
  • 代碼復用度變高。
  • 可變邏輯按照標簽進行隔離,單個標簽的實現不會影響到其他標簽的實現,降低開發和測試成本。無論是按照“類型”分還是按照類目分,對應的開發和測試同學只需要關注對應的邏輯即可。

新接手的開發人員能夠快速理解,輕松上手。

2.系統之間的解耦合,提升團隊協同效率

以租房為例——租房業務的同學需要在item應用中維護一套租房發布編輯相關的邏輯(如校驗地小區數據、地鐵數據真實性等);租房業務的同學還需要在詳情應用的邏輯中維護一套和租房詳情相關的邏輯(如展示地圖,展示內部設施標簽);租房業務的同學還需要在交易應用的邏輯中維護一套和租房交易相關的邏輯(如預約看房)等等。租房的同學不僅僅需要著手于自己的代碼邏輯,還需要修改發布和編輯應用item、還需要修改詳情應用,還需要修改交易應用......這種體驗是非常糟糕的,有極大的可能性接手一個簡單業務就需要修改和發布四五個應用。

另一方面,從主干開發人員的角度來說,其應用不僅僅由自己或自己的小團隊來維護,還有很多業務開發人員也在修改和發布此應用,且頻率會遠遠超過主干開發任務的發布和部署頻次(否則就是主干擴展點邏輯抽取得不好了)。這不利于整個應用的穩定性。A業務服務掛了,應該只影響A業務,而不應該影響主干。依此邏輯,***能做到JVM隔離。本質上來說,***輪改造完成了業務之間的解耦合,而第二輪則是系統之間的解耦合。

康威定律告訴我們:

Any organization that designs a system (defined more broadly here than just information systems) will inevitably produce a design whose structure is a copy of the organization's communication structure.

簡而言之就是人員組織結構和系統結構之間的一致性。而完成系統之間的解耦合又恰恰是符合康威定律的。這一輪的改造,我們稱之為“業務服務化”。

業務服務化改造方案

 

  • 首先,我們把租房業務給單獨抽取出來。原先的帖子和拍賣業務暫時沒有獨立的團隊來予以維護(但也基本上沒有什么新需求)因此暫時仍然放在主干應用中,時機合適將會和租房應用一樣遷移出去。
  • 其次,租房業務通過遠程服務的方式給主干應用提供服務。接口即是主干業務的提供的擴展點。由于現在是優先使用遠程服務來連接主干應用和垂直應用,考慮到性能問題和安全問題,我們在擴展點的定義上也做了一些特殊的改動,后文會有針對性的詳述。
  • ***,SWAK框架做了一些改變以注冊和調用遠程服務。相對于本地服務,遠程服務一般都是有超時、連接異常等問題。然而不同接口對于這些異常情況其處理策略也是截然不同的,后文“SWAK框架的針對性改進”會詳述這些改動。

通過這種方式,我們將主干應用和各業務應用徹底分離了。仍然以租房業務為例,租房團隊負責開發和維護租房業務的獨立應用rent。租房個性化的發布和編輯需求只需要開發和部署rent應用,而不必修改主干應用。主干應用只由主干團隊的同學負責維護,不會被其他業務團隊的同學所開發和部署,穩定性更加能得以保障。各業務系統獨立開發、獨立部署。這些都大幅地減少了不必要的溝通成本、提升協同效率。

主干應用和業務應用是通過薄薄的一層接口所聯系起來的,這層薄薄的接口都是“聲明”:Interface定義、DO的定義和擴展點的默認Reduce策略定義。

SWAK框架的針對性改進

在之前的《業務代碼解構利器--SWAK》一文中指出了,SWAK框架在應用啟動的時候會通過各種注冊器(registery)注冊框架所需的信息。其中最重要的信息就是——業務tag及其對應的SWAK接口的實現類類名或者類實例instance。大多RPC框架都會在client端提供一個代理,代理掉內部的服務發現、保活、序列化、網絡通信、反序列化等一系列操作。實際上,SWAK為了支持遠程服務調用,只需要將業務tag,以及這些RPC的client的instance的對應關系注冊進去就可以了。在閑魚,RPC使用的是阿里通用的HSF框架(其類似的一個開源框架是Dubbo),這里的RPC的client就是HSF中的ConsumerBean。

上文還提到了RPC調用會引入服務超時、連接異常的概念。為何要限制超時?是因為不能被單個應用的超時占據了主干應用的服務資源而引起其他服務和整個應用系統受到影響(如大多數線程阻塞在超時調用上)。無論是超時異常還是連接異常,在業務上也有對應的處理策略。在這里,我們定義了三種異常處理策略,通過在配置上設置相應的注解,SWAK框架會自動按照策略來處理異常。這三種策略是:

  • IGNORE。 即,直接向上層拋出異常。
  • SKIP。對于一個接口有多個tag執行的時候,本tag下該擴展點將跳過,繼續執行其他tag下該擴展點的實現。
  • DEFAULT_VALUE。返回默認值。默認值通過spel表達式進行設置。

減少擴展點數量

眾所周知,RPC調用相對于本地調用會增加一部分的網絡傳輸和序列化開銷。對于單次調用來說,增加若干ms并沒有什么問題,但對于調用10次、20次或更多,這筆開銷就相當可觀而應該引起重視了。為此,如何降低RPC開銷,是一個必須要考慮的問題。

最可靠的方法就是降低RPC的次數。

在實踐中我們發現,很多擴展點實際上都是獲取業務配置。如在閑魚業務中,“是否支持多庫存”就是一種配置,如租房不支持多庫存。這些業務配置項是由其業務形態所決定的,基本不會變動。因此可以將一組配置項打包一起調用,并且可以緩存下來,也可以直接由主干應用進行維護。在item應用里,這些配置項關系到主干的通用存儲過程,目前由各業務方委托主干開發人員進行維護,目前配置在主干環境。可以通過阿里的動態配置平臺(如Switch、Diamond)進行動態修改。

另外我們對部分鄰接的擴展點進行了合并。這些相鄰擴展點之間的邏輯比較簡單,且不會中斷主流程。通過“配置型接口”和“鄰接擴展點合并”這兩種操作,我們將擴展點數量降低由17個降低到了6個。要注意的是,擴展點并不是越少越好。擴展點越少,越意味著“過度擬合”,可能會對后續業務變更無法適應導致主干需要大幅改動,因此需要在數量和擴展性之間找到一個平衡。

另外值得一提的是,SWAK為配置型擴展點做了相應的小改造,并提供了查看當前配置型擴展點返回值的可視化界面。開發人員可以直觀地了解當前各個業務的配置值。

接口對象定義和細節設計

在閑魚,各種業務所需要存儲的東西大同小異,從閑魚的發布界面上來看就不難發現這一點,都是在基礎對象(如標題、描述、圖片)之外添加一些業務相關的數據,如拍賣業務中指定拍賣的開拍時間等信息,免費送業務中設置兌換幣值,圖書業務上設置條形碼。即對一本圖書進行拍賣當然也是允許的,這就出現了拍賣業務和圖書業務疊加起來的復合型業務。

 

對于主干應用開發人員來說,應該提供單個接口以支持所有業務類型,這樣不用每次修改或者新增業務時都需要提供新接口。從穩定性的角度考慮,這樣的要求很合理。既然是單個接口,那么DO的定義也應該統一。以商品DO為例,有以下三種方式:

 

  • ***種是繼承型結構,該結構不適用于業務疊加的情況。另外主干需要知曉各個業務的DO,每次業務修改或新增,主干都需要做變動。
  • 第二種是組合型結構,適用于業務疊加的情況,但同上一種一樣,主干需要知曉各個業務的DO,每次業務修改或新增,主干也需要隨之變動。
  • 第三種使用了Map類型類承載各個業務(biz)的定義類型。主干完全不知道、也不需要知道各個業務DO是如何組成的。這種方式具有***的擴展性(有點無邊界的擴展),也分離了主干應用和業務應用,最接近主干和業務分離的期望。最終我們選擇了這一種。

使用第三種的對象模型,以新加一種業務為例,其開發流程是:

  

  1. 新業務服務端開發人員和客戶端開發人員約定各業務的DO,這些DO會存儲到bizMap字段。主干應用開發人員不需要了解這些約定。
  2. 主干應用新增一份新業務的配置,實際上是新業務的識別信息和路由信息。
  3. 新業務應用實現主干擴展點。
  4. 聯調、測試和上線。

業務應用在擴展點返回值中設置需要更新的數據,由主干應用合并。業務應用不應該也不可以直接修改ItemDO,避免影響其他業務的處理邏輯。對于發布和編輯這種需要持久化存儲的邏輯來說,必須要強控各業務對ItemDO的修改,否則理論上來說,各業務都有可能將所有的關鍵字段修改得面目全非。前面提到的“配置型接口”中,就有這樣的配置——該業務是否可以修改屬性字段、該業務是否可以修改描述字段等配置。

總結

閑魚的商品發布和編輯功能基于SWAK框架經過了兩次改造升級,***次升級完成了平臺和業務之間的解耦合以及業務和業務之間的解耦合,第二次升級通過平臺和業務間使用RPC調用完成了系統和系統之間的解耦合。改造之后,能更有效地協同更多團隊更快更穩定地支撐各種業務。SWAK框架依然在繼續演進,如部分擴展點原則上可以通過并行處理或異步化處理來提升性能,但暫時還沒有提供支持。在這兩次改造中, 我們還在測試用例的采集、回放、監控告警等方面也有很多積累,敬請期待后續的文章分享。

責任編輯:武曉燕 來源: 云棲社區
相關推薦

2019-08-15 10:25:02

代碼開發工具

2012-06-20 10:15:21

技術風云會

2017-12-12 16:24:57

工程師代碼阿里巴巴

2018-01-24 20:59:46

阿里巴巴Python面試題

2021-08-18 17:16:10

Git分片讀寫分離

2009-06-02 13:24:45

工程師忠告職場

2010-06-28 10:43:47

2019-03-29 17:47:07

阿里巴巴公益

2019-08-28 20:38:12

好代碼編寫代碼代碼質量

2023-04-03 07:03:51

阿里巴巴List元素

2013-08-22 09:41:52

阿里巴巴去IOE王堅

2019-04-18 17:29:24

AI阿里巴巴

2018-06-03 14:26:00

阿里工程師內網代碼

2025-09-09 10:24:44

AI代碼生成器資深工程師軟件開發者

2021-05-27 07:16:23

業務代碼數據

2009-02-27 10:46:32

DBA筆試題阿里巴巴

2020-05-13 14:15:25

if-else代碼前端

2023-03-29 09:42:32

2013-08-22 09:36:45

阿里巴巴王堅阿里云

2016-04-20 11:08:57

代碼歷史新功能
點贊
收藏

51CTO技術棧公眾號

亚洲一区视频在线| 老司机免费视频一区二区三区| 欧美videofree性高清杂交| 免费在线看黄色片| 天天爽夜夜爽夜夜爽| 午夜在线播放视频欧美| 日韩在线免费av| 无码国产69精品久久久久网站| 亚洲精品中文字幕| 国产精品嫩草久久久久| 国产视频在线观看一区| 中文字幕一区二区三区波野结| 欧美激情1区2区3区| 国产视频欧美视频| 国产在线视频三区| 香蕉久久免费电影| 亚洲一区在线播放| 伊人久久av导航| 色久视频在线播放| 激情综合色播五月| 国产成人啪精品视频免费网| 成人免费毛片东京热| 久操精品在线| 亚洲精品在线电影| 99国产精品久久久久久| jizz内谢中国亚洲jizz| 亚洲激情自拍视频| 亚洲欧洲日韩综合二区| 你懂得网站在线| 成人毛片视频在线观看| 91久久中文字幕| 波多野结衣黄色| 亚洲另类自拍| 欧美精品激情在线| 国产高潮流白浆| 欧美成人激情| 在线观看精品国产视频| 在线观看日韩精品视频| 9l视频自拍蝌蚪9l视频成人| 91麻豆精品国产自产在线观看一区| 欧美黄色一级片视频| 国产h片在线观看| 亚洲最大色网站| 麻豆视频传媒入口| 69av在线| 国产精品免费免费| 五月天久久狠狠| 日本精品一二区| 成人黄色av电影| 成人欧美一区二区三区视频| 精品国产区一区二| 国产一区在线精品| 国产在线不卡精品| 一区二区美女视频| 麻豆精品在线视频| 国产剧情久久久久久| 中文字幕欧美在线观看| 日本成人在线一区| 国产精品亚洲自拍| 91影院在线播放| 国产自产高清不卡| 成人字幕网zmw| 99热这里只有精品在线观看| 国产成人综合精品三级| 99理论电影网| 视频一区 中文字幕| 国产成人午夜电影网| 成人在线观看网址| 色丁香婷婷综合久久| 99久久婷婷国产| 欧美日韩亚洲一区二区三区四区| 国产高清av在线| 国产精品久久久久桃色tv| 国产日韩视频在线播放| 午夜影院免费在线| 婷婷激情综合网| 欧美少妇性生活视频| 欧美极品在线| 欧美大片拔萝卜| 91精品国产自产| 91日韩视频| 亚洲 日韩 国产第一| 成人a v视频| 激情综合亚洲精品| 国产精品一区二区a| 久草在线免费福利资源| 中文字幕中文字幕中文字幕亚洲无线| 成人污网站在线观看| 九色porny视频在线观看| 欧美日韩在线不卡| 男人添女人荫蒂国产| 亚洲动漫精品| 久久久成人精品| 国产又大又黑又粗免费视频| 免费久久精品视频| 国产精品白丝jk白祙| 免费人成在线观看网站| 自拍偷拍欧美精品| 一女被多男玩喷潮视频| 欧美黄色网络| 日韩久久精品电影| 91免费网站视频| 尤物视频在线看| 日韩欧美在线国产| 国产999免费视频| 亚洲美女久久| 九九热精品视频国产| 波多野结衣在线观看视频| 国产精品一区二区在线观看不卡| 你懂的视频在线一区二区| 99久久精品免费观看国产| 色婷婷综合中文久久一本| av在线网站免费观看| 国产精品一区二区av交换| 欧美精品电影免费在线观看| 中文字幕福利视频| 99r精品视频| www.激情网| 黄色成人小视频| 精品亚洲国产成av人片传媒| 青青草原免费观看| 免费成人在线影院| 欧美日韩电影一区二区| 精品日韩av| 91精品免费在线| 欧美亚洲色综久久精品国产| 在线综合亚洲| 国产精品久久久久久久久久久久冷 | 欧美老女人在线| 国产精品久久久久久久av| 一本色道精品久久一区二区三区| 91探花福利精品国产自产在线| 国产高清在线看| 欧美日韩性视频在线| 欧美性生交xxxxx| 一区二区三区中文| 成人女保姆的销魂服务| 999国产在线视频| 日韩欧亚中文在线| 丝袜美腿中文字幕| 一本色道久久综合亚洲精品不卡| 成人动漫视频在线观看完整版| a视频在线观看| 91精品国产综合久久香蕉麻豆| 91无套直看片红桃在线观看| 日韩国产一区二| 日韩欧美亚洲在线| 先锋欧美三级| 中文字幕欧美日韩va免费视频| 波多野结衣mp4| 国产亚洲一区字幕| 免费黄色一级网站| 成人精品中文字幕| 国产乱肥老妇国产一区二 | 久久亚洲国产成人| 国产精品一区二区黑人巨大| 国产精品不卡一区二区三区| 日韩成人av免费| 欧美成人日本| 国产在线精品一区| 亚洲最大网站| 色噜噜狠狠色综合网图区| 国产口爆吞精一区二区| 亚洲精品视频免费观看| 日本一级大毛片a一| 亚洲美女视频在线免费观看| 欧美日韩电影一区二区| www.一区| 欧美日韩爱爱视频| 午夜激情在线视频| 色哟哟一区二区在线观看| 国产免费嫩草影院| 国产一区二区三区精品欧美日韩一区二区三区| 日本美女爱爱视频| 鲁大师精品99久久久| 国产精品av在线| av在线免费观看网址| 亚洲黄页网在线观看| 日本精品入口免费视频| 亚洲免费成人av| 三叶草欧洲码在线| 久久se精品一区精品二区| 福利在线一区二区| 国产综合久久久| 91亚洲人电影| 小草在线视频免费播放| 色偷偷888欧美精品久久久| 黄色av网址在线| 日本高清不卡在线观看| 国产一区二区播放| 久久一区二区三区四区| 中文字幕剧情在线观看| 亚洲免费影院| 国产欧美综合一区| 妖精一区二区三区精品视频 | 视频一区中文| 91亚色免费| 精品123区| 久久青草精品视频免费观看| 成av人电影在线观看| 精品国产凹凸成av人网站| 懂色av蜜臀av粉嫩av喷吹| 亚洲精选免费视频| 波多野结衣a v在线| 国产精品一区二区黑丝| 91av俱乐部| 亚洲黄色影片| 成人在线观看毛片| 欧美日韩色图| 久久国产精品免费一区| 国产精品亚洲一区二区在线观看 | 麻豆tv在线播放| 91影院成人| 青青草原亚洲| 天天躁日日躁成人字幕aⅴ| 亚洲最大的av网站| 久久精品 人人爱| 国产97在线亚洲| 国产精选在线| 久久久久久亚洲精品中文字幕| 久操视频在线| 日韩一区二区欧美| 国产黄在线播放| 精品调教chinesegay| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 国产精品va在线| 理论不卡电影大全神| 久久久久久久国产| av毛片在线| 大胆人体色综合| 夜级特黄日本大片_在线| 亚洲人成绝费网站色www| 手机看片福利永久| 欧美mv和日韩mv国产网站| 99久久精品国产色欲| 欧美日韩精品一区二区三区| 久久久久久亚洲av无码专区| 色一情一乱一乱一91av| 天堂а√在线中文在线新版 | 99热这里只有精品在线播放| 亚洲综合欧美| 97在线播放视频| 国产一区二区三区成人欧美日韩在线观看| 亚洲一区二区三区av无码| 精品不卡视频| 亚洲色欲久久久综合网东京热| 欧美涩涩视频| 国产freexxxx性播放麻豆 | 成人午夜激情av| 全部av―极品视觉盛宴亚洲| 亚洲老女人av| 另类欧美日韩国产在线| 日日干日日操日日射| 国产一区不卡视频| 香蕉视频色在线观看| 成人手机在线视频| 亚洲精品乱码久久久久久不卡| xf在线a精品一区二区视频网站| 久久丫精品国产亚洲av不卡| 国产区在线观看成人精品 | 66久久国产| 日本免费a视频| 亚洲毛片视频| 亚洲爆乳无码专区| 日本一不卡视频| 91国内在线播放| 粉嫩av一区二区三区粉嫩| 国产伦精品一区三区精东| 91在线小视频| 亚欧精品视频一区二区三区| 亚洲欧美精品午睡沙发| 国产精品99re| 日本高清无吗v一区| 国产毛片一区二区三区va在线| 欧美成人精精品一区二区频| 神马亚洲视频| 久久久精品网站| 91九色porn在线资源| 日本一区二区不卡| av在线精品| 久久久久久久久四区三区| 日韩精品水蜜桃| 久久这里只有精品23| 日日夜夜免费精品| 97免费公开视频| 久久久国产一区二区三区四区小说| 天美传媒免费在线观看| 亚洲一线二线三线久久久| 丁香社区五月天| 日韩一区二区三区免费看| 青青久在线视频| 久久最新资源网| 成人影院网站| 99国产视频| 成人在线丰满少妇av| www.av91| 极品少妇xxxx精品少妇| 18禁裸乳无遮挡啪啪无码免费| 日韩美女久久久| 无码人妻一区二区三区免费| 欧美一级高清大全免费观看| 久久经典视频| 欧美精品久久久久久久| 国产欧美在线观看免费| 久草精品电影| 影视一区二区| 浓精h攵女乱爱av| 久久新电视剧免费观看| 丁香花五月激情| 欧美视频你懂的| 精品999视频| 91国产中文字幕| 日韩一级淫片| 中文字幕99| 日韩 欧美一区二区三区| 国产乱了高清露脸对白| 亚洲精品国产a| 在线观看国产精品视频| 亚洲女人初尝黑人巨大| cao在线视频| 国产精品二区在线| 999视频精品| 性欧美1819| 日本一区二区动态图| 九一国产在线观看| 亚洲电影天堂av| 波多野结衣中文在线| 亚洲综合av影视| 91成人看片| 国产三级精品三级在线| 欧美国产97人人爽人人喊| 亚洲黄色免费观看| 日韩电影中文字幕| www在线观看黄色| 国产乱人伦精品一区二区| 欧美日韩三区| 亚洲精品成人无码毛片| 亚洲精品中文字幕乱码三区| 国产情侣激情自拍| 另类图片亚洲另类| 免费观看在线一区二区三区| 黄色一级视频播放| 激情综合色丁香一区二区| 夫妻性生活毛片| 欧美一区在线视频| 在线中文字幕电影| 96久久精品| 亚洲成人原创| 精品人妻少妇嫩草av无码| 色综合天天做天天爱| 国产精品一级伦理| 国产精品九九久久久久久久| 日本一区二区三区视频| 午夜视频在线网站| 亚洲美女淫视频| 韩国av永久免费| 91精品国产免费久久久久久| 少妇久久久久| 日本美女高潮视频| 亚洲欧洲精品天堂一级 | 亚洲精品久久久久久久久久久久久 | 欧美视频不卡| 网站免费在线观看| 色av一区二区| 91porn在线观看| 91视频8mav| 亚洲美女黄色| 亚洲一区二区三区蜜桃| 欧美日韩精品一区二区天天拍小说 | 国产精品久久777777| 99精品人妻无码专区在线视频区| 欧美国产日韩视频| 欧美美女在线观看| 视频免费1区二区三区| 亚洲一区二区成人在线观看| av女名字大全列表| 国产精品视频中文字幕91| 欧美1区2区| 久久福利小视频| 欧美日韩免费高清一区色橹橹| 日本中文字幕中出在线| 久久综合久久久| 极品美女销魂一区二区三区免费 | 日本在线视频www鲁啊鲁| 精品一区久久久久久| 精品一区二区三区在线观看国产 | 日韩精品中文字幕一区 | 亚洲精品女av网站| 一本色道88久久加勒比精品| 黄大色黄女片18免费| 精品人在线二区三区| 欧美动物xxx| 日韩国产小视频| 中文在线资源观看网站视频免费不卡 | 日本视频一区二区不卡| 国产一区二区中文字幕| 午夜影院免费在线观看| 久热99视频在线观看| 欧美一站二站| 国产激情第一页|