久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

PlantUML驅(qū)動(dòng)的可執(zhí)行架構(gòu)圖設(shè)計(jì)方法論

PlantUML驅(qū)動(dòng)的可執(zhí)行架構(gòu)圖設(shè)計(jì)方法論 1. 項(xiàng)目概述這不是畫(huà)圖是構(gòu)建可執(zhí)行的邏輯骨架“diagram-design”這個(gè)詞組乍一看像美術(shù)課作業(yè)但在我過(guò)去十年帶過(guò)的幾十個(gè)跨領(lǐng)域項(xiàng)目里它從來(lái)不是PPT里的裝飾性插圖而是系統(tǒng)落地前最關(guān)鍵的“可執(zhí)行藍(lán)圖”。我見(jiàn)過(guò)太多團(tuán)隊(duì)在開(kāi)發(fā)中期突然卡住——后端說(shuō)接口定義和前端理解不一致測(cè)試同學(xué)發(fā)現(xiàn)流程分支根本沒(méi)覆蓋到異常路徑運(yùn)維反饋部署順序一錯(cuò)整個(gè)服務(wù)鏈就崩。問(wèn)題根源往往不在代碼而在最初那張沒(méi)人認(rèn)真推演過(guò)的圖。真正的diagram-design本質(zhì)是把模糊的業(yè)務(wù)語(yǔ)言翻譯成機(jī)器可讀、人可驗(yàn)證、團(tuán)隊(duì)可對(duì)齊的中間態(tài)表達(dá)。它解決的核心問(wèn)題是當(dāng)需求文檔寫(xiě)滿20頁(yè)卻依然存在歧義時(shí)如何用一張圖讓所有人站在同一事實(shí)基線上適合誰(shuí)如果你是剛接手遺留系統(tǒng)的維護(hù)者想30分鐘內(nèi)搞清資金流轉(zhuǎn)全鏈路如果你是產(chǎn)品經(jīng)理需要向技術(shù)團(tuán)隊(duì)精準(zhǔn)傳遞“用戶充值失敗后自動(dòng)觸發(fā)補(bǔ)償任務(wù)”的完整狀態(tài)躍遷如果你是架構(gòu)師在設(shè)計(jì)微服務(wù)拆分邊界時(shí)需要可視化服務(wù)間依賴(lài)強(qiáng)度——這張圖就是你的第一道防線。關(guān)鍵詞“diagram-design”背后藏著三個(gè)硬核需求語(yǔ)義無(wú)損圖中每個(gè)符號(hào)必須有明確定義、可追溯性圖中任一節(jié)點(diǎn)能反向定位到原始需求條目或代碼模塊、可演化性當(dāng)業(yè)務(wù)規(guī)則變更時(shí)圖能像代碼一樣被版本管理、diff對(duì)比、自動(dòng)校驗(yàn)。這不是畫(huà)給老板看的匯報(bào)材料而是寫(xiě)給未來(lái)自己和團(tuán)隊(duì)的“技術(shù)契約”。2. 核心設(shè)計(jì)思路與方案選型邏輯2.1 為什么拒絕純手繪截圖的“偽diagram”很多團(tuán)隊(duì)第一步就踩坑用Visio或draw.io拖拽幾個(gè)方框配上“用戶”“訂單”“支付”文字導(dǎo)出PNG塞進(jìn)Confluence。這種圖在項(xiàng)目啟動(dòng)會(huì)現(xiàn)場(chǎng)可能贏得掌聲但兩周后就會(huì)失效。我經(jīng)歷過(guò)一個(gè)電商促銷(xiāo)系統(tǒng)重構(gòu)初期用這類(lèi)圖確認(rèn)了主流程結(jié)果上線前發(fā)現(xiàn)三個(gè)致命盲區(qū)第一圖中“庫(kù)存扣減”節(jié)點(diǎn)沒(méi)標(biāo)注是強(qiáng)一致性還是最終一致性導(dǎo)致DB事務(wù)和Redis緩存更新策略完全相反第二“優(yōu)惠券核銷(xiāo)”分支缺失了風(fēng)控?cái)r截環(huán)節(jié)實(shí)際代碼里有5層規(guī)則引擎嵌套第三所有箭頭都標(biāo)著“→”但沒(méi)區(qū)分同步調(diào)用、異步消息、定時(shí)任務(wù)三種通信模式結(jié)果壓測(cè)時(shí)MQ堆積直接雪崩。根本原因在于手繪圖天然缺乏結(jié)構(gòu)化約束——它無(wú)法強(qiáng)制你定義節(jié)點(diǎn)類(lèi)型、關(guān)系語(yǔ)義、數(shù)據(jù)流向。就像用Word寫(xiě)代碼語(yǔ)法檢查器永遠(yuǎn)沉默。所以我們的方案必須從源頭杜絕“自由發(fā)揮”所有diagram必須基于可編程的DSL領(lǐng)域特定語(yǔ)言生成人工編輯只允許在DSL層面修改文本圖形渲染完全由工具鏈自動(dòng)完成。這樣做的好處是當(dāng)你把“庫(kù)存扣減”改成“庫(kù)存預(yù)占”工具能立刻報(bào)錯(cuò)“預(yù)占操作必須關(guān)聯(lián)超時(shí)回滾定時(shí)任務(wù)”而手繪圖只會(huì)讓你在生產(chǎn)環(huán)境凌晨三點(diǎn)收到告警。2.2 為什么選擇PlantUML而非Mermaid或Graphviz市面上主流方案有三類(lèi)Mermaid輕量級(jí)GitHub原生支持、Graphviz學(xué)術(shù)界老牌DOT語(yǔ)言嚴(yán)謹(jǐn)、PlantUMLJava生態(tài)成熟擴(kuò)展性強(qiáng)。我們最終鎖定PlantUML決策依據(jù)來(lái)自三次真實(shí)故障復(fù)盤(pán)。第一次是某支付網(wǎng)關(guān)升級(jí)Mermaid生成的序列圖無(wú)法表達(dá)“跨進(jìn)程重試”語(yǔ)義導(dǎo)致開(kāi)發(fā)誤以為所有重試都在單個(gè)JVM內(nèi)完成實(shí)際上重試請(qǐng)求被負(fù)載均衡打散到不同節(jié)點(diǎn)造成冪等鍵重復(fù)生成。PlantUML的alt/opt/loop組合塊能精確描述這種分布式重試邊界。第二次是某風(fēng)控系統(tǒng)對(duì)接Graphviz的DOT語(yǔ)法要求手動(dòng)計(jì)算節(jié)點(diǎn)坐標(biāo)當(dāng)新增一個(gè)“設(shè)備指紋校驗(yàn)”模塊時(shí)整個(gè)圖布局全部錯(cuò)亂團(tuán)隊(duì)花了3小時(shí)調(diào)整位置卻忘了更新文字說(shuō)明。PlantUML的自動(dòng)布局引擎尤其left to right direction指令讓新增模塊只需追加幾行文本圖形自動(dòng)重排且保持邏輯流向清晰。第三次是某IoT平臺(tái)需要同時(shí)輸出設(shè)備拓?fù)鋱D、消息流圖、狀態(tài)機(jī)圖。Mermaid各子圖語(yǔ)法割裂Graphviz需為每種圖寫(xiě)不同DOT文件而PlantUML用同一套語(yǔ)法startuml!include就能切換componentDiagram、sequenceDiagram、stateDiagram關(guān)鍵是可以共享同一份實(shí)體定義——比如[PaymentService]在組件圖里是容器在序列圖里自動(dòng)變成生命線在狀態(tài)圖里成為狀態(tài)持有者。這種語(yǔ)義一致性讓跨圖追蹤成為可能這才是diagram-design的核心價(jià)值。2.3 為什么堅(jiān)持文本優(yōu)先而非GUI拖拽有同事質(zhì)疑“直接拖拽多快何必寫(xiě)代碼”我的回答是拖拽工具生成的圖90%會(huì)在三個(gè)月內(nèi)變成技術(shù)負(fù)債。舉個(gè)真實(shí)案例某公司采購(gòu)了某商業(yè)UML工具架構(gòu)師花兩天拖出37張類(lèi)圖但當(dāng)新成員入職時(shí)沒(méi)人能看懂那些自定義圖標(biāo)含義——原來(lái)“藍(lán)色閃電圖標(biāo)”代表“調(diào)用外部API”但圖例只存在架構(gòu)師電腦桌面的便簽紙上。而PlantUML文本方案打開(kāi).puml文件第一行就是 description: 支付服務(wù)核心狀態(tài)機(jī)v2.32024-06-15緊接著是title 支付訂單狀態(tài)流轉(zhuǎn)所有語(yǔ)義都固化在文本里。更關(guān)鍵的是協(xié)作成本當(dāng)兩個(gè)開(kāi)發(fā)者同時(shí)修改同一張圖Git能清晰顯示沖突在哪一行而GUI工具生成的二進(jìn)制文件只能整張圖覆蓋。我們?cè)肞lantUML實(shí)現(xiàn)過(guò)“圖即文檔”工作流PR提交時(shí)CI流水線自動(dòng)運(yùn)行plantuml -tpng *.puml生成圖片并用diff比對(duì)新舊PNG的像素差異——如果只是文字微調(diào)圖片幾乎不變?nèi)绻略隽朔种н壿嬒袼夭町悤?huì)高亮顯示變化區(qū)域自動(dòng)觸發(fā)架構(gòu)師評(píng)審。這種可審計(jì)、可自動(dòng)化、可版本化的特性是GUI工具永遠(yuǎn)無(wú)法提供的底層能力。3. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)3.1 PlantUML語(yǔ)法精要從“能畫(huà)”到“畫(huà)對(duì)”的關(guān)鍵躍遷PlantUML語(yǔ)法看似簡(jiǎn)單但真正發(fā)揮威力需要掌握三個(gè)層次基礎(chǔ)元素、語(yǔ)義增強(qiáng)、工程化約束。先看最易錯(cuò)的基礎(chǔ)層。很多人寫(xiě)[User] -- [OrderService]以為表示調(diào)用其實(shí)PlantUML默認(rèn)箭頭是無(wú)向關(guān)聯(lián)必須顯式聲明[User] - [OrderService] : HTTP POST /order才能表達(dá)單向調(diào)用。更隱蔽的坑在空格處理[Payment Service]帶空格會(huì)被解析為兩個(gè)獨(dú)立節(jié)點(diǎn)正確寫(xiě)法是[PaymentService]或[Payment Service]。我建議所有節(jié)點(diǎn)名強(qiáng)制使用駝峰命名避免引號(hào)包裹帶來(lái)的視覺(jué)干擾。語(yǔ)義增強(qiáng)層才是專(zhuān)業(yè)性的分水嶺。比如表達(dá)“異步消息”不能只用虛線箭頭而要結(jié)合note right和activate指令actor User [OrderService] as os [PaymentService] as ps User - os : createOrder() activate os os - ps : MQ send OrderCreatedEvent activate ps note right of ps : 消息隊(duì)列投遞\n非阻塞等待 deactivate ps deactivate os這里activate不僅控制生命線高度更隱含了“該服務(wù)在此刻處于活躍處理狀態(tài)”的語(yǔ)義比單純畫(huà)個(gè)虛線箭頭更能反映真實(shí)線程模型。再比如狀態(tài)機(jī)圖新手常寫(xiě)[*] -- Created但專(zhuān)業(yè)寫(xiě)法必須標(biāo)注觸發(fā)事件[*] -- Created : orderCreated()這樣后續(xù)做事件溯源時(shí)每個(gè)狀態(tài)躍遷都能對(duì)應(yīng)到具體業(yè)務(wù)事件。工程化約束層解決的是規(guī)?;瘑?wèn)題。當(dāng)項(xiàng)目有上百?gòu)垐D時(shí)必須建立統(tǒng)一規(guī)范。我們?cè)赾ommon.puml里定義 全局樣式 skinparam defaultFontSize 14 skinparam rectangle { BackgroundColorService LightBlue BackgroundColorExternal Yellow } 實(shí)體別名 !define SERVICE(x) [x] as x Service !define EXTERNAL(x) [x] as x External這樣在業(yè)務(wù)圖中只需寫(xiě)SERVICE(PaymentService)既保證樣式統(tǒng)一又通過(guò)Service構(gòu)造型讓工具能識(shí)別服務(wù)類(lèi)型。某次安全審計(jì)時(shí)我們用正則掃描所有.puml文件快速找出所有未標(biāo)記External的第三方調(diào)用節(jié)點(diǎn)三天內(nèi)補(bǔ)全了缺失的熔斷配置——這種可編程的治理能力是任何GUI工具望塵莫及的。3.2 四類(lèi)核心Diagram的實(shí)戰(zhàn)建模方法論diagram-design不是萬(wàn)能膏藥必須按場(chǎng)景選擇最匹配的圖類(lèi)型。我們總結(jié)出四張“必畫(huà)圖”覆蓋90%的系統(tǒng)設(shè)計(jì)痛點(diǎn)。第一張上下文圖System Context Diagram這是所有設(shè)計(jì)的起點(diǎn)但80%的團(tuán)隊(duì)把它畫(huà)成了“系統(tǒng)全家福”。正確做法是嚴(yán)格遵循C4模型只畫(huà)系統(tǒng)邊界你的系統(tǒng)、關(guān)鍵用戶直接使用者、核心外部依賴(lài)必須交互的第三方其他全部砍掉。比如電商系統(tǒng)用戶只畫(huà)“買(mǎi)家”“賣(mài)家”不畫(huà)“客服”客服走獨(dú)立工單系統(tǒng)外部依賴(lài)只畫(huà)“支付寶SDK”“短信網(wǎng)關(guān)”不畫(huà)“公司OA系統(tǒng)”O(jiān)A與訂單無(wú)關(guān)。我們用PlantUML的rectangle和[ ]嚴(yán)格區(qū)分rectangle 電商平臺(tái) { [Buyer] [Seller] [AlipaySDK] [SMSGateway] }。這張圖的價(jià)值在于當(dāng)新人問(wèn)“為什么不用微信支付”你可以直接指圖說(shuō)“因?yàn)槲⑿胖Ц恫辉诋?dāng)前系統(tǒng)邊界內(nèi)接入需重新評(píng)估邊界”。第二張容器圖Container Diagram重點(diǎn)揭示技術(shù)棧分布而非功能模塊。很多團(tuán)隊(duì)錯(cuò)誤地把“用戶服務(wù)”“訂單服務(wù)”畫(huà)成容器其實(shí)它們是邏輯概念。真正的容器是運(yùn)行時(shí)實(shí)體Nginx反向代理、SpringBootAppJava后端、ReactApp前端SPA、PostgreSQL數(shù)據(jù)庫(kù)。我們強(qiáng)制要求每個(gè)容器標(biāo)注技術(shù)棧[SpringBootApp] as sb Spring Boot。某次性能優(yōu)化中這張圖暴露了致命問(wèn)題所有服務(wù)都部署在同一個(gè)K8s Namespace下但Redis容器和MySQL容器網(wǎng)絡(luò)策略未隔離導(dǎo)致緩存穿透時(shí)DB連接池被占滿。修復(fù)方案直接來(lái)自圖中連線——給Redis容器添加networkPolicy限制僅允許SpringBootApp訪問(wèn)。第三張組件圖Component Diagram這是最容易被濫用的圖。新手常把“登錄組件”“支付組件”畫(huà)成矩形但PlantUML要求組件必須是可獨(dú)立編譯部署的單元。我們定義只有Maven模塊或Docker鏡像才配叫組件。比如payment-core支付核心邏輯、payment-adapter-alipay支付寶適配器、payment-dto數(shù)據(jù)傳輸對(duì)象。關(guān)鍵技巧是用[ ]表示組件[ ]表示接口連線必須標(biāo)注協(xié)議[payment-core] -- [payment-dto] : uses DTO。當(dāng)某次重構(gòu)要替換支付寶為銀聯(lián)時(shí)我們直接搜索payment-adapter-alipay發(fā)現(xiàn)它只依賴(lài)payment-core和payment-dto證明適配器模式真正生效——這就是圖帶來(lái)的架構(gòu)健康度驗(yàn)證。第四張序列圖Sequence Diagram必須聚焦單個(gè)業(yè)務(wù)用例且限定在3-5個(gè)生命線內(nèi)。超過(guò)這個(gè)數(shù)說(shuō)明用例粒度太大需要拆解。我們有個(gè)鐵律每條消息箭頭必須標(biāo)注數(shù)據(jù)載體。比如User - WebApp : POST /login (LoginRequest)而不是籠統(tǒng)的login()。某次排查登錄慢問(wèn)題序列圖顯示W(wǎng)ebApp - AuthService : validateToken()耗時(shí)2秒但圖中沒(méi)標(biāo)數(shù)據(jù)格式。補(bǔ)全為validateToken(JWT)后立刻意識(shí)到JWT解析開(kāi)銷(xiāo)大改用Redis緩存token狀態(tài)TP99從2100ms降到180ms。這印證了diagram-design的核心信條沒(méi)有數(shù)據(jù)載體的交互都是空中樓閣。3.3 工程化落地的三大支柱版本、校驗(yàn)、協(xié)同再好的設(shè)計(jì)脫離工程實(shí)踐就是廢紙。我們構(gòu)建了diagram-design的三大支柱確保它真正融入研發(fā)流水線。支柱一Git版本化管理所有.puml文件必須和代碼同倉(cāng)存放目錄結(jié)構(gòu)嚴(yán)格對(duì)應(yīng)/docs/diagrams/context.puml、/src/main/java/com/example/payment/core/。這樣當(dāng)開(kāi)發(fā)者修改PaymentService.java時(shí)自然會(huì)想到更新/docs/diagrams/payment-sequence.puml。我們禁用任何本地渲染所有圖生成由CI完成。關(guān)鍵配置在.gitlab-ci.ymlgenerate-diagrams: stage: build script: - apt-get update apt-get install -y openjdk-17-jre - wget https://github.com/plantuml/plantuml/releases/download/v1.2023.15/plantuml.1.2023.15.jar - java -jar plantuml.1.2023.15.jar -tpng docs/diagrams/*.puml artifacts: paths: - docs/diagrams/*.png每次合并到main分支自動(dòng)更新Confluence中的圖且PNG文件名包含Git commit hash確保文檔和代碼絕對(duì)一致。支柱二自動(dòng)化語(yǔ)義校驗(yàn)PlantUML本身不校驗(yàn)業(yè)務(wù)邏輯我們用Python腳本補(bǔ)全。比如校驗(yàn)“所有外部依賴(lài)必須有熔斷配置”腳本掃描所有.puml文件提取External節(jié)點(diǎn)然后檢查是否存在note right of $node : Hystrix fallback。再比如校驗(yàn)“狀態(tài)機(jī)必須有兜底狀態(tài)”正則匹配state [*] -- (\w)確保初始狀態(tài)指向有效狀態(tài)。某次上線前校驗(yàn)發(fā)現(xiàn)refund-state.puml中Refunded狀態(tài)缺少onExit動(dòng)作導(dǎo)致退款成功后未發(fā)通知腳本直接阻斷CI流程。這種校驗(yàn)不是替代人工設(shè)計(jì)而是把資深工程師的經(jīng)驗(yàn)固化成機(jī)器可執(zhí)行的規(guī)則。支柱三雙向協(xié)同機(jī)制圖不能是設(shè)計(jì)師的自嗨。我們強(qiáng)制要求每個(gè)PR必須包含diagrams/目錄的變更且Code Review時(shí)至少一位Reviewer需檢查圖與代碼是否一致。為此開(kāi)發(fā)了VS Code插件當(dāng)開(kāi)發(fā)者在PaymentService.java中添加Transactional注解時(shí)插件自動(dòng)提示“檢測(cè)到事務(wù)邊界變更建議更新payment-sequence.puml中的activate/deactivate范圍”。更絕的是反向同步當(dāng)圖中新增[InventoryService] -- [Redis] : GET stock:{sku}插件在IDE中高亮所有redisTemplate.opsForValue().get(stock: sku)調(diào)用確保代碼實(shí)現(xiàn)與圖描述一致。這種雙向綁定讓diagram-design真正成為活的系統(tǒng)說(shuō)明書(shū)而非靜態(tài)快照。4. 實(shí)操過(guò)程與核心環(huán)節(jié)實(shí)現(xiàn)4.1 從零開(kāi)始搭建diagram-design工作流現(xiàn)在帶你走一遍真實(shí)落地的全流程。假設(shè)我們要為一個(gè)新上線的“會(huì)員積分兌換”功能建模目標(biāo)是讓前后端、測(cè)試、運(yùn)維在開(kāi)發(fā)前達(dá)成100%理解一致。第一步創(chuàng)建標(biāo)準(zhǔn)化目錄結(jié)構(gòu)在項(xiàng)目根目錄執(zhí)行mkdir -p docs/diagrams/{context,container,components,sequences,states} touch docs/diagrams/context/member-context.puml touch docs/diagrams/container/member-container.puml # ...其他文件同理注意所有文件名用小寫(xiě)字母短橫線避免空格和特殊字符這是Git友好性的基礎(chǔ)。第二步編寫(xiě)上下文圖15分鐘打開(kāi)member-context.puml輸入startuml title 會(huì)員積分系統(tǒng)上下文圖 skinparam backgroundColor Transparent skinparam defaultFontSize 12 rectangle 會(huì)員積分系統(tǒng) { [MemberApp] as app [PointsService] as ps [RedeemService] as rs [InventoryService] as is [NotificationService] as ns } [User] -- app : 使用APP app -- ps : 查詢(xún)積分 ps -- rs : 發(fā)起兌換 rs -- is : 扣減庫(kù)存 rs -- ns : 發(fā)送通知 外部依賴(lài) [AlipaySDK] as alipay External [WeChatSDK] as wechat External [EmailGateway] as email External rs -- alipay : 支付回調(diào) rs -- wechat : 微信通知 ns -- email : 郵件發(fā)送 enduml關(guān)鍵點(diǎn)External構(gòu)造型必須顯式聲明這是后續(xù)自動(dòng)化校驗(yàn)的錨點(diǎn)所有箭頭標(biāo)注動(dòng)詞查詢(xún)、發(fā)起、扣減避免名詞化表述。第三步容器圖建模20分鐘member-container.puml中我們不再畫(huà)“服務(wù)”而是畫(huà)運(yùn)行時(shí)實(shí)體startuml title 會(huì)員積分系統(tǒng)容器圖 skinparam defaultFontSize 12 [MemberApp] as app React SPA [PointsService] as ps Spring Boot [RedeemService] as rs Spring Boot [InventoryService] as is Go Microservice [NotificationService] as ns Node.js [PostgreSQL] as db PostgreSQL [Redis] as cache Redis [MQ] as mq RabbitMQ app -- ps : HTTPS ps -- db : JDBC ps -- cache : RESP rs -- is : gRPC rs -- mq : AMQP ns -- mq : AMQP ns -- email : SMTP enduml這里暴露了技術(shù)棧異構(gòu)性——Go微服務(wù)與Java服務(wù)通過(guò)gRPC通信Node.js通知服務(wù)消費(fèi)RabbitMQ消息。這種異構(gòu)在圖中一目了然避免了后期聯(lián)調(diào)時(shí)“為什么Java連不上Go”的低級(jí)問(wèn)題。第四步組件圖細(xì)化30分鐘以RedeemService為例docs/diagrams/components/redeem-component.pumlstartuml title 兌換服務(wù)組件圖 skinparam defaultFontSize 12 [RedeemService] as rs Spring Boot [RedeemCore] as core Java Module [AlipayAdapter] as alipay Java Module [WeChatAdapter] as wechat Java Module [RedeemDTO] as dto Java Module rs -- core : depends on core -- alipay : uses core -- wechat : uses core -- dto : uses dto -- rs : provides enduml注意dto組件被core和rs雙向引用這暗示DTO模塊應(yīng)獨(dú)立發(fā)布避免循環(huán)依賴(lài)。我們用mvn dependency:tree驗(yàn)證果然發(fā)現(xiàn)redeem-core意外依賴(lài)了spring-web立即移除——圖提前暴露了架構(gòu)腐化風(fēng)險(xiǎn)。第五步序列圖驗(yàn)證關(guān)鍵路徑45分鐘針對(duì)“用戶兌換商品”用例docs/diagrams/sequences/redeem-sequence.pumlstartuml title 用戶兌換商品序列圖 actor User [MemberApp] as app [RedeemService] as rs [InventoryService] as is [NotificationService] as ns User - app : POST /redeem (RedeemRequest) app - rs : HTTP POST /api/v1/redeem activate rs rs - is : gRPC ReserveStock(ReserveRequest) activate is is -- rs : ReserveResponse(oktrue) deactivate is rs - ns : MQ send RedeemSuccessEvent activate ns ns -- rs : ACK deactivate ns rs -- app : HTTP 200 OK (RedeemResponse) deactivate rs app -- User : 顯示成功頁(yè)面 enduml這里ReserveStock調(diào)用后is立即返回oktrue但圖中沒(méi)體現(xiàn)庫(kù)存預(yù)留的超時(shí)機(jī)制。我們立刻補(bǔ)充note right of is : 超時(shí)時(shí)間30分鐘\n超時(shí)自動(dòng)釋放并推動(dòng)開(kāi)發(fā)在ReserveRequest中增加timeoutSeconds1800字段。這張圖在開(kāi)發(fā)前就鎖定了分布式事務(wù)的邊界。4.2 關(guān)鍵參數(shù)配置與性能調(diào)優(yōu)實(shí)錄PlantUML默認(rèn)配置在復(fù)雜圖中會(huì)生成模糊圖片必須針對(duì)性?xún)?yōu)化。我們經(jīng)過(guò)23次壓測(cè)總結(jié)出黃金參數(shù)字體與清晰度PlantUML默認(rèn)用Java AWT渲染中文常顯示為方塊。解決方案是在puml文件開(kāi)頭添加 中文支持 skinparam defaultFontName Noto Sans CJK SC skinparam defaultFontSize 14 高清輸出 skinparam dpi 300dpi 300讓PNG在4K屏幕上依然銳利但會(huì)增大文件體積。我們用find docs/diagrams -name *.png -size 500k -delete定期清理超大圖因?yàn)閳D過(guò)大往往意味著設(shè)計(jì)過(guò)載——該拆分了。布局算法選擇PlantUML提供top to bottom direction垂直和left to right direction水平兩種主布局。我們的經(jīng)驗(yàn)是狀態(tài)機(jī)圖用垂直序列圖用水平組件圖用垂直。原因在于人類(lèi)閱讀習(xí)慣狀態(tài)躍遷是時(shí)間維度垂直排列符合“上-初態(tài)下-終態(tài)”的直覺(jué)序列圖的生命線是空間維度水平排列讓消息箭頭自然從左到右流動(dòng)組件圖的依賴(lài)關(guān)系是層級(jí)結(jié)構(gòu)垂直排列能清晰展現(xiàn)“上層組件依賴(lài)下層”的架構(gòu)意圖。某次將組件圖強(qiáng)行設(shè)為水平布局導(dǎo)致RedeemCore被擠到右下角評(píng)審時(shí)沒(méi)人注意到它依賴(lài)AlipayAdapter差點(diǎn)釀成支付通道單點(diǎn)故障。大型圖分割策略當(dāng)單張圖節(jié)點(diǎn)超20個(gè)必須拆分。我們采用“關(guān)注點(diǎn)分離”原則按業(yè)務(wù)域拆分redeem-auth.puml鑒權(quán)流程、redeem-stock.puml庫(kù)存流程按技術(shù)棧拆分redeem-java.pumlJava服務(wù)、redeem-go.pumlGo服務(wù)按部署環(huán)境拆分redeem-prod.puml生產(chǎn)環(huán)境、redeem-staging.puml預(yù)發(fā)環(huán)境關(guān)鍵技巧是用!include復(fù)用公共定義。比如common-services.puml定義所有服務(wù)節(jié)點(diǎn)各子圖只需!include common-services.puml確保命名絕對(duì)一致。某次生產(chǎn)事故復(fù)盤(pán)發(fā)現(xiàn)redeem-prod.puml中InventoryService拼寫(xiě)為InventroyService少了個(gè)r而代碼里是正確的導(dǎo)致運(yùn)維按圖排查走錯(cuò)方向。引入!include后拼寫(xiě)錯(cuò)誤在所有圖中同步暴露一次修正全局生效。4.3 CI/CD流水線深度集成實(shí)操diagram-design的價(jià)值在自動(dòng)化中放大百倍。以下是我們?cè)贕itLab CI中實(shí)現(xiàn)的完整流水線階段一語(yǔ)法校驗(yàn)10秒.gitlab-ci.yml中添加check-puml-syntax: stage: test script: - find docs/diagrams -name *.puml -exec plantuml -testdot {} \; allow_failure: false-testdot參數(shù)會(huì)調(diào)用Graphviz驗(yàn)證DOT語(yǔ)法哪怕.puml文件里有startuml但漏寫(xiě)enduml也會(huì)立即報(bào)錯(cuò)。我們?cè)虼藬r截了一個(gè)stateDiagram文件因編碼問(wèn)題丟失enduml避免了后續(xù)所有圖渲染失敗。階段二圖片生成與尺寸監(jiān)控30秒generate-png: stage: build script: - java -jar plantuml.jar -tpng -charset UTF-8 docs/diagrams/*.puml - find docs/diagrams -name *.png -size 1M -print0 | xargs -0 ls -lh artifacts: paths: - docs/diagrams/*.png-charset UTF-8解決中文亂碼-size 1M列出超大圖供人工審查。某次發(fā)現(xiàn)member-context.png達(dá)2.3MB打開(kāi)后發(fā)現(xiàn)所有外部依賴(lài)節(jié)點(diǎn)被重復(fù)繪制了7次——原來(lái)是!include路徑寫(xiě)錯(cuò)導(dǎo)致循環(huán)包含。圖大小成為架構(gòu)健康的晴雨表。階段三語(yǔ)義合規(guī)性掃描45秒Python腳本scan_diagrams.pyimport re from pathlib import Path def check_external_fallback(): 檢查所有External節(jié)點(diǎn)是否有熔斷說(shuō)明 for puml in Path(docs/diagrams).rglob(*.puml): content puml.read_text() externals re.findall(r\[(.*?)\]\s*External, content) for ext in externals: if not re.search(fnote.*{ext}.*fallback, content, re.DOTALL | re.IGNORECASE): print(f警告: {puml} 中 {ext} 缺少熔斷說(shuō)明) if __name__ __main__: check_external_fallback()CI中調(diào)用python scan_diagrams.py || exit 1。這個(gè)腳本在上線前揪出3個(gè)未配置Hystrix的外部調(diào)用避免了生產(chǎn)環(huán)境雪崩。階段四文檔自動(dòng)同步20秒sync-to-confluence: stage: deploy script: - curl -X POST https://confluence.example.com/rest/api/content/12345/child/attachment \ -H Authorization: Bearer $CONFLUENCE_TOKEN \ -F filedocs/diagrams/*.png only: - main$CONFLUENCE_TOKEN通過(guò)GitLab Secret注入確保憑證安全。每次main分支更新Confluence文檔實(shí)時(shí)刷新且保留歷史版本——點(diǎn)擊PNG就能看到對(duì)應(yīng)的Git commit真正實(shí)現(xiàn)“圖即文檔圖即代碼”。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 圖形渲染異常從模糊到崩潰的全鏈路排查PlantUML渲染問(wèn)題是最常被吐槽的痛點(diǎn)。我們整理了高頻問(wèn)題的排查樹(shù)按發(fā)生頻率排序問(wèn)題1中文顯示為方塊或問(wèn)號(hào)占比42%現(xiàn)象生成的PNG中所有中文都是□或?。根因PlantUML默認(rèn)使用Java AWT字體而Linux服務(wù)器常缺中文字體。解決方案在CI服務(wù)器安裝Noto Sans CJK字體apt-get install fonts-noto-cjk在.puml文件首行添加skinparam defaultFontName Noto Sans CJK SC強(qiáng)制指定字體路徑終極方案java -Dfont.nameNoto Sans CJK SC -jar plantuml.jar ...提示不要用simhei.ttf等Windows字體Linux下兼容性差Noto字體是Google開(kāi)源的跨平臺(tái)支持最好。問(wèn)題2大圖渲染超時(shí)或內(nèi)存溢出占比28%現(xiàn)象CI日志出現(xiàn)OutOfMemoryError: Java heap space或Timeout after 30000ms。根因PlantUML默認(rèn)堆內(nèi)存僅256MB而復(fù)雜圖如含50節(jié)點(diǎn)的組件圖需更多內(nèi)存。解決方案啟動(dòng)時(shí)指定內(nèi)存java -Xmx2g -jar plantuml.jar ...拆分大圖用!include將all-components.puml拆為core.puml、adapter.puml、dto.puml禁用抗鋸齒犧牲一點(diǎn)清晰度換速度skinparam antialiasing false注意-Xmx2g不能超過(guò)CI服務(wù)器總內(nèi)存的50%否則影響其他任務(wù)。問(wèn)題3布局錯(cuò)亂節(jié)點(diǎn)重疊或箭頭斷裂占比18%現(xiàn)象生成的圖中節(jié)點(diǎn)堆疊在一起或箭頭指向空白處。根因PlantUML的自動(dòng)布局算法在節(jié)點(diǎn)過(guò)多時(shí)失效或left to right與top to bottom混用。解決方案統(tǒng)一布局方向整個(gè)項(xiàng)目只用一種主方向通過(guò)!define封裝!define LTR_DIRECTION skinparam nodesep 40; skinparam ranksep 60; left to right direction手動(dòng)指定關(guān)鍵節(jié)點(diǎn)位置[A] as a; [B] as b; [C] as c; a -- b; b -- c; c -- a會(huì)形成三角形但a -- b; c -- b會(huì)讓c和a并排b在下方——利用這種“引力”控制布局用together分組together { [X] [Y] [Z] }讓X/Y/Z始終相鄰問(wèn)題4SVG輸出失真線條變粗或顏色異常占比12%現(xiàn)象導(dǎo)出SVG在瀏覽器中顯示線條過(guò)粗或漸變色變成純色。根因PlantUML的SVG渲染器對(duì)CSS樣式支持有限且不同瀏覽器解析差異大。解決方案改用PNG-tpng參數(shù)CI中生成PNG而非SVG若必須SVG添加skinparam svgPrecision 100提高精度避免復(fù)雜漸變用純色BackgroundColorService LightBlue代替BackgroundColorService #add8e65.2 業(yè)務(wù)語(yǔ)義偏差那些圖里沒(méi)寫(xiě)但必須知道的事diagram-design最大的陷阱不是技術(shù)問(wèn)題而是業(yè)務(wù)理解偏差。我們記錄了5個(gè)血淚教訓(xùn)陷阱1“用戶”節(jié)點(diǎn)掩蓋了角色多樣性現(xiàn)象圖中只有一個(gè)[User]但實(shí)際系統(tǒng)有買(mǎi)家、賣(mài)家、管理員、審核員四類(lèi)角色權(quán)限和流程完全不同。糾正方案在上下文圖中拆分為[Buyer]、[Seller]、[Admin]并在容器圖中為每類(lèi)用戶標(biāo)注前端應(yīng)用[BuyerApp]、[SellerApp]。某次權(quán)限漏洞就是因?yàn)閇User]節(jié)點(diǎn)沒(méi)區(qū)分角色導(dǎo)致測(cè)試用例只覆蓋了買(mǎi)家流程。陷阱2“調(diào)用”箭頭隱藏了協(xié)議細(xì)節(jié)現(xiàn)象[A] -- [B]看似簡(jiǎn)單但A可能是HTTP客戶端B是gRPC服務(wù)端協(xié)議不匹配直接失敗。糾正方案箭頭必須標(biāo)注協(xié)議[A] -- [B] : HTTP GET /health或[A] -- [B] : gRPC HealthCheckRequest。我們甚至要求在組件圖中[HealthChecker]組件必須標(biāo)注HTTP Client或gRPC Client構(gòu)造型。陷阱3“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)模糊了存儲(chǔ)引擎差異現(xiàn)象[DB]節(jié)點(diǎn)沒(méi)區(qū)分是PostgreSQL、MongoDB還是Redis導(dǎo)致緩存策略設(shè)計(jì)錯(cuò)誤。糾正方案嚴(yán)格命名[PostgreSQL]、[MongoDB]、[Redis]并在容器圖中用不同構(gòu)造型PostgreSQL、MongoDB、Redis。某次性能問(wèn)題源于把Redis當(dāng)持久化DB用圖中[Redis]被誤標(biāo)為Database而非Cache。陷阱4“消息”箭頭忽略了可靠性等級(jí)現(xiàn)象[A] -- [B] : MQ send沒(méi)說(shuō)明是At-Least-Once還是Exactly-Once。糾正方案用不同線型實(shí)線箭頭At-Most-Once虛線箭頭At-Least-Once雙線箭頭Exactly-Once并配note說(shuō)明“雙線Kafka事務(wù)消息需開(kāi)啟enable.idempotencetrue”。陷阱5“狀態(tài)”節(jié)點(diǎn)缺失了數(shù)據(jù)載體現(xiàn)象狀態(tài)機(jī)圖中State1 -- State2但沒(méi)說(shuō)明觸發(fā)事件攜帶什么數(shù)據(jù)。糾正方案強(qiáng)制事件標(biāo)注數(shù)據(jù)State1 -- State2 : orderPlaced(OrderCreatedEvent)。我們用正則掃描所有--確保右側(cè)括號(hào)內(nèi)有參數(shù)否則CI報(bào)錯(cuò)。5.3 團(tuán)隊(duì)協(xié)作沖突當(dāng)設(shè)計(jì)師和開(kāi)發(fā)者對(duì)圖的理解不一致時(shí)diagram-design的價(jià)值在于共識(shí)但共識(shí)最難達(dá)成。我們制定了三條鐵律鐵律一圖的Owner必須是開(kāi)發(fā)者不是架構(gòu)師某次爭(zhēng)議架構(gòu)師畫(huà)的序列圖中[PaymentService] -- [RiskService] : checkFraud()但開(kāi)發(fā)者實(shí)現(xiàn)時(shí)發(fā)現(xiàn)風(fēng)控檢查必須在支付前完成否則資金已劃轉(zhuǎn)。爭(zhēng)論焦點(diǎn)是“誰(shuí)有權(quán)修改圖”。我們明確圖的PR必須由該模塊的主開(kāi)發(fā)者提交和批準(zhǔn)。架構(gòu)師提供模板和規(guī)范開(kāi)發(fā)者填寫(xiě)具體內(nèi)容。這樣圖天然承載了開(kāi)發(fā)者的實(shí)現(xiàn)視角避免了“設(shè)計(jì)完美落地變形”。鐵律二所有圖變更必須關(guān)聯(lián)Jira Issue在.puml文件頭部強(qiáng)制添加 JIRA-1234: 會(huì)員積分兌換流程優(yōu)化。CI腳本會(huì)驗(yàn)證git log -1 --oneline | grep JIRA-確保每次提交都有Issue號(hào)。某次緊急修復(fù)開(kāi)發(fā)者繞過(guò)流程直接改代碼結(jié)果圖沒(méi)更新導(dǎo)致一周后新成員按舊圖開(kāi)發(fā)引發(fā)嚴(yán)重兼容問(wèn)題。引入此鐵律后所有變更可追溯。鐵律三圖評(píng)審必須包含“反向驗(yàn)證”環(huán)節(jié)Code Review時(shí)除了看圖是否美觀必須執(zhí)行從圖中任選一個(gè)消息找到對(duì)應(yīng)代碼中的方法簽名從代碼中任選一個(gè)Transactional方法反向在圖中找到其對(duì)應(yīng)的activate/deactivate范圍從圖中任選一個(gè)External節(jié)點(diǎn)檢查代碼中是否有HystrixCommand注解這三步反向驗(yàn)證確保圖不是靜態(tài)快照而是活的系統(tǒng)映射。我們?cè)么朔òl(fā)現(xiàn)某服務(wù)的Transactional注解被誤加在private方法上Spring不生效圖中activate卻覆蓋了整個(gè)業(yè)務(wù)流程——圖暴露了代碼缺陷。6. 進(jìn)階實(shí)踐從靜態(tài)圖到動(dòng)態(tài)可執(zhí)行模型6.1 基于
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
道久久五香丁月婷婷激情综合| 骚逼自拍99| 黄色AV影视| 啊嗯嗯啊好大好爽| 天天夜夜rb| 啊v在线观看视频| 91AV入口| 毛片电影一区二区三区| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 91 亚洲情侣偷拍 久久| 日本中文字幕在线视频| 国产原创精品| 欧美日韩一区二区三区四区蜜桃| 久久69| 精品久久人妻成人网| 免费观看日本操逼视频| 男人的天堂va| 欧美爱三级日韩久久| 亚洲自拍青操视频| 欧美天堂亚洲电影院一区在线播放| 丰满的三级少妇欧美久久久| www.99色| 免费少妇一区二区| 亚洲欧美综合区自拍另类| 色姑娘综合网| 欧美激情精品久久久久久| 夜夜 中文视频rt| 色女99一级片在线观看| 男人天堂一区二区| 国产欧美美女免费观看视频| 久热这里| oumeisetu综合| 少妇一线天久久久久久| 色色激情五月天| 黄页视频网站野外| 91福利网在线观看| 国产深夜福利| 日本操逼aaaaa| 丰满人妻一区二区三区免费| av网站国产主播在线| 中文乱码字字幕在线第5页| 蜜臀99久久国产| 伊人久日| 我爱操| 欧美综合综合| 91亚洲高清| 91亚洲欧美| 国产综合在线视频网站| 日韩在线一区高清在线| 日韩无码专区| 欧美拳交在线播放| 欧美大片天天看| 久久97资源 网| 亚洲色图超碰在线| 东北女人的毛片| 男生女生啊啊啊啊| 国产97在线视频| 色妇综合网| 神马麻豆福利院| 网友自拍第1页| 夜夜夜夜久久久久| 热思思免费视频| 好色综合| 中文字幕av乱伦| 99热只有这里有精品| 久久婷婷综合国际产色怕| www.婷婷| 亚洲、日韩、综合、另类| 久久夜色一区二区| 天堂涩涩| 波多野结衣之双飞调教在线播放 | 中美日韩毛片| 偷拍片久久| 欧美性少妇| 亚洲中文字幕久久无码精品| 我要色综合网| 亚洲成人黄色在线观看| 91精品国产麻豆国产自产在| 六月天婷婷| 自拍欧美| 欲色综合| 99综合| 好爽免费视频,| 91热热色| 中文字幕精品一区二区精| 91干熟女| 亚洲凸凹超碰成人| 天天日夜干| 亚洲第一狼人丝袜美女另类| 青久操| 日韩精品大香蕉伊人在线| 另类欧美色| 久久久久久亚洲Av无码| 99热超碰| 精品久9| 欧美人妻精品一区二区| 日日夜夜青青草母狗| 热久久无毒不卡| 水多多映视AV| 久久精品欧美一区蜜桃| 欧美亚洲在线| 久久久久国产一区二| 亚洲中文字幕妇伦久久| 久久9精品| 国产AV高清AV无码| 久久久111| 亚洲无码超碰免费| 婷婷四五区| 97在线播放| 秋霞网—男女啪啪亚洲免费体验区 | 国产午夜精品在线观看| 天天综合精品| 国产区在线| 亚洲强奸乱伦影视网| 欧美熟妇精品黑人巨大一二三区| 午夜性刺激视频免费观看| 人人操人人叉人人插人人| 日韩三级在线观看mp4| 手机在线大香蕉| 一牛影视成人片免费| 九九精品美女高溯喷水| 欧美中文综合| 欧美综合97www| 天天拍夜夜| 日本在线一二| 亚洲国产日韩精品久久久| 日本熟女中文| 91性网| 97最新在线播放视频| 青青青草伊人精品| 亚洲综合成人网| 国产伊人精品在线| av在线资源| 国内毛片四区| 97干com| 激情天天视频| 九九亚洲色在线观看| 少妇啪啪自拍| 中出20p| 中文字幕精品区先锋资源| 人人爽夜夜玩视频| 亚洲欧洲日韩国产自在线| 亚欧操逼片在线观看 | 97在线资源| αⅴ天堂| 91岛国动作片| 国产农村妇女精品1区二区| 天天谢天天干| 亚洲色图欧美色图另类图片| 啊好大好舒服| 国产日韩欧美亚洲精品95| 天天噜| 91久青| 青娱乐福利99| 97在线免费视频观看| 97超碰美国| 欧美精品久久96人妻无码| 2000亚洲男人天堂| 激情五月天社区| 日韩射精| 天天内射| 久久久999日本大片| 一区二区三区视频| 嗯嗯啊啊好疼| 97资源制服丝袜| 美国日韩黄片| 久久线上视频免费看| 人妻啊啊人妻啊| 97人妻免费中文字幕| 97久久天天综合色天天综合色电影| 五月婷婷丁香六月| 国产精品亚洲一级av第二区| 干少妇视频| 330dv亚洲成年视频网| 在线看片国产精品每日更新| 亚洲AV成人无码一二三久久 | 自拍偷拍国产欧美日韩韩| juliaann精品熟女一区| 久久婷婷精品| 国产女人和拘做爰视频| 日韩偷拍一区二区三区| 日韩内| 天天操人人操骚逼网站| 人妻久久久| 欧美性爱视频免费一区一A| 欧美成人贴图| 囯产精品强| 欧美高潮在线| 天天操天天射青青草| 在线看免费无码AV天堂的| 国产精品播放| 黄页av| WWW美腿丝袜香蕉中文| 日韩成人午夜精品久久高潮| 五月婷丁香| 成人性爱电影一区二区| 日本精品无码三级网站| 欧美美女视频| 伊人超碰97| 夜夜嗨TV| 久久久久久九九九九| 久久久久婷婷精品av电影| 欧美999999| 日韩av熟女一区二区三区成人| 日韩三四五区| 91操操| 91综合在线| hd成人一区二区在线| 成人精品久久久午夜福利| 天天拍夜夜| 超碰色老头| 久操国产在线| 婷婷色综合欧美日韩| 天天欧美| 深夜福利黄片| av网站国产主播在线| 先锋女优在线观看视频| 成人怡红院| 男人天堂欧美| PMv在线观看| 国产精品精品系列在线观看| 色婷婷九月天天综合| 日欧亚洲二三区大片不卡| 日本成人A片免费看| 18禁无码永久免费无限制| 中文三一区| 亚洲激情视频| 无码不卡亚洲成?人片| 激情熟女12P| 涩综合导航| 乱伦a片视频| 色色福利| 中文高清一区二区的| http://qxhbdz.com| 色一射色一射| 亚洲三级网址久久最新| 67194无码不卡| 一区麻豆 高清中文字幕| 韩国轻伦国内自拍一区| 久久人妻少妇| 久久久97| 亚洲古典另类欧美在线| 无码免费一区二区三区啪啪| 亚洲和欧美裸体美女双飞视频| 先锋音影AV| 九九九不卡| 国产乱子伦一区二区三区在线观看| A级国产欧美激情在线| 欧美一二三级精品在线| 麻豆蜜桃视频在线观看 | 欧美日韩大香蕉| 八戒午夜福利理论片| 色情五月丁香| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 蜜臀视频网站| 国产精品自产拍在线观看社区| 免费一级视频特黄色大片| 少妇高潮对白在线观看| 久久久9品一区二区三区| 97se综合| 成人av在线播放| 99天堂网| 色www精品视频在线观看| 狠久久| 久久综合国产精品国产| 国产精品乱人伊人网| 热热色色综合| 国产精品嫩草影院免费| 91在线页| 七月丁香婷婷| 欧美日韩91| 欧美亚洲宗合色性图| 91啪啪| 精品久热| 色九久| 亚洲av国产av综合av卡| 丁香五月婷婷基地| 日韩丨制服丨中文|在线| 97香蕉网| 超碰久久性爱| 在线视频资源| 色哟哟的毛片| 欧美精品系列| 国模精品一区二区三区苹果色戒 | 性色一线| 亚洲国产精品成人久久蜜臀| 岛国片在线观看视频亚洲| 精品人妻一二三四区视频| 男人精品区| 超碰av在线| 黑人粗大V S日韩女优视频| 狠狠操官网| 大香蕉伊人一区在线观看| 日本媚薬中文字幕在线| 亚洲国产无码精品首页久久久| 国产精品丝袜久久亚洲不卡| a片偷拍视频| 国产精品熟女AV中文字幕在线播放| 超碰久久.com| 国产 v乱码一区二| 香蕉精品二区二区| 丁香五月婷婷基地| 91处女在线观看| 伊人操操| 婷婷午夜成人色中色| 中文字幕免费观看| 国产av强奸美女| 青青草成人视频在线观看二区| 大香蕉乱级| 久久av色| 日本东京热加勒比久久| www.91欧美| 欧美亚洲另类在线蜜桃| 性九九九九九九| 干婷婷综合网| 国产97亚洲| 国产久久久9999| 日韩一级欧美一级国产一级台湾| 精品176精品2| 色爱综合网| 射综合网| 91红杏| 亚洲成成熟女人综合一区二区| 久久草草欧美精品| 亚洲欧美色图小说| 超碰久久.com| av婷婷色网| 多毛小伙内射老太婆| 道久久五香丁月婷婷激情综合| 国产成人精品亚洲日本| 欧美亚洲系列| 夜夜福利| 欧美淫穴| 性爱乱伦网址| 97亚洲在线| 精品国产国产AV| 大伊香蕉在线视频免费| 日本操逼无码| 久久久九精品| 久久超碰免费的| 亚洲成人一区二区精品| 精品人妻一区二区三区四区石在线| 黄色乱论网站| 中文字幕av亚洲在线| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 天天综合麻豆视频| 伊人久久88国产女| 爱av免费| 亚洲国产成人精品久久久国产成人一区二区| 欧洲自拍色图gif在线| 色色色色电影网| 亚洲男人天堂网站| 97视频在线视频| 亚洲AV免费在线| 亚洲色色探花| 女人久久久| 久久久免费视频18| 欧美色图亚洲特色| oumeisetu综合| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 91女人的网站| 五月婷婷色色| 女生自91网站| 麻豆 欧美 日韩| 婷婷丁香五月天综合东京热| 男人的天堂午夜av| 99re在线| 呻吟 欧美 日本 中出| 青青操在线亚洲视频观看欧美在线| 超碰在线国产| 色婷婷丁香五月天| 免费一级特黄特色大片在线观看看| www.av在线观看| 熟女在线视频| 国产成人自拍视频在线| 99老司机精品视频在线观看| 婷婷激情四射| 日日日骚女人精品| 97超碰亚洲| 在线色导航| 亚洲AV无码AV吞精久久久久| 黄片免费看的| 欧美少妇性乱| 欧美有码激情视频一区二区三区| 四虎免费看黄| 国产精品分类在线观看| 欧美色色色| 婷婷久草| 蜜桃视频成a人v在线| 日天天九九天堂666| 蜜桃视频啊啊啊啊| 免费成人在线熟妇网| 狠狠爱夜夜| 一区二区三区四区免费视频| 男人天堂2019亚洲| 午夜九九| 日本色色色| 欧美综合色| 777奇米影视777四色| 天天干人妻| 老司机深夜18禁污污网站| 国产隔壁老王影院在线| 激情小说亚洲色图| 少妇久久久| 久久综合18p| 欧美日韩操逼动图| 91w欧美| 99re免费视频精品全部| gogogo免费高清看中国国语| 欧美大色交| 91大学精品激情戏| 欧美极品性爱天天射| 东京热视频网| 97一区二区三区视频| 玖玖爱免费观看视频| 啊啊啊啊啊啊啊啊啊啊在线观看| 国产久久免费精品视频| 性性久久| 色狠狠色| 日本高清免费一本视频在线观看| 中文字幕超碰CAO| 亚洲国产无码精品首页久久久| 一摸二插三插| 不卡九肏| 郑州宾馆老熟女露脸啪啪| 九九九999久久久网站| 天天摸夜夜摸| 先锋精品av色鲁| 日韩欧美加勒比| 99RE在线视频精品,这里只有精品| 欧美白嫩在线放| 成人影 天天操 亚洲| 精品无码一区二区三区| 国产怡红院在线| 久久久久久久伊人精品| 亚洲 欧美 小说| 黄骗免费| 91精品导航| 亚洲色人妻综合| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 久久视频,这里只有精品| 国产刺激视频| 人人手机欧洲亚洲国产人妻| 中文字幕在线日亚洲9| 久久激情婷婷| 超清福利精品视频在线| 欧美熟妇乱码在线一区| 一起草日韩| 呦呦影院| 在线看的av| 欧美福利视频啊啊啊啊| 极品美女嘿咻| 亚洲交性| 91成人18| 精品九九| 91深夜夜| 日本视频在线观看污污污| 18禁中文字幕| h无码动漫在线观看| 国产成人亚洲精品无码最新在线| 欧美日韩中文亚洲v在线综合| 亚洲最大AV网| 久久久久久亚洲精品不卡人乳| 亚洲无线码一区国产欧美国| 日本高清久久| 日本三级久| 骚女天天综合网| 欧美18禁91| 宅男午夜在线视频| 欧日韩在线观看| 亚洲欧美日韩偷拍色图| 大香蕉免费3| 国产色精品午夜大片| av九九| 欧美丝袜91| 日韩内射视频| 欧洲综合视频| 亚洲人久久久网| 9999九九九久久久| 中文字幕日韩专区精品系列 | 欧美日韩精品久久久久久久久东北老熟妇| 天天综合网~91| 精品国产丝袜一区二区三区乱码| 91色人| 久操网无码在线| 人妻人人操| 国模不卡一本二本三电影| 无码外流操逼视频| 亚洲第一狼人丝袜美女另类 | 人人操,人人插| 操学生天天| 男人天堂2019| 777奇米影视777四色| 无码欧美有限公司| 亚洲丝袜少妇在线| 国产精品熟女乱伦| 成人草草视频| 高清国产av无码| 偷拍综合亚洲| 亚洲图片激情综合另类| 日本精品88888888| 视频一区二区免费在线| 亚洲 欧美都市激情| 后入综合久久| 日本狂喷奶水在线播放212| 色噜噜人妻丝袜AV资源| 激情婷婷综合久久| 99热这里只有精品99| 99rre在线精品99re8| 影音先锋中文字幕日本好一区二区| 欧美 中文字幕 一区| 婷婷婷婷婷婷久久久久| 日本不卡三级网在线播放| 天天躁日日躁狠狠狠躁| 欧美色三级片91| 91综合色噜噜| 精品中文日韩字幕视频| 欧美劲爆视频一区二区| 97色欧洲| 69精品人人人人| 欧美 亚洲 偷拍自拍| 98精品国产乱码久久久久久| 久久精品久久九九精品| 亚欧国产无码精品在线| 久久亚洲一区二区色婷婷| 99热精品在线观看| 波多野结衣先锋影音| 亚洲视频二区 | 96超碰网| 国产精品视频播放| 久久丁香五月天| 91被操| 精品一二三区女同| 亚洲人成色9999精品久久| 久久首页| 日韩偷拍一区二区三区| 大香蕉中文201| 欧美久久婷婷| 偷窥自拍亚洲色图| 最近的最新的中文字幕视频| 中文字幕99999| 一本大道青青| 性交一区二区在线播放| 97资源免费视频| 超碰调教97| 六月丁香婷| 中国女人内射6XXXXX| 欧美一区二区三区互相| 日韩猛交| 日韩在线观看三级电影| 性欧美91| 极品销魂美女一区二区 | 精品无人区麻豆乱码久久久| 水澄无码AV| 狠狠中文字幕| 中文字幕亚洲永久精品| 久热精品在线| 蜜桃臀AV在线| 久草线上视频免费看| 久久99精品九九久久久婷婷| 精品久久久久黄少妇| 好舒服视频| 任你干在线视频| 亚洲九九爱| 综合亚洲网| v91av| 久久精品国产亚洲5555| 欧美激情亚洲| 成人一二| 久久久久国产精品喷潮免费观看臀 | 九九热精品视频六| yiqicaoav| 国产一区二区二区按摩精品啪视频| 无遮挡男女激烈动态图| 在线观看啊啊啊啊啊| 青青草黑寡妇男人天堂| 99re免费视频精品全部| 特级丰满少妇一级AAAA爱毛片| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 熟女一区二区| 一区二区播放| 免费少妇一区二区| 欧美啪啪女女| 精产国品一区二三产品| 久久久91福利姬| 欧美成人免费在线观看| 激情专区综合| 亚洲鸥美色图| 成年人黄色视频免费| 亚洲综合中文字幕有码| 白丝1区2区3区| 妇女乱色二区| 精品熟女呻吟久久91| 久热精品在线| 国产东北女人在线视频| 91爱综合| 樱花蜜乳av| 无码 黑人一区二区三区| 校园春色制服丝袜中文字亚洲 | 男人亚洲天堂| 亚洲无码视频免费在线观看网址!| 大学生美女口爆| 中文字幕亚洲在线一区| 一区二区三区成人| 亚洲密乳AV| 99啪啪视频| 日韩操逼HD| 97硬碰| 大JI巴好深好爽又大又粗视频| JIZZJIZZ国产精品喷水| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 99这里有精品视频| 亚洲精品97中文字幕| 国产一级不卡在线观看| 嫩草黄页| 五月天激情网站| 97网色| 久久av色| 亚洲中文日韩欧美大香蕉视频| 欧美天堂第二区| 欧美精品丝袜久久久中文字幕| 五月天婷婷基地| 97久久超碰国产网站| 91精品久久综合熟女| 乱伦av麻豆| 91快色色色色色| 少妇二级| 国产精品极品美女视频| 丝袜色综合| 四虎在线免费视频| 97超碰在线资源网站| 啊啊啊啊啊舒服| 久久精品店| 色爱天堂| 亚洲国产中文字幕| 亚洲s在线观看| 久久riav中文精品| 亚洲天天更新| 尤物视频偷拍免费| 综合久欧洲| 亚洲黄网在哪免费看| 男女啪啪啪18禁网站| 九九九九九用不成了| 久久亚洲AV无码专区国产精品 | 男女香蕉一区二区| 941超碰| A 天堂在线观看视频| 97精品一区二区三区免费| 日韩美女久久一区二区三区| 狠狠色噜噜狠狠狠狠狠色综合久久 | 青青青青草av在线观看| 韩国一级做A片免费的| 国产精品一二三区18| 大香蕉狠狠爱| 伊人性在线视频| 中文字幕在线第二页| 大香蕉啪啪啪啪在线| 天天舔九色婷婷| 一本正道久久熟女| 久久亚洲不卡| 人人色人人射人人妻| 日韩素人无码一区二区三区三州| 一区二区三区精品黑丝白丝酒店对鸡| 久久久 国产精品| 琪琪精品免费一区二区三区| 酒色综合网| 熟女91网站| 东京热亚洲一区二区| 99精品久久| 亚州伊人色综台| 婷婷五月天成人网| 久久久精品日本一道| 又黑又大又粗| 精品无码一二三四区| 嗯嗯啊好大| 欧美综合色图网| 综合夜夜| 欧美人体性爱互联网第一页婷婷日本| 日韩久草| 伊人久久蜜月| 亚洲日本加勒比在线| 久久成人国产精品| 国产探花日韩援交| 久久xxxx| 亚洲综合另类| 另类av天堂| 五月情色天| 人妻献身系列第54部| 秋霞视频一区二区| 久久99精品九九久久久婷婷| 精品一区二区麻豆| 99热日| 欧美日韩不卡a片| 大肥女高潮bbwbbwhd视频| 黑人精品XXX一区一二区| 欧美成人一区二区三区在线播放 | 26uuu最新| 婷婷综合| 超碰97人人乐| 国产成人无码网站在线视频| 操操操操操操| 日韩精品一区二区高清| 中文字幕 人妻不满 在线视频| 日日干夜夜欢| 亚洲精品国产精品乱码不99| 91亚洲不卡一区| 一本色道久久综合精品婷婷| 久久这里| 五月丁香啪| 91干熟女| 后入人妻一区| 欧美一级A一级a爱片久久| 国产操逼网站亚洲一级黄色| 综合一区中亚洲国产成人综合精品 | 骚人妻少妇视频| 四虎AV在线播放| 无码日韩人妻av一| 日韩有码回春沙龙第一页| 九九九九久久久久| 99超碰色| 日韩熟女无码| 亚洲在高跟鞋自慰久久在色线| 在线人成亚洲视频免费观看| 91久久久久久久| 国产农村妇女毛片精品久久| 丁香五月天激情综合| 91伊人| 久久精品中文| 日本操逼视频导航| 老熟妇91| av一区二区三区四区五区久草臀| 国产不卡中文字幕免费avi| 色九九久九九| 亚洲 se图 欧美电影| 日韩av影片在线观看| 欧美日韩人妻精品系列一区二区三区| 国产400孕妇孕交群| 国产超碰97| 人人天天欧洲| 天天色黄色影院天天操| 热热色青青草| 日韩紧密久久| 伊人久操| 久久男人精品| 97精品久久| 蜜桃臀一区二区aV| 国产色精品午夜大片| 60秒不遮不挡| 亚洲色图 图片| 国产熟女无套内射| 亚洲无码电影久久久| 青青青国产手线观看视频2| 2019天天操天天爽天天拍| 高清有码一区二区| 日日操夜夜操天天操免费观看麻豆| 91成人在线| 少妇99成人麻豆| 草草网站影院白丝内射| 一级片在线观看高清无码| 一区二区三| 欧美一二三| 亚洲三级。日韩三级| 男人天堂最新手机版在线青青草| 夜夜骑天天燥| 欧色性第一页| 久久久久久裸体| 粉嫩av一区二区三区四季| 99蜜桃臀亚洲成人在线观看| 1区2区3区中文字幕日韩| 人妻天天爽夜夜爽精品2| 青娱乐国产精品| 偷窥自拍A片| 婷婷99| 超碰在线人妻不卡| 黄片无码在线制服| 少妇啪啪自拍| 久久狠狠色噜噜狠狠狠狠97| 亚洲狠| 日韩精品亚洲一二三| 啊啊啊骚| 中英熟女操女| 能直接看AV的网站| 久操网视频| 91GD.COM| 成人一区二区三区四区| 中文字幕精品专区搜索结果91| 亚洲第一视频 欧美风情 日韩| 熟女人妻一区二区三区免费看| 91精品少妇搡搡搡| 亚洲色欧美| 手机在线观看不卡无码av| 在线观看一卡二卡| 青青草玖玖爱| 亚洲综合色图欧美| 黑人美精品 A片| av天天在线观看| 加勒比av官网在线| 国产二区三区免费视频| 欧美精品久久久久久久久88| 黑丝91视频| 天天干嫩逼网| 成人黑料社久久| 一区二区三区蜜桃成人撸久久东京热| 欧美婷婷五月天| 中文字幕少妇色| 欧美热图99| 日韩欧美日韩| 国产欧美伊人| 亚洲精品国产拍免费91在线| 日本操大逼| 另类av天堂| 999久久久免费精品国产牛牛| 婷婷久久网| 不卡二三区人妻少妇| 国产色精品午夜大片| 亚洲美女30b| 国产又猛又粗又爽又黄| 岛国AV一区二区电影| 国产亚洲禁久一区二区| 伊人操操| 午夜呻吟欧美| 9999九九九久久久| 日韩在线一区二区| 91 国产丝袜在线播放-百度| 中文字幕一区二区韩| 老司机午夜福利视频一区二区| 一本精品日本在线视频精品| 97中文超碰| 夜夜天天噜狠狠爱2021| 亚州大图综合色图| www九九热| 加勒比中文av| 亚洲一二三| 五月天大香蕉| 大香蕉乱级| 亚洲综合性网址| 五月天大香蕉| 三级AV入口| 91狠狠综合久久| 欧洲精品一区二区三区| 麻豆啪啪啪视频| 小视频国产| 97天天日| 女生看匆91网站| 欧美日韩性爱无码| 国产精品日日摸夜夜添骚逼| 久久久免费懂色| 久久的网站啊啊啊啊啊| 婷婷丁香五月天综合东京热| 污污汅18禁网站在线永久免费观看 | 日韩亚洲欧美中文字幕| 96精品一区| 伊色综合天堂色97| 97舔舔| 人人操人人插 - 百度 - 百度| 欧美成人9797| 国产一区二区啪啪视频| 日韩av在线精品观看| 久9精品| 精品毛片av一区二区| 欧洲精品欧洲精品| 欧美久久人人网| 国产又黄又爽又刺激久久久久久| 超碰在线一区二区| 色妇综合网| 啊啊啊啊啊啊在线| 亚洲国产丝袜在线观看| 亚洲情色1区| 国产精品经典一卡久久久| 99re6久热只有精品6在线直播| 99无码视频| 日本天天人人狠狠在线日美女 | 一本色道久久综合狠狠操| 久久a久久| 日本一区二区三区精品| 国产欧美一区激情交| 日韩成人大片在线观看| 日韩中文字幕二区| 日本亚洲熟女视频| 国产精品久久久久无码AV会牛| 综合久久六月久久婷婷| 无套内射性感少妇视频| 九九九九九九九精品视频| 美女啊啊啊啊啊啊啊| 96AV精品| ai欧美亚洲小说| 中日韩久久久免费看| 久久超碰com| 一级做a爰片久久毛片图片| 日韩无码黄色片| 国产玖玖| 色在线视频导航| 欧美一级久久久久久久大片动画| 久久久一区二区三区麻豆| 国产夫妻一区二区| 黄污污污污| 96国产污污污丝袜| 人人操人人肉久久精品| 久久久天美| 91AV入口| 五月丁香激情综合网| 色图综合| 国产AV激情无码久久无码| 色九九九九久| 人人操人人精品影片| 中文字幕在线第二页| 老司机福利青青草| 开心五月深爱五月| 午夜福利在线合集| 超碰97人妻免费在线| 可以看的av| 亚洲图片偷拍欧美| 黑人无码一区二区| 亚欧洲一区二区视频| 东京热视频网| 天天做天天爱天天爽AV| 99热在线播放| 91视频国品一二三区| 国产精品久久泡妞网站| 亚洲少妇中文字幕网址| 91 综合 色| 丁香五月综合| 日韩99神马视频片| 极品尤物女神在线观看| 日本天天干天天日一区| 97摸视频| 男人天堂新| 日韩中文字幕av在线播放| 野狼福利社区| 色天使大香蕉| 日本精品一级二级三级| 搞中出视频在线观看| 国模无码一区二区三区在线| KK色在线影院| 亚洲熟妇丝袜在线观看| se吧提供国产乱老熟视频胖女人| 国产精品久久久久久片| 人人操超碰在线| 超碰碰97| 成人激情无码在线视频| chaopen97久久| 99啪啪视频| 日韩乱伦视频| 国产辣妈在线视频福利| 亚洲学生妹高清av| 中文字幕av久久爽Av| 国产女人和拘做爰视频 | 青青草视频爽一爽| 五月天激情网站| 四虎免费视频| 高跟伊人julia ann| 九九色图| 蜜桃无码AV一区二区| A片大香蕉在线| 亚洲有码视频二区| 黑人猛交| 激情专区综合| 亚洲性爱成人| 最近二区三区视频大全| 日韩欧美蜜桃精品久久中文字幕久久| 加勒比在线视频一区二区三区| 国产日产欧产美韩系列麻豆免费| 不卡超碰护士AV在线免费播放| 激情综合婷婷| 自慰白浆在线观看| 韩国三级理论在线| 操逼啊啊啊91| 欧美性生活男人的天堂| 肉动漫无遮挡h在线观看| 思思热一热婷婷热一热| 91啪啪视频| 乱伦日本色图AⅤ| 黄片国产精品一区二区| 一级免费啪啪片| 欧美日韩亚洲天堂| 五月综合久久| 大香伊人在线一区| 亚洲,欧美,春色,另类| 天堂中文日本在线观看| 中文字幕三四区| 欧美99999| 秋霞网—男女啪啪亚洲免费体验区| 性天堂| 国产精品麻豆成人av| 欧洲黄色网| 成人性爱AV在线免费观看| 久久九色| 日本免费中文字幕在线 | 自拍偷拍 高清无码| 福利在线黄片| 大胆91| 久久精品99久久久久久| 97美日韩视频| 一级@啪啪视频| 亚洲欧美国产其他二区| 色妺妺在线视频| 天操天操夜操夜月月年年操操| 草草草视频| 五月大香蕉| 嗯嗯啊操我| 五十路熟女,国产欧美精品区一区二区三区 | 91啪啪视频| 91网站18在线| 欧美综合91| 99操视频| 综合干干干av久久久综合网 | 校园春色美腿丝袜 | 精品婷婷| 日韩 人妻 精品| 60秒不遮不挡| 国产欧美第五页| 国产熟码AV| 欧美精品日韩久久久九| 开心五月婷婷激情| 9I1性色影院| 中文字幕五区| 国产精品直播在线观看直播| 久久AV无码1区2区3区| 高清国产性猛交xxxx乱大交| 四虎在线观看网站| 91在线无码精品秘 软件| 国产精品日日摸天天碰| 天美国产三级传媒| 欧美性生活男人的天堂| 亚洲精品蜜桃久久久久久久| 成人网站 免费观看| 加勒比综合88| 日韩av电影网站| 亚洲AV在线资源| 十八禁黄色成人网站观看| 性色avv| 性爱AV天堂| 超碰色老头| 日欧美色| 91日韩网站| yellow网站免费观看日韩高清无码| 亚州熟妇精品| 婷婷丁香五月综合| 日韩性爱一级片| 中文久久96| 国产原创自拍| 自怕偷自怕亚洲精品| 伊人网在线点播| 久久亚州高清| 日本精品一区二区中文字幕| 熟女探花啪啪| 少妇精品久久久八区九区| 欧美不卡在线美女| 国产熟女乱论| 日韩欧美性吧婷婷乱伦大香蕉| 青草影院内射高潮| 亚欧美无遮挡| 女性91网站| 人人摸人人叼| 九月丁香婷婷| 丰满人妻一区二区三区色-百度| 日本熟妇熟色97一本在线观看| 无码直播久久久| 精品美女少妇一区二区| 啊啊好多水| 99久热| 国产中文精品一区二区在线观看| 亚洲 在线| 中文字幕诱惑制服人妻丝袜美丝袜美| 美女刺激久久国产欧美| 日韩Va亚洲va欧美Ⅴa久久| 亚洲另类春色| 色九色久| 韩日巨乳美女免费视频在线观看| 大香蕉2017| 屁股久久久久久| 永久免费av无码网站国产app| 国产少妇内射| 久干网| 天天淫人人妻日日色| 三级片网站在线播放| 天天艹天天日| 91视频精品| 美女91在线| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 吖在线不卡一区二区国产剧情| 精品九九九九九九| 日本幼女18+| 天天影视网色欲色香| 18岁禁 茉莉成人久久| 精品四五区| 九九综合久久| 国产黄色av大片网站| 国产成年精品高清在线观看91| 精品无码久久久久久久杏吧| 天美传媒婬乱在| 中文三一区| 99超碰网| 91精品国产长腿丝袜美女| 日日干夜夜欢| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 干少妇视频| 奶水 人妻 哺乳 在线| 天天干人妻视频| 夜夜春夜夜操| 亚洲美腿丝袜香蕉影视欧美成人| 97在线资源| 美女91色黄18| 中文字幕乱偷人妻久久艾草网| 亚洲色资源| 久草精品视频| 色在线69堂| 91美女视频电影| 97在线欧| 天天色综合影视网| 激情综合 婷婷五月 红杏| 极品美女嘿咻| 九九九九精品精| 亚洲加勒比| 免费A片三p视频| 超碰免费人妻人人| 精品国产一区二区三区在线播出| 一级岛国大片| 蜜桃视频成a人v在线| 最新中文字幕在线亚洲| 国产亲戚伦亲在线| 国模精品一区二区三区苹果色戒 | 动漫爆乳3D奶水一区在线观看| 日韩AV色图| 91天天爽| 美欧色综合| 碰碰97| 日本爽爽爽爽爽爽免费视频| 日本人妻伦在线中文字幕| 亚洲好看强奸乱伦| 日本色色色色色视频| JULIA一区二区三区在线播放| 国产版a级片直播在线| 尹人大香蕉视频在线| 九九热免费国产视频婷婷伊人| 日本九九久久99播| 久偷拍欧美日韩三区| 国产91专区| 九九九国产| 爱妃国产亚洲视频中文字幕| 免费一级精品啪啪视频| 亚洲最大的综合性av| 丁香五月天激情综合| 大香蕉免| 一级黄碟| 一本色道久久综合精品婷婷| 精品999999| 国产欧美精选激情视频| 韩国一级婬片A片AAAAA| 91 亚洲 欧洲| 狠狠色一区二区中文字幕| 啊啊啊轻点在线观看| 啊啊啊好多水| 色婷婷激一区二区三区| 丁香五月激情综合| 中文字幕天天天天天| 欧美亚洲综合999| 2020中文字幕在线观看| 日韩欧美午夜一区二区| 91人妻Pr|