免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

插件加載機(jī)制與did not activate報(bào)錯(cuò)排查:從原理到宿主設(shè)計(jì)

插件加載機(jī)制與did not activate報(bào)錯(cuò)排查:從原理到宿主設(shè)計(jì) 1. 大部分人對(duì)插件的第一印象其實(shí)是錯(cuò)的1.1 插件不是“附屬功能”而是主程序的戰(zhàn)略留白先說(shuō)結(jié)論插件不是一個(gè)可有可無(wú)的附件它更像是主程序故意留出來(lái)的一塊“戰(zhàn)略留白”。主程序只保證核心路徑足夠穩(wěn)定把那些用戶差異很大、迭代速度很快、甚至帶有明顯第三方屬性的能力交給插件來(lái)承接。這樣主程序不用跟著第三方需求不停發(fā)版第三方也不用等主程序的排期兩邊通過(guò)一份約定好的契約松耦合。這套思路在工具軟件里已經(jīng)遍地都是。IDE 里的靜態(tài)分析插件、調(diào)試器擴(kuò)展瀏覽器里的開發(fā)者工具面板音樂播放器里的音源插件CI/CD 平臺(tái)里的通知和部署插件本質(zhì)上都是同一種模式。主程序負(fù)責(zé)“加載和管理”插件負(fù)責(zé)“干活”。所以你會(huì)看到 IAR plugins 這種話題反復(fù)出現(xiàn)——IAR Embedded Workbench 本身是嵌入式開發(fā)的主陣地它的插件通常用來(lái)補(bǔ)充芯片廠商特定的調(diào)試器支持、代碼風(fēng)格檢查、甚至自定義代碼生成。沒有插件系統(tǒng)這些碎片化需求會(huì)把主程序拖成一個(gè)大雜燴有插件系統(tǒng)大家各取所需。還有 MusicFree plugins。MusicFree 這類開源音樂播放器最典型的一點(diǎn)是播放器本體不內(nèi)置任何音源它的曲庫(kù)完全靠插件提供。插件只需要按約定暴露搜索、獲取播放地址、解析歌詞這類接口播放器就能“憑空”獲得一個(gè)音樂源。這種設(shè)計(jì)不是偷懶而是把無(wú)法預(yù)知、也無(wú)法由官方統(tǒng)一維護(hù)的內(nèi)容來(lái)源變成了用戶可以自己接入的能力邊界。主程序管播放體驗(yàn)插件管內(nèi)容來(lái)源誰(shuí)都不越界。1.2 熱搜詞背后的三類人關(guān)注點(diǎn)完全不一樣“plugins”這個(gè)詞在熱搜里火起來(lái)是因?yàn)樗瑫r(shí)戳中了幾類人的痛點(diǎn)??吹?“iar plugins 是干什么的” 的人大概率是嵌入式開發(fā)新手剛打開 IDE 發(fā)現(xiàn)一堆同名插件不知道裝哪個(gè)、也不知道哪幾個(gè)是剛需。看到 “musicfree plugins” 的人多半是在折騰自己的播放器想知道插件從哪來(lái)、安不安全、為什么別人的能放歌自己的不行。看到 “failed to load plugins web boot: 2 entries did not activate” 和 “harness failed to load plugins” 的人基本就是被生產(chǎn)環(huán)境啟動(dòng)報(bào)錯(cuò)按在地上摩擦的那一批。第三種人最慘因?yàn)檫@類報(bào)錯(cuò)信息通常非常抽象。它不會(huì)直接告訴你“某某插件因?yàn)槿鄙僖蕾囁詻]啟動(dòng)”只會(huì)丟一句“有 N 個(gè)入口沒有激活”。如果你不了解插件加載機(jī)制很容易陷入兩種極端要么覺得是插件市場(chǎng)服務(wù)器掛了要么覺得是宿主程序壞了。實(shí)際上大多數(shù)這類問題都出在非常具體、非常瑣碎的地方。我把這句話拆開講你就知道它到底在說(shuō)什么了。2. failed to load plugins web boot一條讓人頭皮發(fā)麻的報(bào)錯(cuò)2.1 這條信息到底在拆解什么先看原文failed to load plugins web boot: 2 entries did not activate。這句話可以拆成三層。web boot是指宿主的啟動(dòng)階段走的是“Web 風(fēng)格的插件引導(dǎo)流程”也就是說(shuō)宿主在啟動(dòng)早期就開始掃描插件清單并且通過(guò)動(dòng)態(tài)加載的方式來(lái)激活插件而不是把所有插件編譯進(jìn)主程序。2 entries did not activate表示這次啟動(dòng)掃描到了若干個(gè)插件入口其中有 2 個(gè)入口沒有成功執(zhí)行激活流程?!叭肟凇边@個(gè)概念很關(guān)鍵。在插件系統(tǒng)里一個(gè)插件可以有多個(gè)入口也可以只有一個(gè)入口。入口通常是在清單文件里聲明的比如plugin.json里的entry字段也可能是在一個(gè)統(tǒng)一的boot配置文件里列出的。宿主啟動(dòng)時(shí)拿到這些入口列表逐個(gè)去加載對(duì)應(yīng)模塊然后調(diào)用插件導(dǎo)出的activate函數(shù)。只要這個(gè)調(diào)用沒成功返回宿主就會(huì)把這個(gè)入口標(biāo)記成did not activate。所以linxin666/dsh-p這種名字出現(xiàn)在報(bào)錯(cuò)里并不是因?yàn)樗拗髡J(rèn)識(shí)這個(gè)插件只是因?yàn)樗拗鲯呙璧搅诉@個(gè)名字對(duì)應(yīng)的入口嘗試激活但失敗了。它可能是某個(gè)內(nèi)部團(tuán)隊(duì)發(fā)布的私有包也可能是某個(gè)構(gòu)建流程自動(dòng)生成的模塊名字長(zhǎng)得像亂碼其實(shí)很正常。不要因?yàn)樗皼]聽說(shuō)過(guò)”就覺得是病毒或者系統(tǒng)問題先按技術(shù)問題處理。2.2 為什么“沒激活”比“加載失敗”更難處理“加載失敗”通常是硬錯(cuò)誤比如文件不存在、網(wǎng)絡(luò)超時(shí)、解壓失敗這類問題日志里往往有清晰的異常堆棧?!皼]激活”則是軟失敗模塊文件可能加載成功了代碼也執(zhí)行了但activate函數(shù)沒能正常完成。它可能是主動(dòng) return 了 false可能是拋了個(gè)被外層捕獲的異常也可能是在某個(gè)異步 Promise 里永遠(yuǎn)沒有 resolve宿主等不到結(jié)果就直接超時(shí)跳過(guò)。軟失敗最讓人頭疼的地方在于宿主程序本身不會(huì)崩潰其他插件可能照常啟動(dòng)業(yè)務(wù)表面上看沒有變化。但那個(gè)沒激活的插件提供的功能比如自定義命令、額外校驗(yàn)、自動(dòng)化步驟會(huì)在一開始就缺席。很多人直到某天手工操作發(fā)現(xiàn)“這個(gè)按鈕怎么沒了”才回頭翻啟動(dòng)日志發(fā)現(xiàn)那條報(bào)錯(cuò)已經(jīng)在角落里躺了兩個(gè)月。另外軟失敗往往不是單個(gè)原因?qū)е碌?。同一個(gè)報(bào)錯(cuò)里出現(xiàn) 2 個(gè) entry 都沒激活有可能它們各自的原因完全不同一個(gè)是因?yàn)榍鍐卫飁ntry路徑寫錯(cuò)另一個(gè)是因?yàn)樗蕾嚨纳嫌尾寮]啟動(dòng)導(dǎo)致它在初始化時(shí)調(diào)不到需要的 API。這時(shí)候如果只盯著“2 entries”這個(gè)數(shù)字排查很容易被帶偏。正確的姿勢(shì)是把每個(gè) entry 各自的錯(cuò)誤日志撈出來(lái)一個(gè)個(gè)單獨(dú)看。2.3 排查這類問題我按固定順序走我處理過(guò)不少插件啟動(dòng)問題總結(jié)下來(lái)固定順序能省一半時(shí)間。第一步永遠(yuǎn)先看完整日志不要只看最后一句。failed to load plugins web boot只是匯總信息真正的堆棧通常在它前面幾十行或者被打了debug級(jí)別。第二步確認(rèn)宿主啟動(dòng)時(shí)掃描的插件目錄到底有哪些文件。很多時(shí)候你改完插件文件但進(jìn)程跑在別的機(jī)器上讀的是舊路徑。第三步做單插件復(fù)現(xiàn)。把插件目錄清到只剩出問題的那一個(gè)再啟動(dòng)宿主。如果單獨(dú)啟動(dòng)能成功那就是插件之間的依賴順序問題如果單獨(dú)啟動(dòng)也失敗那就是插件自身的問題。這一步能直接砍掉一半可能性。第四步檢查清單文件。字段名大小寫、入口路徑相對(duì)誰(shuí)解析、activate是字符串還是函數(shù)名、版本號(hào)格式這些細(xì)節(jié)最容易出錯(cuò)也最容易被人忽略。還有一個(gè)值得單獨(dú)說(shuō)的點(diǎn)處理這類問題最好先把宿主的失敗策略搞清楚。有些宿主遇到插件沒激活會(huì)繼續(xù)跑有些會(huì)直接中止啟動(dòng)。像harness failed to load plugins web boot: 1 entry did not activate huayu-yuan這種如果宿主選擇繼續(xù)跑那問題可能不會(huì)立刻爆發(fā)但如果你在 CI/CD 或者自動(dòng)化平臺(tái)里使用它后續(xù)步驟一旦依賴這個(gè)插件的功能就會(huì)在運(yùn)行中途出現(xiàn)“找不到能力”的連鎖錯(cuò)誤。所以在排查之前先看一眼宿主的配置項(xiàng)里有沒有failOnError之類的開關(guān)能幫你判斷該不該緊張。3. 從零搭一個(gè)插件宿主把報(bào)錯(cuò)復(fù)現(xiàn)出來(lái)3.1 最小插件與宿主的整體設(shè)計(jì)光說(shuō)理論容易飄我建議你親手搭一個(gè)最小的插件宿主把did not activate復(fù)現(xiàn)出來(lái)。這個(gè)過(guò)程會(huì)讓你徹底理解插件加載的每一個(gè)環(huán)節(jié)以后再看到類似報(bào)錯(cuò)腦子里會(huì)自動(dòng)成像宿主讀清單 - 動(dòng)態(tài)導(dǎo)入入口模塊 - 調(diào)用 activate - 等待結(jié)果。我用的技術(shù)選型是 Node.js 原生 ES Module不用任何框架。好處是零依賴你只要裝了 Node 就能跑而且能直觀看到import()動(dòng)態(tài)加載的行為。整個(gè)工程結(jié)構(gòu)如下plugin-host/ ├── plugins/ │ └── hello-world/ │ ├── plugin.json │ └── index.js └── loader.jsplugins目錄下每個(gè)文件夾代表一個(gè)插件。宿主啟動(dòng)時(shí)讀取這個(gè)目錄找到所有子目錄逐個(gè)嘗試激活。插件的清單文件叫plugin.json入口模塊叫index.js。這個(gè)設(shè)計(jì)雖然簡(jiǎn)陋但已經(jīng)具備真實(shí)插件系統(tǒng)最核心的三個(gè)東西清單聲明、動(dòng)態(tài)加載、激活調(diào)用。3.2 核心代碼和每一步的含義先看插件的清單文件plugins/hello-world/plugin.json{ name: hello-world, version: 1.0.0, entry: ./index.js, activate: activate, dependencies: [] }這里的entry表示入口文件相對(duì)當(dāng)前插件目錄的路徑activate表示入口模塊導(dǎo)出函數(shù)的名字。真實(shí)插件系統(tǒng)里往往還會(huì)有deactivate、apiVersion、permissions這些字段這里先不展開保持最小可運(yùn)行。再看插件入口plugins/hello-world/index.jsexport function activate(context) { context.log([plugin] activate called); context.registerCommand(demo.hello, async (...args) { return { greeting: hello from plugin, args }; }); return true; } export function deactivate() { console.log([plugin] deactivate called); }activate函數(shù)接收一個(gè)context對(duì)象這個(gè)對(duì)象由宿主創(chuàng)建用來(lái)給插件提供注冊(cè)能力和日志接口。插件通過(guò)context.registerCommand把自定義命令掛到宿主上然后同步返回true表示激活成功。如果激活過(guò)程中需要做異步初始化可以把a(bǔ)ctivate寫成async function宿主會(huì)await它的返回值。最關(guān)鍵的是宿主加載器loader.jsimport { readdir, readFile } from node:fs/promises; import path from node:path; import { pathToFileURL } from node:url; const PLUGINS_DIR path.resolve(process.argv[2] || ./plugins); function createContext(manifest) { return { manifest, log: (...args) console.log([plugin:${manifest.name}], ...args), commands: new Map(), registerCommand(id, handler) { this.commands.set(id, handler); } }; } async function activatePlugin(dir) { const manifestPath path.join(dir, plugin.json); const manifest JSON.parse(await readFile(manifestPath, utf8)); if (!manifest.entry || !manifest.activate) { throw new Error(manifest 缺少 entry 或 activate); } const entryUrl pathToFileURL(path.resolve(dir, manifest.entry)).href; const module await import(entryUrl); const activate module[manifest.activate]; if (typeof activate ! function) { throw new Error(入口模塊沒有導(dǎo)出可調(diào)用的 ${manifest.activate}); } const context createContext(manifest); await activate(context); return { name: manifest.name, version: manifest.version }; } const results []; for (const entry of await readdir(PLUGINS_DIR, { withFileTypes: true })) { if (!entry.isDirectory()) continue; try { results.push(await activatePlugin(path.join(PLUGINS_DIR, entry.name))); } catch (error) { console.error(entry did not activate: ${entry.name}, error.message); } } console.table(results);這里面有幾個(gè)細(xì)節(jié)值得強(qiáng)調(diào)。第一動(dòng)態(tài)導(dǎo)入必須用pathToFileURL轉(zhuǎn)成file://協(xié)議直接傳絕對(duì)路徑給import()在 Windows 上會(huì)出問題。第二activate不能直接寫死要從 manifest 里讀函數(shù)名這樣不同插件可以約定不同的激活入口。第三createContext每次都新建保證插件之間拿到的上下文對(duì)象是隔離的不會(huì)互相污染命令表。我把錯(cuò)誤捕獲放在每個(gè)插件外面所以一個(gè)插件激活失敗只會(huì)打印一行錯(cuò)誤宿主繼續(xù)嘗試下一個(gè)。這正好模擬了真實(shí)宿主“跳過(guò)問題插件”的行為。如果你運(yùn)行這個(gè)工程正常情況下會(huì)看到hello-world出現(xiàn)在console.table的結(jié)果里如果一切順利你就在沒有任何框架的情況下完成了一次插件激活。3.3 故意制造一次 did not activate工程跑通之后我建議你故意改幾處代碼看看報(bào)錯(cuò)長(zhǎng)什么樣。第一次把plugin.json里的entry改成./missing.js再運(yùn)行宿主。你會(huì)看到類似這樣的輸出entry did not activate: hello-world Failed to load module URL: .../missing.js這就是最常見的did not activate原因之一入口指向的文件不存在。第二種把a(bǔ)ctivate改成init但是入口文件里沒有導(dǎo)出init。此時(shí)報(bào)錯(cuò)會(huì)變成entry did not activate: hello-world 入口模塊沒有導(dǎo)出可調(diào)用的 init第三種在activate函數(shù)里主動(dòng)拋一個(gè)異常比如加一行throw new Error(boom)。宿主會(huì)捕獲到這個(gè)異常并把插件標(biāo)記為未激活。這三種情況幾乎覆蓋了真實(shí)世界中絕大多數(shù)entries did not activate的根因。你親手復(fù)現(xiàn)一次之后再去看failed to load plugins web boot這種報(bào)錯(cuò)就不會(huì)覺得它神秘了。4. 插件系統(tǒng)的正確打開方式設(shè)計(jì)好這四件事4.1 第一件事定義“什么該做成插件”插件不是越多越好。一個(gè)優(yōu)秀宿主最需要克制的地方就是不要把所有功能都插件化。如果某個(gè)功能很穩(wěn)定、幾乎所有用戶都需要、而且跟主程序的核心邏輯強(qiáng)耦合那它就應(yīng)該留在主程序里。反過(guò)來(lái)如果某個(gè)需求存在明顯的個(gè)性化差異、第三方參與度高、更新頻率遠(yuǎn)高于主程序那它就該拆出去做成插件。拿 IAR 的場(chǎng)景舉例代碼編輯器的基本語(yǔ)法高亮、編譯調(diào)用鏈這些屬于主程序能力做成插件反而會(huì)增加用戶安裝成本。但特定芯片型號(hào)的調(diào)試器支持、某個(gè)團(tuán)隊(duì)內(nèi)部的代碼規(guī)范檢查、與公司內(nèi)部缺陷管理系統(tǒng)對(duì)接的功能做成插件就非常合理。原因很簡(jiǎn)單這類功能的目標(biāo)用戶只是一小部分人主程序不需要為少數(shù)人承擔(dān)長(zhǎng)期維護(hù)成本。4.2 第二件事生命周期管理是插件系統(tǒng)的命門一個(gè)插件從被掃描到被卸載至少要經(jīng)歷幾個(gè)階段加載、激活、運(yùn)行、停用。activate階段通常只做輕量初始化比如注冊(cè)命令、建立連接、注冊(cè)事件回調(diào)。真正重的操作比如拉取數(shù)據(jù)、加載模型應(yīng)該放到用戶真正觸發(fā)功能時(shí)再做。如果你的插件在activate里連了一個(gè)超時(shí)不可達(dá)的外部服務(wù)宿主啟動(dòng)就會(huì)變慢甚至因?yàn)?await 太久被宿主判定為“未激活”。deactivate同樣重要。插件被禁用、卸載、升級(jí)之前宿主會(huì)調(diào)用它。這時(shí)候你必須把事件監(jiān)聽器、定時(shí)器、子進(jìn)程、臨時(shí)文件全部清干凈。我見過(guò)很多插件功能本身沒問題但升級(jí)時(shí)舊模塊的資源沒釋放導(dǎo)致新版本一加載就遇到端口占用或者內(nèi)存暴漲。生命周期不是走個(gè)過(guò)場(chǎng)它是插件能否熱插拔的基礎(chǔ)。還有一個(gè)容易踩的坑activate里如果用了async一定要記得把異步初始化完成之后再返回。如果你只是調(diào)用了一個(gè)異步函數(shù)但沒有 await宿主會(huì)認(rèn)為插件已經(jīng)激活成功可實(shí)際上插件內(nèi)部的初始化還在半路。等真正用到它提供的功能時(shí)可能因?yàn)閮?nèi)部狀態(tài)沒準(zhǔn)備好而報(bào)錯(cuò)。這樣的 bug 非常難查因?yàn)槿罩纠餂]有任何失敗信息。所以對(duì)宿主來(lái)說(shuō)要嚴(yán)格等待activate的 Promise對(duì)插件作者來(lái)說(shuō)要對(duì)自己寫的每個(gè)異步操作負(fù)責(zé)。4.3 第三件事依賴和版本決定插件生態(tài)能不能長(zhǎng)大插件之間不應(yīng)隨便互相依賴。如果一個(gè)插件需要調(diào)用另一個(gè)插件的內(nèi)部變量一旦后者升級(jí)或者卸載前者就會(huì)莫名其妙“did not activate”。規(guī)范的做法是宿主作為唯一的中介插件只能通過(guò)宿主暴露的 API 和上下文交互不能直接 import 同級(jí)插件的源碼。如果確實(shí)存在依賴關(guān)系就在 manifest 里聲明dependencies宿主按照拓?fù)漤樞蛞来渭せ?。版本管理方面宿主要有自己的apiVersion插件在 manifest 里聲明自己要求的 API 版本范圍。宿主加載插件時(shí)先做一次版本匹配檢查不匹配就直接跳過(guò)而不是等到調(diào)用時(shí)才崩。版本字段建議使用語(yǔ)義化版本并且要容忍小版本差異。另外插件自身的升級(jí)也要有記錄。很多插件系統(tǒng)出問題都是因?yàn)楸镜鼐彺胬锘熘f版本和新版本。那個(gè)failed to load plugins web boot: 2 entries did not activate里經(jīng)常就藏著一個(gè)“緩存目錄殘留了舊插件文件”的故事。所以插件宿主最好維護(hù)一份清晰的安裝清單記錄每個(gè)插件的名字、版本、安裝時(shí)間、來(lái)源路徑這比到時(shí)候靠猜要可靠得多。4.4 第四件事權(quán)限和沙箱別把信任當(dāng)免費(fèi)午餐插件本質(zhì)上是“一個(gè)能執(zhí)行任意代碼的外部模塊”。你自己寫的插件當(dāng)然可信但第三方插件呢用戶從網(wǎng)上下載的插件呢如果宿主不做任何限制一個(gè)插件就能讀取所有文件、發(fā)任意網(wǎng)絡(luò)請(qǐng)求、訪問宿主的內(nèi)存數(shù)據(jù)。這在單機(jī)工具里也許還能接受放在服務(wù)端或者 CI/CD 環(huán)境里就是災(zāi)難。所以設(shè)計(jì)插件系統(tǒng)時(shí)必須把權(quán)限模型想清楚。最基礎(chǔ)的是讓插件在 manifest 里聲明它需要哪些權(quán)限宿主在安裝時(shí)向用戶展示運(yùn)行時(shí)不授予未聲明的權(quán)限。更進(jìn)一步是把插件放進(jìn)沙箱里執(zhí)行比如瀏覽器插件用 iframe 和消息通道隔離Node 環(huán)境用獨(dú)立的 worker 線程。對(duì)內(nèi)容型插件比如 MusicFree 的音源插件還要額外考慮插件代碼本身可能來(lái)自不可信源用戶要做到“不知道來(lái)源的插件不要隨便裝”。這里不是讓你搞一個(gè)復(fù)雜的零信任體系而是提醒你插件系統(tǒng)的便利性很容易讓人忽略它的風(fēng)險(xiǎn)。插件能調(diào)用的能力越少宿主系統(tǒng)就越穩(wěn)。一個(gè)只能操作自己目錄、只能通過(guò)宿主 API 干活的插件就算寫得再爛影響范圍也有限。5. 高頻插件問題速查表與我的實(shí)操心得5.1 把常見現(xiàn)象、可能原因和排查方向放進(jìn)一張表我在實(shí)際排查和開發(fā)過(guò)程中遇到過(guò)很多插件相關(guān)的問題。我把最典型的情況整理成了一張表方便你按圖索驥。報(bào)錯(cuò)或現(xiàn)象常見原因優(yōu)先排查方向failed to load plugins web boot: 2 entries did not activate插件 initialize 拋錯(cuò)、入口文件不存在、依賴未加載看完整啟動(dòng)日志里的每個(gè)插件堆棧做單插件復(fù)現(xiàn)harness failed to load plugins web boot: 1 entry did not activate huayu-yuan單個(gè)插件入口激活失敗但宿主繼續(xù)運(yùn)行單獨(dú)加載 huayu-yuan確認(rèn)其依賴項(xiàng)和入口路徑插件列表里看不到某插件掃描目錄不對(duì)、文件名不是 plugin.json、目錄結(jié)構(gòu)不對(duì)確認(rèn)插件目錄路徑、清單文件名和字段大小寫插件能加載但沒有功能activate注冊(cè)了命令但宿主沒保存或注冊(cè) ID 沖突檢查registerCommand是否返回成功查看是否有重復(fù)注冊(cè)插件 A 依賴插件 B但 A 先啟動(dòng)了缺少依賴排序機(jī)制在 manifest 里聲明 dependencies宿主按拓?fù)渑判蚣せ畈寮?jí)后開始報(bào)錯(cuò)API 版本不匹配、緩存殘留舊文件對(duì)比新舊版本差異清空插件緩存目錄后重試宿主啟動(dòng)變慢插件在activate里做了重量級(jí)初始化把耗時(shí)操作抽到命令觸發(fā)時(shí)執(zhí)行并用啟動(dòng)時(shí)間統(tǒng)計(jì)驗(yàn)證這張表不能覆蓋所有情況但它能給一個(gè)基本方向。萬(wàn)變不離其宗插件問題的核心永遠(yuǎn)是“清單聲明”、“入口路徑”、“激活函數(shù)”、“依賴版本”這四件事。5.2 幾條不怎么寫進(jìn)文檔的土辦法第一給插件加載過(guò)程加上時(shí)間和狀態(tài)統(tǒng)計(jì)。我之前在宿主啟動(dòng)后打印一張表列出每個(gè)插件的激活耗時(shí)和最終狀態(tài)。這個(gè)習(xí)慣幫我提前發(fā)現(xiàn)了不少問題某個(gè)插件激活從 50ms 漲到 800ms雖然沒有報(bào)錯(cuò)但已經(jīng)是在超時(shí)邊緣試探了。性能退化比直接失敗更難發(fā)現(xiàn)必須靠數(shù)據(jù)暴露問題。第二創(chuàng)建“最小宿主測(cè)試法”。每寫一個(gè)插件都準(zhǔn)備一個(gè)獨(dú)立的空項(xiàng)目只包含宿主和一個(gè)待測(cè)插件。這樣每次調(diào)試都能排除干擾。不要在一個(gè)裝了三十個(gè)插件的環(huán)境里調(diào)新插件因?yàn)槟悴恢朗钦l(shuí)在報(bào)錯(cuò)也不知道是誰(shuí)在搶資源。第三遇到did not activate先查activate這個(gè)名字是不是被改掉了。很多人在迭代時(shí)把激活函數(shù)從activate改成start但忘了改 manifest。宿主不會(huì)智能到自動(dòng)猜測(cè)你的意圖它只會(huì)按聲明找。這種問題一眼看過(guò)去特別低級(jí)但恰恰是最常見的。第四盡量讓插件的錯(cuò)誤信息包含插件名和版本號(hào)。宿主捕獲異常時(shí)要在錯(cuò)誤對(duì)象上補(bǔ)充pluginName、pluginVersion字段。等日志系統(tǒng)一跑起來(lái)你搜索pluginNamehuayu-yuan就能把所有相關(guān)錯(cuò)誤一次性撈出來(lái)而不是靠肉眼在一堆日志里找。5.3 最后分享一點(diǎn)長(zhǎng)期經(jīng)驗(yàn)我自己踩過(guò)最深的坑是在一個(gè)自動(dòng)化平臺(tái)里升級(jí)了插件版本但沒注意到新版本把a(bǔ)ctivate從同步函數(shù)改成了異步函數(shù)還改了啟動(dòng)順序。結(jié)果一部分任務(wù)正常一部分任務(wù)隨機(jī)失敗整整排查了兩天。后來(lái)我把插件的健康檢查寫進(jìn)了宿主的啟動(dòng)流程里每次發(fā)版先看插件激活名單是否完整再看激活耗時(shí)是否正常最后才放業(yè)務(wù)流量進(jìn)來(lái)。這個(gè)習(xí)慣幫我擋住了后面很多次本可以避免的事故。插件系統(tǒng)就像一個(gè)廚房主程序是灶臺(tái)插件是調(diào)味品和半成品。灶臺(tái)本身穩(wěn)定你才能放心嘗試不同的配方但如果有人把一瓶不明來(lái)歷的醬料直接倒進(jìn)鍋里你連菜都沒法吃了。所以無(wú)論你是寫插件、用插件還是維護(hù)一個(gè)插件宿主記住一件事尊重清單、敬畏生命周期、控制權(quán)限、保留監(jiān)控。做到這四點(diǎn)絕大多數(shù)插件問題都能在爆發(fā)之前被你發(fā)現(xiàn)而不是等到生產(chǎn)環(huán)境給你一個(gè)冷冰冰的did not activate。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久天堂色| 久久五月天 91| 色婷婷婷婷| 五月天堂色| 欧美成人无码高清一区二区三区| 五月天色图| 五月天婷婷丁香视频| 天天插天天射| 天天综合网91| 久久激情五月天| 五月丁香黄色| 婷婷综合五月| 久久永久网址| 久久婷婷色综合老司机| 人人摸人人搞| 九九精品热播| 丁香五月另类小说| 99热最新网址| 天天日日天天| 五月天·www·com| 九九伊人网| 99超碰欧美| 欧美日韩91| 天堂婷婷综合| 久久98| 精a品a| 日韩成人电影AV| 一本道在线电影| www.91.com黄| 亚洲婷婷激情综合激情999精品| 超碰只有精品在线| 成人做爰A片免费看视频| 亚洲天堂aaa| 亚洲中文av| 亚州美女| 国产亚洲精品AAAA片APP| 狠狠穞A片一區二區三區| 久久色在线视频| 久青草大香蕉| 久草五月天| 香蕉网婷婷| 午夜大香蕉| 五月丁香性| 婷婷五月丁香成人| 久久视频九九视频| 久久婷婷一级片| 快乐婷婷五月天| 婷婷五月天激情四射| 热久久视频99| 俺去啦综合网| 色色色色色色综合| 亚洲五月天婷婷在线| 成人五月天婷婷| 丁香六月综合激| 欧美日本免费一道免费视频| 精品亚洲国产成AV人片传媒| 97精品人人A片免费看| 激情五月小说婷婷| 亚洲激情网| 国产一二三四五六七八视频| 五月丁香六月欧美综合网站| 九九色播五月丁香| 亭亭五月色男人| 99综合一区| 97操女视频| 大伊香蕉精品视频在线| 北条麻妃九九九国产精品视频| 亚洲成人免费在线| 欧美激情综合五月色丁香| 色色色热热热| 丁香五月激情啪啪综合| 九九偷拍网| 亚洲综合成人网站| 六月婷婷综合激情| 五月天啪啪| 操婷婷基地| 9999综合99综合人| 亚洲综合字幕色色| 国产99视频永久免费| 人人色AV| 九九热精品| 夜夜爽天天爽| 色啪影院| 色天天狠狠干| AV操操操| 五月天丁香网| 五月婷婷精品视频| 欧美性二区| 99热这里只有99| 色五月久久成人婷婷| 色噜噜,噜噜色| 激情婷婷五月天网址| RenRenSe在线视频网站| 五月丁香六月婷婷激情视频在线观看免费 | 99日本精品视频热| 激情都市另类| 特黄三级片| 色情五月丁香婷婷网| 久久av电影| 9 1在线视频| 天天色天天射天天日| 欧美色色色| 欧美性丁香色色五月天综合爱爱| 久久婷婷五月免费视频| www婷婷| 亚洲精品无码一区二区| 国产91九色| 婷婷五月天色| 婷婷五月丁香六月综合网| 99九九在线精品热动漫| 抽插特写| 久久久人妻人伦| 色丁香在线视频| 久久人妻久久| 亚洲性爱AV在线| 99热在线播放精品| 五月婷婷综合色啪| 日本久久综合| 黄色一级影片| 日韩综合成人| 久久欧洲久久| 久艹大香蕉| 8090在线影视少妇| 国产中文亚洲欧美日韩性交| 97碰人人操| 亚洲精品视频在线| 丁香五月影院| 永久免费一区二区三区| 丁香五月激动深爱欧美| 玖玖在线视频福利| 久久久久9| 色五月婷婷成人| 久久久99久久| 色婷婷偷拍| 国产AV一区二区三区最新精品| 99在线视频免费| 97人人操在线| 五月丁香婷婷网在线在线| 色色a| 五月亭久久无码视频| 成人五月天在线观看| 夜夜夜夜夜操| a级毛片一区二区免费视频| 久久久婷| 色色色欧美| 日韩超碰在线| 五月婷婷黄色| 91日本在线观看| 欧美丁香五月| 九九九九操逼| 天天日婷婷| 丁香五月成人社区| 国产成人网| 荷兰av一级| 伊人九九九久| 五月天狠狠| 99视频综合| 五月天激情站| 色色五月婷婷久久| 精品人人操| www.狠狠| 99久在线精品99re8热| 五月丁香六月婷婷国产视频| 99日视频在线| 99只有这里有精品在线视频| 国产亚洲99久久| www.五月丁香av| 风流少妇A片一区二区蜜桃| 婷婷六月激情小说网| 午夜成人天堂久久无码日韩久久| 久久九区| 五月丁香婷婷综合| 天天干天天爽天天爽| 免费视频WWW在线观看网站| 伊人久久大香线蕉av一区| 色色色色热| 色原狠狠综合| 午夜成人AV在线| 91九色国产在线| 淫视馆AV在线| 99热在这里只有免费精品| 色五月婷婷影院| 色婷婷丁香九月| 欧美性猛交99久久久99| 99热精品少| 噜噜在线| 99视频精品在线| 激情婷婷视频在线| 九九aV| 色色综合成人网| 五月香婷婷| 亚洲在线视频321| 久久99精品久久久久久三级| 日本熟女视频一区二区| 亚洲丁香五冃97色| 日本一道久久| 亚洲日本激情| 偷拍九九热| 99热99热在线| 久久天天天| 五月丁香综合激情| 五月天桃色深爱网| 天天爱天天做综合| ady狠狠入| 日韩黄色电影| 丁香五月AV综合| 人妻丰满精品一区二区A片| 婷婷婷五月天最新综合你懂的| 丁香五月天久久| 九九热在线视频观看| 月色色综合婷婷网| 97久久视频| 九九在线这里只有精品视频| 91丨熟女丨首页| 一区无码| 成人国产欧美大片一区| 精品人人操| 久久99久久99精品免视看婷婷| Av在线资源| 亚洲这里只有精品| 日本成人噜噜噜噜噜| 变态另类色图 | 伊人色综合久久久| 天天透天天摸天天舔| 少妇高潮呻吟A片免费看软件| 日韩99精品| 色婷久久| 热久久婷婷| 色婷婷99| 97超碰在线免费观看| 亚洲熟妇AV综合网五月丁香伊人| txt五月激情四射网综合俺也来了| AV在线免费播放| 丁香婷婷人妻| 天天综合五月| 久碰综合| 亚洲影院婷婷色| 无码少妇高潮喷水A片免费| 欧美成人性爱网| 99这里的视频都是精品| 五月天狠狠网站| 日日操无码| 99操逼| 69久久99精品久久久久婷婷| 99热6色| 久久99热免费| 色五月婷婷五月丁香五月激情五月视频 | AA片在线观看视频在线播放| 五月丁香六月激情综合| 美女五月天| 五月欧美丁香在线观看| 五月丁香六月婷婷视频| 五月精品免费XXX| 丁香五月天偷拍| www.玖玖婷婷在线| 丁香婷婷午夜| 国产操逼网站| 婷婷综合视频| 超碰免费99| 五月情涩综合婷婷| caopeng97日韩| 国产激情综合五月| 天天摸天天舔天天爽| 日韩在线观看亚洲| 婷婷丁香97| 91色碰| 色99久草在线| 1囯产午夜仑鲁鲁| 影音先锋AV资源男人站| 超碰成人在线免费观看| 精品99在线观看| 精品操逼一区二区| 色综合综合色| 第四色五月天| 亚洲熟妇AV乱码在线观看| 六月丁香五月天| 99热这里| 五月丁香色情| AV电影在线播放| 久久婷婷伊人| 欧美天天综合网站上去吧| 天天网站天天爽| 精品无码av丁香五月激情| 一起草AV| 99色在线观看| 天天综合色| 中海油常州环保涂料有限公司| 五月天狠狠网站| 99色视| 思思热天天看| 欧美激情丁香五月| www.xtbsty.cn.com蜜乳AV| 中文字幕永久在线| 天天插天天干天天舔| 91九色中文| 亚洲 视频 导航 一区| 久久激情五月天| 99热日本| 五月婷伊人| 都市激情小说婷婷| www.天天干| 丁香五月综合婷婷| www.色五月| 丁香五月婷婷综合激情啪啪啪| 精品国产a| 操97免费超级视频| 五月婷婷成人网首页| 婷婷丁香五月综合激情小说| 丁香色情五月综合网站| 五月色色色| 开心五月深爱五月| 在线资源av-超碰中文在线-成人AV| 另类激情五月| 夜夜做夜夜愛| 99超级碰免费视频| 香蕉伊人综合| 婷婷激情五月综合丁香社| 五月婷婷六月丁香综合在线| www五月| 色五月婷婷丁香凹凸| 综合激情在线| 99精吕视频在线观看了| 久热9| 精品导航在线x不卡| 操操操操操操婷婷五月天| 狠狠狠人妻| 99九九视频精彩在线| 在线日韩视频| 五月婷在线观看| 欧美婷婷五月天综合| 啪啪综合| 久久婷婷电影| 婷婷久久视频| 天天爽人人综合免费7799| 国产精品美女久久久久AV超清 | 色区域网站视频| 99网99热| 99久热在线精品99re6热| 色色五月婷| 天天日,天天射,天天舔| 国产成人精品一区二区三区视频| 色色激情网| 色婷五月| 图片区 小说区 区 亚洲五月| 任我鲁这里有精品视频| 99爱在线视频观看| 少妇真实被内射视频三四区| 精品五月视频婷婷在线观看| 香蕉婷婷色五月| 亚洲av| 婷婷六月激情小说网| 五月天六月色| 国产三级在线播放| 99热欧| 偷拍91九色| 好好日激情五月天| 91久热| 色婷综合| 99热无码| 182tv992tv人之初午夜免费观看| 丁香五月天殴美激情| 99在线观看| 麻豆精品| 9热在线观看| 色月丁| 五月天色婷婷成人| 狠干综合| 思思热视频在线| 99精彩视频| 婷婷激情丁香五月天综合| 91色吧网| 色一情一乱一乱一区91| 婷婷色在线观看| 岛国AAAV| 人人干AV| 97伦色婷婷| AV天堂婷婷五月天| 色婷婷色综合| 91婷婷五月天嫩女| 伊人9在线| 久久久性爱网| 亚洲啪啪视频| 玖玖玖婷婷婷| 欧美色色色色色色色色色色| 一起草Av| 国产精自产拍久久久久久蜜| 综合深爱五月| 色色五月丁香婷婷综合| 久久久久亚洲AV无码网影音先锋| 久久精彩免费视频精彩免费视频| www99热| 丁香 婷婷五月| 1000部毛片A片免费观看| 亚洲综合激| 青青草视频免费观看| 日日操,日日爽| 天天碰夜夜操| 五月婷婷影院| 成人天天爽| 99国产精品久久久久久久久久久| 99亚洲无码| 九月大香蕉| 人人综合久| 女人天堂久久| 可以免费观看的AV| 天天天天天天天操| 丁香五月婷婷婷桃花影院| 极品人妻VideOssS人妻| 国产又爽又猛又粗的视频A片| 久久这里只有精品5| 国产亚洲色婷婷久久99精品91| 六月色狠狠色| 日韩黄色电影| 日日夜夜天天| 婷婷丁香六月| 五月婷伊人| 天天操天天插天天射| 这里只有精品视频| 婷婷国产日本欧美| 美欧日韩国产成人在战| 欧美精品中文字幕亚洲专区| 亚洲免费观看高清完整版AV线| 色色色色综合网| 欧洲MV日韩MV国产| av在线激情| 丁香五月视频在线观看| 亚洲殴洲精品Av在线| 超碰人人操在线| 成人天天爽| YW无码| 香蕉综合网| 五月丁香婷婷啪啪综合网| 99热在线观看99| 91热爆在线| 五月丁香亚洲婷婷| 久久 这里只有精品1| 久久9热| 狠狠操综合| 久久丁香久久| 亚洲丁香五月美女| 丁香蜜臀黄色婷婷五月天| 在线sebiav精品视频| 色综合天天综合成人网| 99久久婷婷五月综合| 日日狠夜夜狠| 亚洲丁香五月美女| 五月婷婷色播视频| 九色视频91疯狂| 91五月花丁香| 丁香五月之久操视频| 五月激情小说网| 色五月天综合网| 天天综合.com| 六月丁香成人| 婷婷午夜精品久久久| 99亚洲精品综合在线| 九九热视频在线观看| 天天干,夜夜爽| 五月四色婷婷| 五月丁六月香av| 噜噜狠狠| 婷五月丁香俺| 丁香婷婷六月婷婷六月婷婷六月婷婷| 超碰大香蕉网| 久草大| 日本WWW九九九| 色婷婷成人久久| 久久丁香综合香蕉| 操91综合网| 超碰在线免费观看日韩| 美女久久婷婷| 色插人人| 99青青草99| 日韩成人中文| 67194线路二在线观看| 欧美色综合天天久久综合精品| 久热9| 九月丁香婷婷综合| a网站免费观看| 色五月色五天色情网| 99riAv1国产在线观看| 新激情五月天天在线网| 天天肏天天肏天天肏| 99视频只有精品| www.婷婷五月| 一区二区乱码视频| 激情五月天啪啪视频| 国产婷婷五月| 日本天堂爱爱| 99久久久国产大片| 婷婷久久六月天| 青青草日本亚洲| 操丝袜视频影院导航| 婷婷五月丁香伊人网| 午夜无码精品色综合久久| 丁香五月98| 丁香五月天综合网| 婷婷色综合av| 五月婷婷深深爱| 涩五月婷婷| 最近中文字幕2019视频1| 丰满人妻妇伦又伦精品国产| 五月天激情日色在线| 亚洲无码黄色| 五月天激情偷拍| 夜夜操狠狠操天天操| 日韩操| 日婷婷久久开心| 综合99久久| 91性高潮久久久久久久久| 日本精品人妻无码77777| 成人国产网| 色情婷| 这里只有精品,日韩视频| 久热最新视频| 91成人电影| www.99热| 在线成人视频免费| 婷婷黄色五月天在线视频| 狠色色狠网| 亚洲成人av在线| 色欲婷婷五月天| 五月丁久久| 在线超碰91| 丁香五月网络网络| 丁香五月天激情视频| 丁香五月婷婷网| 人妻在线观看视频| 99在线观看视频免费| 激情网婷婷婷| 26uuu欧美| 五月婷婷9| 98毛片| 激情五月婷婷五月| 美国少妇性做爰| 嫩草视频观看| 日韩人妻操逼视频| 日本综合色图| 午夜成人AV在线| 久久机热这里只有精品| 丁香色五月天| 五月天婷婷AV| 日韩十国产极品久久| AV九九| 激情综合另类| 99re这里只有精品9| 久久婷婷综合五月趴| 五月丁香综合激情| 大香蕉婷婷五月天| 天天综合精品| 日美三级| 天天射夜夜骑| 欧美S码亚洲码精品M码| 伍月婷丁香婷| 六月丁香激情网| 久久伊人婷| 丁香五月激情性色郤| 99九九玖玖| 五月婷狠狠| 婷婷九月激情网| 我爱大香蕉| 六月激情婷婷综合| 亚洲va欧美va天堂v国产综合| 99精品国产在热久久| 婷婷日韩| 天天看夜夜看| 色婷婷色综合久久精品V| 视频这里只有精品| 丁香五月天激情综合| 99福利导航| 激情九九六月激情免费视频| 玖色色综合| 久久色这里只有精品| 国产av一区二区三区| 色爱综合视频| 天天干 夜夜爽| 五月丁香激情四射| 超碰人人干| 久婷婷婷| 青青草激情网| 伊人五月婷婷| 色狠狠色| 丁香六月 婷婷六月| 来吧亚洲综合网| 丁香六月婷婷激情综合| 婷婷五月情| 中文字幕在线日亚州9| 五月激情综合网| 久久综合丁香| 激情五月综合亚洲另类| 人妻乱码久久久| 天天日天天插| 五月丁香久久丝袜啪啪| 人操91在线| 激情色色色| 97涩婷婷| 人人摸人人澡人人| 另类视频一区| www.五月天| 欧美性爱5月天天天看| 万月丁香狠狠爱| 91精品综合久久久久久五月丁香| 色五月婷婷AV| 人妻少妇色综合| 五月婷婷和六月| 日逼影音先锋男人资源站| 开心五月丁香婷婷| 激情图片婷婷丁香五月| 五月婷婷婷| 五月婷婷 六月丁香| 91色久| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 色婷婷五月天激情在线观看| 综合另类视频| 极品少妇高潮啪啪AV无码| 丁香五月六月激情久久| 五月婷婷深深爱| 色五月婷婷五月| 俺来也综合网精品一区| 色99综合色88| 色一情一乱一乱一区91| 天天插轮理| www.五月婷| 丁香婷婷久久 | 久久精品99国产精品日本 | 99色色| 婷婷开心激情五月激情网| 超碰在线观看9| www.夜夜| 五月天婷婷影院影院观看| 九九热黄色| 综合 激情 婷婷| 日韩99视频| 天天草婷婷五月| 婷婷五月中文字幕| 久草热8精品视频在线观看| 五月开心久久| 亚洲女婷婷五月基地综合久久久| 亚洲人妻Av| 成人αV视频免费观看| 久热69| 色五月激情综合| 色婷婷婷婷| 沈娜娜av| 五月丁香六月激情欧美综合| 丁香五月综合在线视频| 91久久久久久久久18| 操大屄五月天视频| 国产精品人成A片一区二区| 婷婷 丁香 精品| 噜噜噜色噜噜| 日韩色色小视频| 五月开心久久| 天堂va久久久噜噜噜久久Va| CHINESE熟女老女人HD视频| 成人免费在线电影| 久久久久丁香婷婷五月天| 狠狠操综合| 婷婷色片| 中文字幕婷婷在线| 五月精品99综合| 综合激情婷婷| jiZZdr| 综合久久9| 丁香五月自拍| 欧美性爱五月天| 久久激情天堂| 激情综合色婷婷啪啪六月天| 久久五月婷综合网| 就爱日五月天| 碰碰人人人| 996er热| 五月天婷婷在线视频| 久8色色| 久久综合热17c| 婷婷五月天激情网址| 亚洲爱婷婷| 亚洲综合欧美色丁香婷婷888月图片| 国产做爰视频免费播放| 色婷婷电影| 久草大| 日日操日日干| 亚洲性爱99在线| 婷婷久久免费看| 天天色伊人| 亚洲欧洲另类| 色五月丁香总合网| 丁香五月婷婷呀| 亚洲开心激情网| 美女100%露全身无挡网站| 干亚洲天堂| 久久久久婷婷五月热综合| 国产婷婷色五月| 九九色色色| 色婷婷激情| 五月婷婷丁香综合| 六月丁香婷婷色狠狠久久| 亚洲夜五月| 337p午夜影院| 婷婷五月色综合| 夜丁香综合| 新激情五月天天在线网| 亚洲成人网在线观看| 婷婷操逼| 另类少妇人与禽zOZZ0性伦| 日日做A爰片久久毛片A片英语 | 五月天六月天| 日本不卡五月婷婷丁香| 天天搞天天爽| 99久在线精品99re8| 色色激情五月天| 噜噜视频| 国产色色视频| 五月激情综合网婷婷| 青青999| 99re视频在线播放| 这里只有精品视频国产| 天天操天天爱天天玩| 色狠狠色综合| www久久99| A片试看50分钟做受视频| 日韩国产AV播放| 九九婷婷综合| 丁香婷婷人妻综合网| 思思热精品在线观看| 99无码黄色视频| 激情丁香婷婷| 丁香五夜激情四射夜夜夜| 激情五月色播五月| 伊人久久婷婷| 五月Huangsewang| 久re热视频| 色色成人網| 大香蕉网 久久| 成人片在线播放| 97在线视频观看| 六月丁香婷婷色狠狠久久| 97色色色| 婷婷婷婷婷婷婷婷| 天干干夜夜操| 综激情网| 久久久久久婷| 国产亚洲精品AAAAAAA片| 亚洲99在线| 激情四射五月天偷偷看婷婷| 成人网页在线观看| 国产精品美女久久久久AV超清| 日本色色网站| 日韩在线五月天婷婷| 九九蜜臀精品| 六月丁香色色| 九九亚洲| 日本高清久久| 99无码| 激情久久综合网| 五月丁香六月久久| 性天堂久久| 五月婷婷综合色啪首页| 国产做A爰片毛片A片美国| 婷婷五月天视频亚洲| 激情五月天啪啪视频| 五月激情啪啪啪| 狠狠搞亚洲| 色必久悠悠影院| 婷婷中文在线| 久青操| 色月丁| 精品香蕉99久久久久网站| 五月丁香久久| 色色网站在线| 九九九九这里只有精品| 五月天丁香婷| 香蕉婷婷色五月| 亚洲另类视频| 天天日天天爽夜夜爽| 丁香五月婷婷欧美成人色图| 婷婷五月色丁香在线看| 狠狠色丁香婷婷基地| 久久这有这里精品| 激情深爱综合| 五月噜噜噜色综合| 丁香色五月直播| 99热自拍| 91精品久久久久久综合五月天| 8050一级网| 亚洲经典三级| 嫩草AV久久伊人妇女超级A| 婷婷丁香18| 色墦五月丁香| 伊人激情| 丁香五月天激情综合| 天天色丁香| 超碰9| 欧美五月婷婷| 色999五月色| 色吧综合网| 亚洲激情在线| 久久久久9999| 婷婷五月天免费视频| 天天碰夜夜爽| 五月天婷婷成人| 婷婷成人视频| 亚洲在线资源| 日韩AV大全| 天天干天天拍| 内射人妻视频国内| 超碰九热| 午夜福利8055| 97性视频| 激情婷婷五月久久| 毛片网站谁有| 亚洲激情图文小说| 久久久91| 成人五月天婷婷| 超碰在线国产| 天天舔天天摸天天射| 久久久五月激| 开心五月深爱五月婷| 天天天摸夜夜夜玩| 久久五月天婷婷| 婷婷99热| 99热精品免费| 噼里啪啦在线观看免费完整版视频| 欧美精品在线观看| 色综合网页| 精品人妻在线| 9久操| 久久婷丁香五月| 激情六月丁香综合| 五月婷天天搞视频| 97人人看| 97caop| 极品九九九九九九| 人妻射精AV| 99热在线观看亚洲区| 激情综合九月| 国精产品一区一区三区免费视频| 婷婷丁香视频| 丁香五月婷婷国产av| 2022人人操人人看| 欧美性二区| 久久久精品色色色| 99这里有精品视频| av免费在线看不卡无毒| 玖玖五月| 蜜乳国产网站| 五月婷婷影| 久99999热视频在线观看免费| 五月亭亭色| 第四色五月激情网| www,天天干| 99国产精品久久久久久久久久久 | 国产操肏网站| 色播五月丁香婷婷| 精品人妻一区二区| 97操操网| 五月丁香婷婷色色色| 亚洲第一视频 久久| 丁香婷婷九月| 色综合女人99| 热的五码久久精品| 9九色首页| 香蕉AV777XXX色综合一区| 丁香九九九九| www.lingjunshare.com| 色婷婷六月| 亚洲欧美国产A片免费观看| 美妞av| www.久久综合| 五月色亭丁香| 精品99久久久久成人网站免费| 日日干夜夜干| 丁香五月激动深爱欧美| 色噜噜狠狠色综合AV兰草影视| 99热这里只有是亚洲国产| 开心五月深爱五月| www.黄色片-久久成人国产精品在线播放-999AV | 亚洲综合色棒| 99热99在线| 激情五月丁香社区| 色五月婷婷啪啪五月| 久久婷婷伊人| 五月丁香久久呀| 亚洲狠狠操| 色伦专区97中文字幕| 91精品久久久久久久| 亚洲va综合va国产va中文| 五月婷婷电影院| 天天狠狠插| 99色亚洲| 丁香六月婷婷综合| 成人色图情色成人网 www.5b5b5bcom 五月天| 激情五月婷婷老师| 伊人五月婷婷| 伊人婷婷五月天| 人妻视频在线| 9l视频自拍9l视频自拍九色学生| 亚洲精品第一国产综合亚AV | 激情婷婷五月少妇| 丁香五月婷婷激情中文| 色欲色欲久久宗合网| Se.婷婷五月天| 一本色道久久综合狠狠躁小说| 香蕉大综综综合久久| 色亭亭五月天丁香综合AV - 百度 - 百度| 变态 另类 在线| 欧美噜一噜| 国产熟妇的荡欲午夜视频| 天天日夜夜B久久| 五月婷婷中文字幕| 妇激情基地| 色五月婷婷丁香五月| 亚洲av电影在线| 激情五月天激情综合网| 欧美色激情四射| 五月婷婷综合影院| 国产日日操夜夜操的肉棒视频| 日韩精品一区二区三区,四区,五区视频| 五月婷婷六月丁香激情深爱| 久热免费| 丁香五月六月久久综合 | 色噜噜狠狠色综合日日| 99操逼视频| 久热九九| 日韩AAAAA| 色之综合网| 爱射综合| 偷拍视频五月天| 九月性爱网| www.日日夜夜.com| 色婷婷情片| 婷婷五月天亚洲综合| 亚洲婷婷91丁香| 婷婷久久丁香五月| 97人人干| 国产67194| 婷婷狠狠五月综合| 啪啪日本欧美| 激情六月色| 91久久久久久久久| 九九热只有精品| 婷婷五月情色| 成人αV视频免费观看| 女人天堂 AV| 六月综合婷婷开心伊人| 99热日韩| 五月色婷婷在线观看| 亚洲电影在线观看| 欧洲免费视频色| 伊人三级激情| 六月综合婷婷开心伊人| 久久精品国产色| 青吴乐视频| 精品无吗va视频免费观看| 天天爽天天操| 欧美猛片| 超碰成人AV| 翔田千里 50岁 无码| 色黑鬼导航| 国产欧美大香蕉一区| 久久婷婷五月综合| 激情文学 综合 色| 丁香五月-激情综合| 噜一噜在线| 久久久人妻人伦| 伊人久久丁香狠狠婷婷综合香蕉 | 热的五码久久精品| 伊人婷婷福利网| 播五月开心婷婷欧美综合| 狠狠做六月爱婷婷综合aⅴ| 国产精品第一国产精品| 五月丁香啪啪| 噜噜噜噜噜在线| 婷婷五月天渟渟| 九九热视频99| 人人操超踫| 手机在线日韩视频中文字幕| www.99在线| 欧州色色| 日本片日本片祼观看网站在线看中文版网页在线看 | 亚洲色色色| 丁香五月婷久久| 九九综合九九| 婷婷六月香| 538在线精品| 婷婷五月天电影在线| 激情五月综合| 97色精品视频 | 亚洲激情综合| 天堂网啪啪| 激情综合网婷婷久久| 亚洲无aV在线中文字幕| 国产肥白大熟妇BBBB视频| 五月天成人综合| 性爱五月婷婷| 伊人五月综合网| 色五月激情| wwW天天干| 亚洲成人超碰| 人操综合| 97色色综合| 欧美黄色韩日网| 色五月婷婷少妇人妻| 99精品一二三四视频| 开心五月网 | 日韩无码AV电影网站| 99热精品在线播放| 99这里有精品视频视频| 激情五月综合视频| 91九色精品女同系列| 一本到不卡高清DVD| 色情综合| 无码色| 久久免费视频62| 色VA| 91精品久久久久久77777| 久久综合五月| 丁香五月婷婷天激情| 九色视频91| 另类激情五月在线视频欧美| 淫荡工a| 狠狠色婷婷丁香六月| 色V狠狠的干| 综合色网站| 亚洲九九99精品视频在线播放| www.99热| 亚洲综合成人网| 亚洲天堂大香蕉| 丁香六月婷婷综合缴| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 色爱综合网| 中文字幕视频在线播放| 欧美婷婷成人| 丁香五月婷婷激情蜜桃| 激情婷婷五月黑人| 婷婷大美在线| 99色啊| 日韩人妻AV在线| 成人片黄网站色大片免费毛片 | 92久久| 丁香婷婷五月色成人网站| 九九九九中文字幕| a毛片二逼wwwwwwwwww| 国产午夜伦鲁鲁| 51精品国自产在线| 色五月激情五月| 日本色色色| 996热| 日韩无码专区| 天天射影院| 一本道在线电影| 超碰免费在线| 97高清国语自产拍| 五月丁香影视| 99热在线观看| 亚洲中文字幕在线观看| 免费观看18视频网站| 成熟妇人A片免费看网站| 久久精品99国产精品日本| www.五月天| 中国女人做爰A片| 97精品人人A片免费看| 610018岁成人视频| 99热有精品在线观看| 大香伊人久色| 婷婷亚州综合| av电影在线播放| 亚洲人妻电影| 色婷婷激情| 色婷婷av在线| 九九精品在线视频观看| 五月色婷婷综合色| 思思热久在线观看视频| 色五月婷婷激情五月| 五月丁香综合啪啪対白| 婷婷五月天电影在线| 五月天开心激情综合网| 五月丁香五月婷婷| 久久99久久99精品免视看婷| 色五月天婷婷| 五月丁香婷婷色| 国产高清av黄色看片| 婷婷伊人欧美| 一区三区视频有限公司| 天天操B| aaaaa黄色| 亚洲行行色色| 99热免费观看| 秋霞A V毛片| 亚洲另类久久| 五月天婷婷黄色| ji'qi'luan'ren'lun| 激情五月天影院| 大香蕉伊人99| 99热这里只有精品99| 中文不卡av| 丁香五月综合首页| 婷婷五月深情丁香深爱日韩| 五月丁香六月日逼| 五月成人天| 香蕉久久国产AV一区二区| 激情综合网五月婷婷| 99热香港| 91色九| 天天日日人| 亚美欧色影院| 欧美色爱五月天| 五月丁香啪啪网| 日日操夜夜擼| 色婷亚洲| 激情婷婷五月亚洲| 五月婷婷婷婷网| 婷婷综合精品| 色婷婷丁香花五月天| 98色花堂98t.R| 激情久久四色| 激情综合网五月| 日日干夜夜干| 99久久婷婷综合| 啪啪色激情五月天| 欧美成人无码一区二区三区| 婷婷五月天激情五月天深爱五月天| 五月婷婷久久综合| 操操操97| 九色自拍| 久久99成人性爱高清视频| 婷婷五月天AV在线| 日曰躁夜夜躁2026| 色婷婷久久久| 五月天婷婷丁香视频| 国产精产国品一二三在观看 | 91九色在线| 99在线视频。| 色色色欧美| 久草五月天电影网| www.五月婷婷.com| 婷婷婷婷午夜| 亚洲综合久| 日本操逼九九九九58日本操逼| 五月天激情国产综合婷婷| 五月天丁香婷婷视频网址| www,久久久| 狠狠狠狠狠狠狠狠| www.91久久| 在线观看亚洲视频影院| 丁香五月停停av| 九月丁香| 97碰成超视频免费视频| 五月开心啪啪| 日韩成人电影AV| 久热9热| 午夜不卡成人一区二区| 婷婷97碰碰| 午夜av网| 欧美综合五月丁香五月天| 久久在这里99| 蜜臀99久久精品久久久久| 天天碰天天插天天操| 九九热黄色| 色九九九九| 狠狠干综合网| 全部老头和老太XXXXX| 色欲天天综合网| www.婷婷,com| 人妻视频一区而且二区| 婷婷5月开心6月| 99精品免费视频| 五月天停停日日| 婷婷五月天激情五月天深爱五月天| 欧美电影在线播放| 亚洲精品成人| 99丁香五月婷| 99免费在线视频| 婷婷五月丁香久久| 午夜精品久久久久久久爽| 五月婷婷激情综合在线| 婷婷色在线视频| 久草嫩草在线观看| 丁香五月婷婷综合网| 丰满老熟妇BBBBB搡BBB| 五月婷婷丁香啪啪| 在线综合网| 日韩成人中文字幕| 日本在线视频播放91| 色色色色区| 狠狠操狠狠干综合| 日本色99网站| 99热视精品| 丁香五月开心七月| 狠狠999| 国外亚洲成AV人片在线观看| 久久视频这里都是精品| 五月丁香六月婷婷免费| 五月丁香综合激情| 五月丁香六月综合情在线观看| 99亚洲视频| 亚洲天堂大香蕉| 激情综合九月| 任你擦免费视频| 97人人看| 99热在线观看| 亚洲网视屏| www色色色com| 天天射影院| 五月丁香WWW| 五月婷婷影院| 亚洲婷婷六月天| 欧美 色婷婷| 激情宗合网激情五月天| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 欧洲综合色| 亞洲自怕| 色色婷五月天| 欧美情色一区| 亚洲激情综合免费| 超碰色女人| 丁香激情五月| www色色色com| 99精品在线观看| 国产va在线视频| 色婷婷伊人激情在线观看| 久久精品亚洲一级牲爱综合| 色色婷婷婷丁香五月天| 在线综合网| av在线免费播放| 色欲天天综合网| 99热这里只有精品98| 激情涩播| 五月激情六月综合| 色婷婷a v| www.婷婷五月天| 激情五月婷婷综合视频| 殴美97色| 激情视频综合| 天天射夜夜爽| 大香蕉久久视频久久视频| 战争与艾拉电影免费观看| 久久sp免费视频| 超碰在线国产| 婷婷色日本| 97碰 在线视频观看| 九九re精品视频在线观看 | 丁香五月视频在线观看| 在线色婷婷| 色婷婷婷婷| 亭亭玉立国色天香| 人人操9| 久久婷婷91| 婷婷在线观看五月天在线视频| 激情综合丁香六| 色欲婷婷五月天丁香| 亚洲AV成人在线观看| 开心激情婷婷| 激情综合五月激情17| 99久99久| 婷婷丁香色无五月 | 生活片五区| 五月丁香六月婷婷在线小说视频| 色五月婷婷在线观看第一页舔| 日本天堂免费99| 亚洲五月天天| 久草婷婷网| 婷婷五月综合体验看| 99在线观看免费精品视频| 色久99| 激情五月色婷婷|