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

基于模塊聯(lián)邦與大倉模式的商家巨石應(yīng)用拆分實(shí)踐

開發(fā)
微前端是目前解決應(yīng)用拆分的主要解決方案,但是由于其隔離性的機(jī)制使得各個(gè)子應(yīng)用間完全隔離,使得用戶在開發(fā)子應(yīng)用時(shí)無法訪問其他子應(yīng)用頁面,這對于各子應(yīng)用存在關(guān)聯(lián)關(guān)系需要同時(shí)訪問開發(fā)的場景開發(fā)效率較低...

一、背景

商家后臺(tái)前端代碼目前代碼量達(dá)到十萬級(jí),每個(gè)迭代團(tuán)隊(duì)需要在同一倉庫中迭代幾十個(gè)需求,在日漸龐大的巨石應(yīng)用下如此活躍的迭代,開發(fā)效率與構(gòu)建效率上給我們帶來了一些挑戰(zhàn),我們需要優(yōu)化以下幾點(diǎn):

  1. 代碼構(gòu)建體量大,隨著時(shí)間推移,構(gòu)建速度的優(yōu)化空間較少。
  2. 巨石應(yīng)用下各個(gè)業(yè)務(wù)模塊沒有做物理拆分,管理與維護(hù)難度提升。
  3. 應(yīng)用粒度較粗,在發(fā)布節(jié)點(diǎn)上需要對應(yīng)用做進(jìn)一步拆分以優(yōu)化發(fā)布粒度。
  4. 巨石應(yīng)用下,組件與業(yè)務(wù)的關(guān)系需要梳理,避免出現(xiàn)重復(fù)開發(fā)的情況。

微前端是目前解決應(yīng)用拆分的主要解決方案,但是由于其隔離性的機(jī)制使得各個(gè)子應(yīng)用間完全隔離,使得用戶在開發(fā)子應(yīng)用時(shí)無法訪問其他子應(yīng)用頁面,這對于各子應(yīng)用存在關(guān)聯(lián)關(guān)系需要同時(shí)訪問開發(fā)的場景開發(fā)效率較低,并且目前市面上已經(jīng)完全封裝的主流微前端框架對我們來說是黑盒,無法做到高度自定義,無法滿足特定拆分需求,因此我們決定采用模塊聯(lián)邦與大倉模式結(jié)合的方式解決以上問題。

二、目標(biāo)

提升構(gòu)建與維護(hù)效率

將巨石應(yīng)用進(jìn)行拆分,獨(dú)立開發(fā)與部署、提升構(gòu)建部署效率與代碼維護(hù)效率。

雖是單個(gè)子應(yīng)用開發(fā),但可全量訪問巨石應(yīng)用模塊

由于商家內(nèi)部各應(yīng)用間在業(yè)務(wù)上存在上下游的關(guān)系,我們在開發(fā)D子應(yīng)用時(shí),需要在其上游的C、B子應(yīng)用中進(jìn)行相關(guān)配置,它們之間是強(qiáng)綁定的關(guān)系,結(jié)論就是:需要在本地開發(fā)時(shí),能夠同時(shí)使用其他子應(yīng)用的頁面模塊的功能。

三、技術(shù)方案

以上提到的提升構(gòu)建與維護(hù)效率,目前微前端與MF方案都是支持的,關(guān)鍵點(diǎn)在于如何在本地開發(fā)能夠訪問到平臺(tái)的全量功能。本地代碼已經(jīng)有了,啟動(dòng)本地進(jìn)程即可,那么,其他子應(yīng)用如何訪問?

微應(yīng)用代理

如果是從本地再啟動(dòng)其他應(yīng)用,這其實(shí)就背離了應(yīng)用拆分的初衷,同時(shí)也降低了本地開發(fā)的效率,同時(shí)隨著子應(yīng)用越來越多,本地進(jìn)程也會(huì)越來越多,這可能會(huì)大大影響本地開發(fā)效率。看來本地啟動(dòng)行不通,那么從哪里訪問呢?對了,線上不是可以訪問到其他模塊嗎?但是怎么將本地開發(fā)與線上的模塊結(jié)合呢?由于目前商家后臺(tái)使用了MF方式在路由層或vue文件內(nèi)遠(yuǎn)程引入MF模塊,那么是否可以通過MF模塊轉(zhuǎn)發(fā)的方式將遠(yuǎn)程組件代理至本地組件呢?

以上的組件代理插件實(shí)質(zhì)上是用于做MF組件加載管理的chrome插件,可以控制基座應(yīng)用加載的模塊是線上的還是本地。

代理方案如下

  • 用戶首次進(jìn)入線上測試環(huán)境,會(huì)加載遠(yuǎn)程應(yīng)用入口文件,代理插件會(huì)將入口文件根據(jù)用戶配置轉(zhuǎn)發(fā)至對應(yīng)的本地地址。
  • 進(jìn)入路由訪問,由于上一步對遠(yuǎn)程應(yīng)用入口做了代理,加載的模塊被代理至本地,這樣用戶就可以在線上訪問到本地頁面,實(shí)現(xiàn)本地開發(fā)。
  • 在線上基座應(yīng)用與本地應(yīng)用間建立websocket鏈接,本地應(yīng)用代碼更改后通知線上基座應(yīng)用刷新頁面。

下面是具體實(shí)現(xiàn):

generateRedirectUrl = (details: UrlDetailsType) => {
    if (details.url.includes(MICRO_ONLINE_LOAD_PATH)) {
      const redirectUrl = this.generateDefaultProxyUrl({ originUrl: details.url })
      if (redirectUrl) {
        console.log('觸發(fā)代理', `${details.url}代理至${redirectUrl}`)
        this.checkMicroAppStatus({ originUrl: details.url, redirectUrl })

        return {
          redirectUrl,
        }
      }
    }
    if (details.url.includes('t1-dev.dewu.net:98')) {
      console.log("details.url.includes('t1-dev.dewu.net:98')", details.url);
      const redirectUrl = this.generateOnlineUrlByLocal({ originUrl: details.url })
      if (redirectUrl) {
        console.log('觸發(fā)代理', `${details.url}代理至${redirectUrl}`)
        this.checkMicroAppStatus({ originUrl: details.url, redirectUrl })
        return {
          redirectUrl,
        }
      }
    }
  }
  • 文件內(nèi)容代理為本地文件后,此時(shí)對應(yīng)的模塊加載path還是會(huì)加載線上路由,這里同樣需要做內(nèi)容代理。
  • 由于是基于線上測試環(huán)境開發(fā),本地開發(fā)的頁面不僅需要在線上展示,并且本地代碼更新后需要觸發(fā)線上頁面更新,這是必不可少的步驟,我們基于websocket將本地與線上進(jìn)行連接。
  • 不同子應(yīng)用動(dòng)態(tài)設(shè)置socketUrl與PingUrl。
function getHost() {
  if (process.env.SOCKET_SERVER) {
    return new URL(process.env.SOCKET_SERVER);
  }
  return location;
}
function getSocketUrl() {
  let h = getHost();
  let host = h.host;
  host = `localhost:${PORT}`;
  const isHttps = h.protocol === 'https:';
  return `ws://${host}`;
}
function getPingUrl() {
  const h = getHost();
  return `${h.protocol}//${h.host}/__umi_ping`;
}
  • 建立websocket連接,并定時(shí)觸發(fā)連接檢測。
let pingTimer = null;
let isFirstCompilation = true;
let mostRecentCompilationHash = null;
let hasCompileErrors = false;
let hadRuntimeError = false;
const pingUrl = getPingUrl();
if (!window[`${APP_NAME}UmiEntry`]) {
  const socket = new WebSocket(getSocketUrl(), 'webpack-hmr');
  socket.addEventListener('message', ({ data }) =>
    __awaiter(void 0, void 0, void 0, function* () {
      data = JSON.parse(data);
      if (data.type === 'connected') {
        console.log(`[webpack] connected.`);
        // proxy(nginx, docker) hmr ws maybe caused timeout,
        // so send ping package let ws keep alive.
        pingTimer = setInterval(() => socket.send('ping'), 30000);
      } else {
        handleMessage(data).catch(console.error);
      }
    }),
  );
}
  • 本地需求開發(fā)共享部署態(tài)代碼的store與路由跳轉(zhuǎn)。
  • 需求開發(fā)完成后進(jìn)行單個(gè)應(yīng)用部署,由于是本地代理,不影響測試訪問。

基于模塊聯(lián)邦

前面的代理機(jī)制依賴于MF的遠(yuǎn)程加載,模塊聯(lián)邦加載機(jī)制可參考「掘金」平臺(tái)中題目為“最詳細(xì)的Module Federation的實(shí)現(xiàn)原理講解” 這篇文章。基于模塊聯(lián)邦的微前端落地方案可以參考之前的一篇文章 基于Module Federation的模塊化跨棧方案探索。

本地與部署態(tài)基座應(yīng)用通過MF方案加載子應(yīng)用,同時(shí)部署態(tài)新增動(dòng)態(tài)加載保證遠(yuǎn)程組件的實(shí)時(shí)性,在加載入口文件處進(jìn)行監(jiān)控告警。

基座應(yīng)用為部署態(tài),在進(jìn)行MF加載時(shí),通過chrome插件動(dòng)態(tài)控制加載子文件路徑,開發(fā)態(tài)子應(yīng)用共享部署態(tài)代碼的store,路由注冊等基礎(chǔ)配置。

加載態(tài)依賴chrome插件做動(dòng)態(tài)代理,實(shí)現(xiàn)本地與其他測試環(huán)境構(gòu)建代碼的動(dòng)態(tài)切換,同時(shí)子應(yīng)用與部署態(tài)代碼建立websocket代碼更新鏈接,在子應(yīng)用更新代碼時(shí),實(shí)時(shí)刷新線上頁面。同時(shí)支持端口的動(dòng)態(tài)配置,一鍵關(guān)閉。

效果

以上介紹加載鏈路保證了構(gòu)建部署提速與功能的完整,較好的解決了應(yīng)用拆分功能不完備問題。本次架構(gòu)優(yōu)化將構(gòu)建由15s減少至2.0s。業(yè)務(wù)需求部署速度由8min減少至2min。

四、應(yīng)用拆分

大倉模式

應(yīng)用拆分只是目的,要實(shí)現(xiàn)這個(gè)目標(biāo)不僅僅要做拆分,對于商家后臺(tái)來說各個(gè)應(yīng)用間的復(fù)用同等重要,由于是業(yè)務(wù)解耦,這意味著各應(yīng)用間存在更多可復(fù)用的功能與模塊。

同時(shí)不僅是商家后臺(tái)的部分模塊也會(huì)在交易后臺(tái)使用,既要保證應(yīng)用業(yè)務(wù)的解耦,同時(shí)要保證組件充分復(fù)用,大倉模式是目前最合適的方案。

大倉模塊化共享

由于商家后臺(tái)各個(gè)子應(yīng)用由于同屬商家整條業(yè)務(wù)鏈路,存在眾多可共用的組件和模塊,而npm發(fā)布模式本身給業(yè)務(wù)組件與業(yè)務(wù)項(xiàng)目帶來了一定隔離性,同時(shí)因?yàn)楦髯討?yīng)用業(yè)務(wù)上存在關(guān)聯(lián),很多大型模塊需要被多個(gè)子應(yīng)用引入,而這些大型模塊的迭代通常比較頻繁,同時(shí)需要對業(yè)務(wù)請求進(jìn)行封裝。這里我們使用了基于大倉模式的源碼引入以達(dá)到代碼共用的目的。組件開發(fā)鏈路如下:

這里體現(xiàn)的是源碼引入的方式,在構(gòu)建態(tài)進(jìn)行通用模塊的打包構(gòu)建,這一點(diǎn)目前能跑通的背景是商家后臺(tái)本身是一個(gè)完整的應(yīng)用,現(xiàn)有的模式同樣是一個(gè)組件被多個(gè)模塊所使用,同時(shí)測試階段也是全量回歸。以下是大倉組件基礎(chǔ)鏈路:

  1. 組件構(gòu)建發(fā)布使用標(biāo)準(zhǔn)的cli規(guī)范。
  2. 在提交MR節(jié)點(diǎn)與發(fā)布節(jié)點(diǎn)新增自動(dòng)化卡口。
  3. 通過依賴分析自動(dòng)化檢測單測運(yùn)行范圍。
  4. 組件發(fā)布時(shí)發(fā)布通知,提醒組件使用者,并運(yùn)行業(yè)務(wù)單測。

之后會(huì)對該部分做詳細(xì)介紹。

五、總結(jié)與思考

單應(yīng)用構(gòu)建->單頁面構(gòu)建?

以上主要講述了MF方案如何將本地結(jié)合線上開發(fā),這里僅對微應(yīng)用級(jí)別做了解耦,基于MF的模塊化實(shí)現(xiàn),由于remoteMicro實(shí)質(zhì)上是創(chuàng)建了一個(gè)引用路徑到require函數(shù)的映射然后代理至本地,那么對于不同模塊,在能力上是具備模塊化代理的能力的,基于目前MF按需構(gòu)建(僅構(gòu)建暴露出去的組件模塊)的規(guī)則,我們可以對某個(gè)模塊的映射對象里的xxx.async.js做代理。這樣就可以實(shí)現(xiàn)頁面粒度的按需構(gòu)建,在部署構(gòu)建提速上有很大潛力。

本篇文章主要介紹了如何對商家巨石應(yīng)用做拆分,包括拆分方案的介紹,如何同時(shí)保證單個(gè)構(gòu)建與功能完整性,并且針對微應(yīng)用代理加載進(jìn)行了進(jìn)一步探索,接著介紹了大倉模式下需要遵循的規(guī)范以及未來的規(guī)劃。大倉模式目前在前端平臺(tái)已經(jīng)持續(xù)不斷地完善,將來應(yīng)該會(huì)針對此模式做更詳細(xì)的介紹,在拆分這件事情上,對于構(gòu)建本身或許能被更加細(xì)粒度化,構(gòu)建文件的代理本質(zhì)上減少了代碼的構(gòu)建量,目前是通過人為控制的方式,此次驗(yàn)證了模塊聯(lián)邦支持可代理與動(dòng)態(tài)更改expose。基于這兩個(gè)特性,是否能將構(gòu)建做到更加局部化,這可能會(huì)成為構(gòu)建優(yōu)化的方向。應(yīng)用拆分一方面提升了開發(fā)人員的開發(fā)與部署效率,同時(shí)也對業(yè)務(wù)迭代流程做了業(yè)務(wù)解耦,明確了責(zé)任邊界,更有利于后臺(tái)應(yīng)用的開發(fā)需求管理,降低需求代碼維護(hù)成本。

責(zé)任編輯:龐桂玉 來源: 得物技術(shù)
相關(guān)推薦

2024-07-11 11:31:17

2021-04-27 19:20:54

微應(yīng)用模塊聯(lián)邦

2022-05-13 12:34:16

美團(tuán)開發(fā)實(shí)踐

2020-09-15 13:55:22

密碼技術(shù)車聯(lián)網(wǎng)

2023-12-07 07:02:00

大倉權(quán)限設(shè)計(jì)

2025-01-07 14:42:09

2022-06-03 09:30:31

店鋪W3C體系渲染

2015-03-10 18:13:08

2024-05-07 08:31:09

SpringFlowable業(yè)務(wù)流程

2023-12-06 13:18:00

物聯(lián)網(wǎng)

2014-05-05 11:41:09

云儲(chǔ)存谷歌

2022-12-23 19:22:47

前端單測

2023-11-27 18:38:57

得物商家測試

2022-03-22 22:05:39

區(qū)塊鏈支付模式

2021-12-08 10:35:04

開源監(jiān)控Zabbix

2009-01-03 14:57:19

ibmdwLotusWeb2.0

2017-05-18 11:43:41

Android模塊化軟件

2024-05-10 13:01:49

2024-08-30 09:53:17

Java 8編程集成
點(diǎn)贊
收藏

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

欧美系列一区| 国产成人精品av在线| www.com日本| 极品美鲍一区| 国产欧美日韩激情| 91精品国产综合久久久久久丝袜| 99免费在线观看| 精品国精品国产自在久国产应用| 欧美日韩精品是欧美日韩精品| 神马午夜伦理影院| 头脑特工队2在线播放| 久久精品综合| 九九热r在线视频精品| 亚洲第一香蕉网| 美国十次综合久久| 91成人国产精品| 国产日韩亚洲欧美在线| 成年人在线观看视频| 成人免费va视频| 国产精品美女久久久久久免费| 欧美精品色哟哟| 狠狠做深爱婷婷综合一区| 日韩精品专区在线| 另类小说色综合| 黄色在线网站噜噜噜| 亚洲三级视频在线观看| 欧美日韩亚洲一区二区三区在线观看 | 欧美精品在线免费播放| 91精品人妻一区二区三区| 网站一区二区| 欧美日韩亚洲综合一区二区三区| 欧日韩免费视频| 黄网页在线观看| 欧美国产日本视频| 麻豆传媒一区| 黄色av中文字幕| 精品午夜一区二区三区在线观看 | 国产在线无码精品| 尤物视频在线免费观看| 久久精品人人做| 精品欧美国产| www.久久久久久| 久久精品av麻豆的观看方式| 国产福利精品av综合导导航| 久久久午夜影院| 黄色成人精品网站| 欧美成人精品一区二区| 五月婷婷综合激情网| 欧美日韩老妇| 亚洲午夜av电影| 国产精品国产三级国产专业不| 免费萌白酱国产一区二区三区| 欧美第一区第二区| 无套白嫩进入乌克兰美女| 99久热在线精品视频观看| 欧美日韩激情一区二区| 15—17女人毛片| 超薄肉色丝袜脚交一区二区| 91高清视频在线| 国产成人a亚洲精v品无码| 国产在线看片免费视频在线观看| 亚洲午夜精品网| 成人免费性视频| h片在线观看| 午夜成人免费电影| 亚洲乱码中文字幕久久孕妇黑人| 一本大道色婷婷在线| 黑人巨大精品欧美一区免费视频| 国产黄色一级网站| 97久久香蕉国产线看观看| 色94色欧美sute亚洲13| 一本久道中文无码字幕av| 素人一区二区三区| 欧美军同video69gay| 日本中文字幕观看| 国产一区一区| 精品国产91洋老外米糕| 99精品一区二区三区无码吞精| 另类春色校园亚洲| 亚洲色图日韩av| 中国特黄一级片| 欧美a级在线| 91精品国产精品| 波多野结衣影片| 国产专区综合网| 国产精品麻豆免费版| 午夜视频免费在线| 中文字幕高清不卡| 日本五级黄色片| 免费h在线看| 欧美色老头old∨ideo| 亚洲国产午夜精品| 伊人久久大香线蕉无限次| 自拍偷拍亚洲欧美| 国产精品50页| 蜜乳av一区二区| 91久久极品少妇xxxxⅹ软件| 欧美孕妇孕交xxⅹ孕妇交| 国产精品久久看| 妞干网在线视频观看| 国语自产精品视频在线看抢先版结局| 欧美一区二区大片| 好吊日免费视频| 亚洲无中文字幕| 日产精品久久久一区二区福利| 中文字幕日韩第一页| 高清国产一区二区| 午夜欧美性电影| av中文在线资源库| 91精品国产综合久久精品| 强迫凌虐淫辱の牝奴在线观看| 日本在线电影一区二区三区| 韩国国内大量揄拍精品视频| 中日韩av在线| 91在线精品一区二区| 日本丰满少妇黄大片在线观看| 国产精品电影| 日韩午夜电影av| 欧美午夜激情影院| 亚洲综合三区| av资源站久久亚洲| 欧美三级黄网| 欧洲激情一区二区| 国产 中文 字幕 日韩 在线| 中文视频一区| 成人免费福利在线| gogogo高清在线观看免费完整版| 欧美日韩视频免费播放| 国产一级免费片| 综合久久一区| 成人免费激情视频| 91porn在线观看| 色欧美日韩亚洲| 成人免费无码大片a毛片| 中文字幕一区二区三区乱码图片| 国产精品福利久久久| 天堂中文字幕在线| 午夜精品一区二区三区三上悠亚| 97超碰免费在线观看| 欧美国产一级| 国产欧美精品在线播放| 国产三级在线看| 色婷婷综合久久久| 巨胸大乳www视频免费观看| 99热免费精品在线观看| 国产视频精品网| 男女在线视频| 精品国产伦一区二区三区免费| 无码黑人精品一区二区| 狠狠色2019综合网| 日韩 欧美 自拍| 婷婷久久免费视频| 久久九九亚洲综合| 国产特级黄色片| 亚洲乱码国产乱码精品精的特点 | 青青草影院在线观看| 欧美一级做a| 国产亚洲精品久久久优势 | 欧美日韩你懂的| 婷婷综合在线视频| 免费人成网站在线观看欧美高清| 日本一区视频在线观看| 国产精品成人国产| 日日狠狠久久偷偷四色综合免费| 88av在线视频| 亚洲精品免费一二三区| 日韩av无码一区二区三区不卡| 99成人免费视频| 免费观看成人高| 久久国内精品| 美女国内精品自产拍在线播放| 精品国产999久久久免费| 亚洲一区av在线| 国产精品嫩草av| 日韩专区中文字幕一区二区| 亚洲欧洲精品一区二区| 经典三级久久| 98精品国产高清在线xxxx天堂| 午夜视频www| 欧美亚洲一区二区在线观看| 国产尤物在线播放| 成人h动漫精品一区二区| 久久久精品在线视频| 激情综合网五月| 91综合免费在线| а√在线中文网新版地址在线| 亚洲人成自拍网站| 国产色在线视频| 色综合久久综合| 日本高清不卡免费| 26uuu亚洲| 欧美成人三级在线播放| 国内自拍一区| 天天好比中文综合网| 久久精品免视看国产成人| 7777kkkk成人观看| 欧美成人hd| 亚洲国产中文字幕在线观看| 在线中文字幕网站| 亚洲综合色区另类av| 亚洲а∨天堂久久精品2021| 国产精品亚洲一区二区三区在线 | 久久99久久精品| 欧美,日韩,国产在线| 四虎国产精品免费观看 | 日本一本不卡| 高清不卡日本v二区在线| 嫩草伊人久久精品少妇av杨幂| 欧美日本高清视频| 91大神xh98hx在线播放| 日韩高清欧美高清| www.久久综合| 欧美日韩亚洲丝袜制服| 九九热精品视频在线| 亚洲精品水蜜桃| 午夜成人亚洲理伦片在线观看| 99精品视频一区二区三区| 91 视频免费观看| 日日夜夜免费精品| 日韩精品视频一区二区在线观看| 欧美激情理论| 亚洲二区自拍| 精品在线观看入口| 精品91免费| 亚洲精品v亚洲精品v日韩精品| 国产精品亚洲第一区| 国产盗摄——sm在线视频| 欧美成人免费播放| 日韩在线观看www| 国产亚洲一级高清| 户外极限露出调教在线视频| 亚洲国产欧美一区二区丝袜黑人| 国产男女无套免费网站| 欧美精品日韩一区| 亚洲免费视频二区| 色欧美片视频在线观看| 日韩av大片在线观看| 天天综合色天天| 日本在线视频免费| 亚洲3atv精品一区二区三区| 免费在线观看黄视频| 亚洲精品乱码久久久久久久久| 美女网站视频色| 国产欧美一区二区精品久导航| 亚洲天堂网一区二区| 成人avav在线| 国产精品第七页| 91美女视频网站| 人妻熟女aⅴ一区二区三区汇编| 9色porny自拍视频一区二区| 你懂的在线观看网站| 99久久免费国产| 一区二区三区少妇| 91麻豆国产精品久久| 亚洲精品成人无码熟妇在线| 久久麻豆一区二区| 欧洲女同同性吃奶| 日本一区二区高清| 亚洲激情图片网| 亚洲欧美日韩中文字幕一区二区三区| 一级片黄色录像| 亚洲精品一二三| 国产精品99无码一区二区| 性做久久久久久| www.com国产| 欧美日韩国产免费一区二区| 伊人色综合久久久| 日韩色视频在线观看| 人妻无码中文字幕免费视频蜜桃| 亚洲国产一区二区三区四区| 免费人成黄页在线观看忧物| 夜夜躁日日躁狠狠久久88av| 日本三级视频在线播放| 欧美伦理91i| 麻豆蜜桃在线观看| 国产成人+综合亚洲+天堂| 91精品在线免费视频| 高清国产在线一区| 最新国产一区| 中文精品一区二区三区| 欧美午夜一区| 少妇高清精品毛片在线视频| 六月丁香婷婷色狠狠久久| 韩国av中国字幕| 久久久国产午夜精品| 无码人妻精品一区二区三区夜夜嗨| 亚洲国产裸拍裸体视频在线观看乱了 | 三级视频在线播放| 自拍偷拍亚洲在线| 国产网红在线观看| 国产精品成熟老女人| 试看120秒一区二区三区| 欧美精品七区| 中文字幕免费精品| 国产精品少妇在线视频| 麻豆精品久久久| 欧产日产国产精品98| 亚洲国产精品传媒在线观看| 国产中文字字幕乱码无限| 91国偷自产一区二区三区观看| 国产www免费观看| 亚洲一级免费视频| 欧美日本视频在线| 国产免费a视频| 91精品国产综合久久福利| 中日韩精品一区二区三区| 亚洲日韩欧美一区二区在线| 亚洲激情视频一区| 欧美麻豆精品久久久久久| 天堂av在线播放| 久久中文字幕在线| 九九热线视频只有这里最精品| 亚洲aa中文字幕| 精品久久久久久久久久久aⅴ| www.夜夜爱| 精品亚洲成a人| 精品无码国产污污污免费网站 | 波多野结衣喷潮| 一本到高清视频免费精品| 精品国产免费无码久久久| 国产一区二区三区日韩欧美| 超碰在线99| 99re视频在线| 欧美激情国产在线| 亚洲无吗一区二区三区| 91在线看国产| 日韩高清免费av| 日韩午夜在线影院| 九色porny丨首页在线| 国产精品吊钟奶在线| 亚洲日产av中文字幕| 大西瓜av在线| 国产成人午夜电影网| 精品国产视频在线观看| 欧美剧情电影在线观看完整版免费励志电影 | 欧美aaaaa性bbbbb小妇| 99在线视频首页| 欧美搞黄网站| 久久精品久久99| 1区2区3区欧美| 亚洲图片在线播放| 色综合伊人色综合网站| 玖玖精品在线| 亚洲第一导航| 久久99热99| 欧美成人精品欧美一级| 日韩欧美一级精品久久| 91网址在线观看| 91蜜桃网站免费观看| 午夜日韩av| 久久精品无码专区| 亚洲永久免费av| 日本国产在线观看| 国自在线精品视频| 秋霞综合在线视频| 欧美黄网站在线观看| 国产日韩欧美麻豆| 在线观看中文字幕码| 久久成人国产精品| 日韩精品亚洲专区在线观看| 欧美日韩福利在线| 成人av网站免费观看| 日本韩国欧美中文字幕| 亚洲人成亚洲人成在线观看| 国产精品久久久久久妇女| 一本一生久久a久久精品综合蜜| 国产最新精品免费| 九九热视频精品| 亚洲国产精品久久精品怡红院| 成年女人在线看片| 久久综合一区二区三区| 日本伊人精品一区二区三区观看方式| 粉嫩精品久久99综合一区| 欧美电影一区二区| 成人性生交大片免费看网站 | 久草福利在线| 国产欧美在线播放| 黄色国产精品| 亚洲AV无码国产成人久久| 欧美日韩国产系列| 污影院在线观看| 欧美日韩一区二区三区在线视频 | 成人18在线| 91在线免费观看网站| 亚洲欧洲一级| 少妇的滋味中文字幕bd| 精品国产欧美一区二区| 成人看片网页| 中文字幕日韩精品无码内射| 2020国产精品久久精品美国| 一级特黄特色的免费大片视频| 欧美疯狂xxxx大交乱88av| 免费精品国产| 青娱乐国产精品视频| 欧美性xxxx极品高清hd直播| 精产国品自在线www| 精品日产一区2区三区黄免费 | 天天操天天干天天综合网| 91社区在线| 麻豆蜜桃91|