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

ARTICLE DETAIL

資訊詳情

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

接口編排實(shí)戰(zhàn):從可視化設(shè)計(jì)到線上治理的關(guān)鍵技術(shù)

接口編排實(shí)戰(zhàn):從可視化設(shè)計(jì)到線上治理的關(guān)鍵技術(shù) 我們團(tuán)隊(duì)在接口開發(fā)平臺里面折騰接口編排這個(gè)模塊的時(shí)候踩過不少坑也攢下不少心得。所謂接口編排簡單說就是通過可視化的方式把多個(gè)接口按照業(yè)務(wù)邏輯串聯(lián)起來像搭積木一樣組裝成一個(gè)新的能力接口。比如前端要展示一個(gè)訂單詳情頁數(shù)據(jù)分散在訂單服務(wù)、商品服務(wù)、用戶服務(wù)三個(gè)系統(tǒng)里傳統(tǒng)的做法是前端調(diào)三個(gè)接口自己拼或者后端硬編碼一份聚合邏輯兩種方式都有維護(hù)成本。有了編排平臺我們可以在不寫業(yè)務(wù)代碼的情況下把三個(gè)服務(wù)的調(diào)用順序、入?yún)⒊鰠⒂成?、異常兜底都在畫布上拖出來生成一個(gè)聚合接口前端只需要調(diào)一次。這類能力現(xiàn)在幾乎是接口開發(fā)平臺的標(biāo)配適合做B端系統(tǒng)集成、中臺能力復(fù)用、前后端聯(lián)調(diào)提速、以及給非后端同學(xué)提供自助取數(shù)能力。不管你是平臺的設(shè)計(jì)者、系統(tǒng)的使用方、還是純好奇的開發(fā)者把編排的原理和實(shí)操套路搞清楚后面用起來會順手很多。這篇東西不按說明書講我按我們實(shí)際落地的思路和踩坑實(shí)錄來寫。1. 接口編排到底在解決什么問題為什么不能全靠代碼1.1 先理清“編排”和“調(diào)用”的區(qū)別很多人一開始會把接口編排和接口調(diào)用混為一談。調(diào)用就是一次HTTP請求發(fā)過去拿回結(jié)果最多再處理一下超時(shí)和異常。編排則是一連串經(jīng)過設(shè)計(jì)的調(diào)用鏈路節(jié)點(diǎn)之間存在數(shù)據(jù)的流轉(zhuǎn)和邏輯的跳轉(zhuǎn)。舉個(gè)例子我們要做一個(gè)“判斷用戶是否有資格參與某活動”的接口。編排平臺里可以這樣畫第一步調(diào)用戶服務(wù)拿到用戶等級和最近活躍時(shí)間第二步用一個(gè)條件判斷節(jié)點(diǎn)判斷等級是否達(dá)標(biāo)等級達(dá)標(biāo)時(shí)繼續(xù)調(diào)風(fēng)控服務(wù)查用戶的黑名單狀態(tài)不達(dá)標(biāo)就直接輸出拒絕結(jié)果后續(xù)節(jié)點(diǎn)不執(zhí)行。這部分邏輯如果用代碼寫也就是幾個(gè)if else加上幾個(gè)HTTP工具類的調(diào)用本身不復(fù)雜。但如果這樣的邏輯有成百上千條每條都散落在不同的業(yè)務(wù)代碼庫里誰來維護(hù)改一個(gè)“等級門檻從5級調(diào)到3級”你得找到那段代碼改完還要發(fā)版。而在編排平臺里這個(gè)邊界的調(diào)整反映在流程圖上業(yè)務(wù)人員都可以參與評審開發(fā)同學(xué)改起來也就是在畫布上改一個(gè)屬性值。這就是編排存在的意義——把業(yè)務(wù)邏輯從代碼倉庫里抽離出來變成可維護(hù)的配置資產(chǎn)。1.2 編排平臺解決的三類典型痛點(diǎn)我梳理了一下日常用的最多的場景基本可以歸成三類。第一類是接口聚合。前端一個(gè)頁面需要多個(gè)后端接口的數(shù)據(jù)與其讓前端發(fā)多個(gè)請求再自己合并不如在編排層做一個(gè)聚合接口。好處是前端邏輯簡單了網(wǎng)絡(luò)請求次數(shù)少了而且聚合結(jié)果的數(shù)據(jù)結(jié)構(gòu)可以由前端來定義前端拿到的就是渲染所需的結(jié)構(gòu)。第二類是邏輯編排。多個(gè)接口不是簡單的并聯(lián)匯總而是有先后、有條件、有循環(huán)。例如清結(jié)算系統(tǒng)里需要先算基礎(chǔ)金額再疊加優(yōu)惠券再判斷是否需要走人工審核最后再寫流水。每一步都可能是獨(dú)立服務(wù)編排層把這些步驟固化成流程替代原本散落在業(yè)務(wù)系統(tǒng)里的狀態(tài)機(jī)代碼。第三類是異構(gòu)系統(tǒng)集成。老系統(tǒng)只提供XML接口新系統(tǒng)只認(rèn)JSONA系統(tǒng)需要Basic認(rèn)證B系統(tǒng)需要Token鑒權(quán)。編排平臺的節(jié)點(diǎn)里可以內(nèi)置不同類型的適配器把協(xié)議差異和認(rèn)證差異在節(jié)點(diǎn)層消化掉上層流程不需要關(guān)心從而降低系統(tǒng)之間的耦合度。1.3 編排與低代碼、BPM的邊界在哪里用編排平臺時(shí)間長了會發(fā)現(xiàn)它和低代碼平臺、BPM工作流引擎有些功能重疊但側(cè)重點(diǎn)不同。BPM關(guān)注的是“人參與的任務(wù)流”比如審批流、工單流節(jié)點(diǎn)主要是“用戶任務(wù)”“服務(wù)任務(wù)”強(qiáng)調(diào)的是流程的狀態(tài)推進(jìn)和人員分配。低代碼平臺更寬泛連前端頁面、數(shù)據(jù)模型都能一起做了。接口編排平臺通常只專注于“服務(wù)集成”這個(gè)層次——輸入輸出都是結(jié)構(gòu)化數(shù)據(jù)執(zhí)行過程全程自動不需要人工介入性能要求比BPM高得多。所以我們在做平臺選型或者自研設(shè)計(jì)時(shí)最好不要把編排引擎做成一個(gè)萬能工作流引擎否則會把性能踩爆。編排引擎更適合設(shè)計(jì)成同步短流程單次編排執(zhí)行控制在幾百毫秒到幾秒之間遇到需要異步長流程的場景就應(yīng)該讓流程發(fā)出一個(gè)事件由底層的消息隊(duì)列慢慢去跑而不是在同步鏈路里硬等。2. 編排的核心概念與設(shè)計(jì)器要點(diǎn)解析2.1 流程、節(jié)點(diǎn)、連線是最小的三件套進(jìn)入編排設(shè)計(jì)器首先看到的就是這三個(gè)基本元素流程Flow、節(jié)點(diǎn)Node、連線Edge。流程是整個(gè)編排的載體一個(gè)流程代表一個(gè)可被外部調(diào)用的接口能力。流程需要配置唯一的路徑標(biāo)識例如/api/demo/order/aggregate對外暴露時(shí)還要選擇HTTP方法、設(shè)置超時(shí)、配置權(quán)限。節(jié)點(diǎn)是流程內(nèi)部的執(zhí)行單元。一個(gè)節(jié)點(diǎn)封裝一次具體的動作比如調(diào)用某個(gè)HTTP接口、執(zhí)行一段表達(dá)式、轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)、做條件判斷。節(jié)點(diǎn)的設(shè)計(jì)好壞直接影響編排能力的上限。我們的設(shè)計(jì)原則是節(jié)點(diǎn)要有契約也就是明確輸入?yún)?shù)、輸出參數(shù)、錯(cuò)誤碼這樣連線的數(shù)據(jù)才能被正確傳遞。連線描述節(jié)點(diǎn)間的流轉(zhuǎn)關(guān)系。連線可以是“無條件順序執(zhí)行”也可以是帶條件的“條件連線”例如只有前一步的code0時(shí)才走到下一步。條件連線常和“條件判斷節(jié)點(diǎn)”搭配使用但簡單的場景直接寫一個(gè)條件表達(dá)式在連線上也能省一個(gè)節(jié)點(diǎn)。2.2 節(jié)點(diǎn)類型怎么選按使用頻率排序我們平臺沉淀出的常用節(jié)點(diǎn)大概有十幾種但你別看種類多日常高頻使用的其實(shí)就那么幾個(gè)。HTTP請求節(jié)點(diǎn)是絕對的主力。它負(fù)責(zé)發(fā)起外部HTTP調(diào)用可配置URL、Method、Headers、Query、Body支持GET/POST/PUT/DELETE等常用方法。這里有一個(gè)比較重要的設(shè)計(jì)細(xì)節(jié)HTTP響應(yīng)不能原樣拋給下游要轉(zhuǎn)成統(tǒng)一的消息結(jié)構(gòu)。比如框架里約定{ code: 0, message: ok, data: {...} }HTTP節(jié)點(diǎn)會先把遠(yuǎn)端響應(yīng)解析成這個(gè)結(jié)構(gòu)業(yè)務(wù)代碼拿data部分就好了。否則不同接口的返回結(jié)構(gòu)五花八門下游的表達(dá)式會寫得非常痛苦。條件判斷節(jié)點(diǎn)是流程分支的樞紐。它支持類似score 3 status 1的表達(dá)式表達(dá)式的結(jié)果為true時(shí)走“是”分支false走“否”分支。這里注意判斷節(jié)點(diǎn)不能只判斷true/false最好還要支持“未知”狀態(tài)。為什么因?yàn)楸磉_(dá)式里任意一個(gè)字段缺失或者取值為空都可能導(dǎo)致判斷結(jié)果不確定。如果設(shè)計(jì)時(shí)只給兩個(gè)出口那么字段缺失時(shí)系統(tǒng)只能默認(rèn)走false很可能會掩蓋配置錯(cuò)誤。腳本節(jié)點(diǎn)適合做輕量邏輯。我們允許在節(jié)點(diǎn)里寫一段函數(shù)表達(dá)式實(shí)現(xiàn)字段的加工計(jì)算。比如把兩個(gè)數(shù)值加起來、截取字符串、拼接時(shí)間。要注意的是腳本節(jié)點(diǎn)不適合做重量級計(jì)算更不應(yīng)該在里面寫數(shù)據(jù)庫訪問。它定位是“膠水”把上游數(shù)據(jù)轉(zhuǎn)換下一個(gè)節(jié)點(diǎn)需要的入?yún)H此而已。循環(huán)節(jié)點(diǎn)用來處理數(shù)組。上游返回一個(gè)訂單列表我們需要挨個(gè)調(diào)商品服務(wù)補(bǔ)全信息這時(shí)就可以用循環(huán)節(jié)點(diǎn)包住整個(gè)子流程。子流程的每一次迭代都會拿到當(dāng)前數(shù)組元素作為上下文循環(huán)結(jié)束后匯總所有迭代結(jié)果。聚合節(jié)點(diǎn)用于合并多個(gè)上游分支的結(jié)果。有些流程會同時(shí)發(fā)出多個(gè)HTTP請求并行執(zhí)行全部返回后匯聚到同一個(gè)節(jié)點(diǎn)繼續(xù)往下走。聚合節(jié)點(diǎn)的超時(shí)控制要小心它需要等待所有分支返回所以它的超時(shí)時(shí)間一般要設(shè)置成優(yōu)于下游節(jié)點(diǎn)的總超時(shí)時(shí)間否則可能出現(xiàn)子任務(wù)還在跑聚合節(jié)點(diǎn)自己先超時(shí)了。2.3 設(shè)計(jì)器畫布之外的幾個(gè)隱藏要素畫布只是冰山一角真正決定編排可用性的是畫布之外的配置項(xiàng)。一是全局變量。流程開始前可以通過請求參數(shù)注入一批全局變量例如當(dāng)前用戶身份、請求ID、語言環(huán)境。全局變量在流程的任意節(jié)點(diǎn)里都可以引用但它們都是只讀的避免被某個(gè)中間節(jié)點(diǎn)誤改。二是錯(cuò)誤處理策略。每個(gè)節(jié)點(diǎn)都可以配置“失敗后行為”終止整個(gè)流程并返回錯(cuò)誤、跳到指定的錯(cuò)誤處理節(jié)點(diǎn)、繼續(xù)執(zhí)行下游但把錯(cuò)誤信息附帶在上下文中。這三類策略覆蓋了大部分容錯(cuò)需求。三是版本管理。發(fā)布后的流程如果改動不能直接覆蓋線上版本。標(biāo)準(zhǔn)的做法是保存新版本運(yùn)行中的請求繼續(xù)使用舊版本新請求逐步切到新版本。這塊還要考慮灰度發(fā)布比例從5%、10%、50%逐步放大觀察錯(cuò)誤率沒有明顯變化后再切全量。3. 核心執(zhí)行引擎怎么設(shè)計(jì)編排才有真正的生產(chǎn)可用性3.1 從DAG到狀態(tài)機(jī)流程運(yùn)行時(shí)的本質(zhì)有人覺得編排執(zhí)行器很神秘其實(shí)底層可以理解成一個(gè)被驅(qū)動的有向無環(huán)圖DAG。每個(gè)節(jié)點(diǎn)就是一個(gè)執(zhí)行單元連線代表依賴關(guān)系。引擎按拓?fù)漤樞驁?zhí)行節(jié)點(diǎn)維護(hù)一個(gè)全局可訪問的上下文對象節(jié)點(diǎn)從上下文讀輸入執(zhí)行結(jié)束后把輸出寫回上下文。不過把流程完全當(dāng)成靜態(tài)DAG還不夠因?yàn)槲覀冞€需要支持循環(huán)DAG本身是有向無環(huán)的不支持循環(huán)。我們的做法是把循環(huán)節(jié)點(diǎn)特殊處理循環(huán)節(jié)點(diǎn)作為一個(gè)“子流程容器”在執(zhí)行時(shí)把容器內(nèi)部當(dāng)作一個(gè)子DAG來調(diào)度每輪迭代執(zhí)行一次子DAG。這樣主流程仍然是一個(gè)DAG循環(huán)邏輯被限制在容器內(nèi)部既保證了執(zhí)行器性能可控又滿足了業(yè)務(wù)對循環(huán)的需求。在實(shí)現(xiàn)層面可以用一個(gè)棧來模擬運(yùn)行時(shí)上下文。每進(jìn)入一個(gè)流程調(diào)用壓入一個(gè)流程上下文幀進(jìn)入循環(huán)子流程時(shí)壓入迭代幀離開時(shí)再彈出。這樣即使出現(xiàn)嵌套循環(huán)變量查找也不會串。3.2 上下文數(shù)據(jù)的傳遞和隔離上下文是整個(gè)編排的數(shù)據(jù)總線。我強(qiáng)烈建議把上下文設(shè)計(jì)成層級結(jié)構(gòu)而不是一個(gè)扁平的Map。例如context { input: {}, node_result: { node1: {...}, node2: {...} }, local: {} }node_result下面以節(jié)點(diǎn)ID為key保存每個(gè)節(jié)點(diǎn)的輸出這樣可以避免字段命名沖突也方便排查時(shí)快速定位“某節(jié)點(diǎn)到底輸出了啥”。local用于保存臨時(shí)變量比如循環(huán)計(jì)數(shù)器、經(jīng)過計(jì)算后的中間值。上下文傳遞時(shí)要注意隔離性。同一份流程如果被并發(fā)調(diào)用每個(gè)請求必須要有一份獨(dú)立的上下文實(shí)例。在代碼實(shí)現(xiàn)上可以使用線程局部變量也可以顯式把上下文作為參數(shù)傳遞。顯式傳遞更安全因?yàn)楫惒綀?zhí)行時(shí)線程局部變量容易丟失上下文特別是循環(huán)子流程通過線程池調(diào)度的時(shí)候。3.3 超時(shí)、重試和并發(fā)控制的參數(shù)設(shè)置指南線上生產(chǎn)環(huán)境里流程跑掛的原因很多不是邏輯問題而是超時(shí)和重試配置不合理。單個(gè)節(jié)點(diǎn)的超時(shí)時(shí)間一定要小于流程的總超時(shí)時(shí)間。比如一個(gè)流程的總超時(shí)是3秒里面有兩個(gè)串行HTTP節(jié)點(diǎn)那么每個(gè)節(jié)點(diǎn)的超時(shí)建議不超過1.2秒留下一部分時(shí)間給表達(dá)式計(jì)算、上下文拷貝和網(wǎng)絡(luò)框架開銷。如果總超時(shí)3秒而節(jié)點(diǎn)設(shè)置了4秒那這個(gè)節(jié)點(diǎn)永遠(yuǎn)沒有機(jī)會正常超時(shí)返回因?yàn)檎麄€(gè)流程早就被打斷了。重試設(shè)置也要克制。對“連接超時(shí)”這種瞬時(shí)故障重試1~2次是合理的。但對“業(yè)務(wù)返回碼錯(cuò)誤”例如登錄失效、參數(shù)不合法重試沒有意義反而會放大對下游服務(wù)的壓力。我們的經(jīng)驗(yàn)是重試只針對網(wǎng)絡(luò)層錯(cuò)誤和5xx錯(cuò)誤4xx業(yè)務(wù)錯(cuò)誤一律直接拋出。并發(fā)控制在編排里容易被忽略。有些聚合場景會同時(shí)調(diào)十幾個(gè)下游接口如果下游服務(wù)本身容量有限這十幾個(gè)并發(fā)請求可能直接把它打崩。一個(gè)相對穩(wěn)妥的做法是在編排引擎里做信號量控制同一流程實(shí)例的并發(fā)分支數(shù)限制在4~8之間超過的排隊(duì)執(zhí)行。犧牲一點(diǎn)性能換取系統(tǒng)穩(wěn)定性。3.4 編排引擎的監(jiān)控埋點(diǎn)應(yīng)該埋哪些指標(biāo)線上排查問題全靠監(jiān)控?cái)?shù)據(jù)。至少需要埋這幾類指標(biāo)流程執(zhí)行次數(shù)、成功率、平均耗時(shí)、P99耗時(shí)節(jié)點(diǎn)級執(zhí)行次數(shù)、耗時(shí)、錯(cuò)誤分布按錯(cuò)誤類型分桶上下文大小、入?yún)⒊鰠⒋笮》乐褂腥送舷挛睦锶髮ο蟀褍?nèi)存拖垮網(wǎng)關(guān)層的超時(shí)熔斷數(shù)據(jù)編排引擎內(nèi)部超時(shí)不算最終業(yè)務(wù)失敗但是需要單獨(dú)統(tǒng)計(jì)。另外一定要有全鏈路追蹤。編排流程一次調(diào)用會貫穿多個(gè)下游系統(tǒng)沒有traceId串聯(lián)出了問題根本沒法定位。我們?yōu)槊總€(gè)流程實(shí)例生成一個(gè)全局traceId貫穿所有下游HTTP調(diào)用——通過Header傳給下游同時(shí)輸出到日志和監(jiān)控系統(tǒng)。前端報(bào)錯(cuò)時(shí)只要把traceId貼過來中間經(jīng)歷了哪些節(jié)點(diǎn)、每個(gè)節(jié)點(diǎn)耗時(shí)多少、哪一步拋的異常一條鏈路就能查清楚。4. 一個(gè)完整實(shí)操案例從零編排“訂單聚合詳情”接口4.1 接口設(shè)計(jì)的入?yún)⑴c出參約定說了這么多理論直接上一套可以照著做的流程。業(yè)務(wù)背景前端需要一個(gè)“訂單聚合詳情”接口一次請求拿到訂單基本信息、購買的商品詳情、賣家信息、物流軌跡。我們約定入?yún)閧 orderNo: SO202501010001 }出參結(jié)構(gòu){ order: { orderNo: SO202501010001, amount: 199.0, status: PAID }, items: [ { productId: 10001, name: 機(jī)械鍵盤, quantity: 1, price: 199.0 } ], seller: { sellerId: 20001, nickname: 某店鋪 }, logistics: [] }設(shè)計(jì)明文約定字段命名采用小駝峰日期時(shí)間統(tǒng)一使用字符串yyyy-MM-dd HH:mm:ss金額使用數(shù)字類型不傳字符串。4.2 畫布上的串聯(lián)流程與參數(shù)映射在編排設(shè)計(jì)器里這個(gè)流程按順序放置4個(gè)節(jié)點(diǎn)調(diào)用訂單服務(wù)入?yún)rderNo從context.input.orderNo取值輸出存到orderServiceResult。調(diào)用商品服務(wù)入?yún)rderId從orderServiceResult.data.orderId取值輸出存到productServiceResult。調(diào)用賣家服務(wù)入?yún)ellerId從orderServiceResult.data.sellerId取值輸出存到sellerServiceResult。組裝返回結(jié)果使用數(shù)據(jù)映射節(jié)點(diǎn)/腳本節(jié)點(diǎn)把前面三個(gè)結(jié)果拼裝成目標(biāo)出參結(jié)構(gòu)。前三個(gè)步驟都是HTTP請求節(jié)點(diǎn)差別只在URL、入?yún)⒂成浜洼敵鰟e名。真正有技術(shù)含量的是第4步數(shù)據(jù)映射。4.3 數(shù)據(jù)映射的三種常用實(shí)現(xiàn)方式數(shù)據(jù)映射走三條路可視化映射、JS腳本映射、模板化映射??梢暬成溥m合簡單場景比如把orderServiceResult.data.amount直接搬到輸出節(jié)點(diǎn)。通過界面兩個(gè)輸入框拖拽連線即可。但遇到需要循環(huán)列表的場景可視化就略顯笨拙。JS腳本映射靈活度最高。比如我們想把商品列表里的“價(jià)格”統(tǒng)一做格式化可以這樣寫function transform(items) { return items.map(it ({ productId: it.product_id, name: it.product_name, price: Number(it.price).toFixed(2) })); }注意這里不是寫完整業(yè)務(wù)代碼只是做映射所以要保持函數(shù)獨(dú)立、無副作用不要依賴流程上下文以外的東西。模板化映射適合輸出是一個(gè)固定結(jié)構(gòu)的JSON模板。把目標(biāo)結(jié)構(gòu)寫好里面用占位符替代動態(tài)值執(zhí)行時(shí)引擎解析模板將變量逐一填充。這個(gè)方法在輸出結(jié)構(gòu)復(fù)雜且層級很深時(shí)特別好用因?yàn)橐谎勰芸闯鲎罱KJSON的骨架長什么樣。4.4 加上一個(gè)兜底邏輯物流信息查詢失敗不影響主流程真實(shí)業(yè)務(wù)里物流信息接口偶爾會超時(shí)但我們不想因?yàn)槲锪鲯炝藢?dǎo)致整個(gè)訂單詳情接口報(bào)錯(cuò)。這時(shí)可以給物流節(jié)點(diǎn)配置“失敗后繼續(xù)”策略并且在代碼塊中為最終返回值補(bǔ)默認(rèn)值。節(jié)點(diǎn)級配置示例節(jié)點(diǎn)_id: logistics_query 失敗策略: continue 默認(rèn)值: []引擎執(zhí)行到物流節(jié)點(diǎn)時(shí)如果請求失敗不會拋出異常而是在上下文中寫入一個(gè)特殊的錯(cuò)誤標(biāo)記同時(shí)將logisticsServiceResult設(shè)置為空列表流程繼續(xù)往后走。最后的組裝節(jié)點(diǎn)里引用logisticsServiceResult.data.list || []這樣即便失敗也能返回一個(gè)合法結(jié)構(gòu)只是物流列表為空。前端的表現(xiàn)就是訂單和商品正常展示物流區(qū)域顯示“暫無軌跡”。這個(gè)兜底設(shè)計(jì)看似簡單但在接口編排里非常關(guān)鍵。一旦流程的節(jié)點(diǎn)多了自然的傾向是“一步失敗全流程失敗”但業(yè)務(wù)不能這樣一刀切。編排平臺的價(jià)值之一就是讓研發(fā)把這類“部分成功”的容錯(cuò)策略顯式地畫出來而不是散落在代碼里難以維護(hù)。5. 調(diào)試測試與線上排查實(shí)錄5.1 基于用例的調(diào)試功能怎么設(shè)計(jì)才好用編排平臺如果只有一個(gè)在線調(diào)試按鈕非常難用。因?yàn)橥粋€(gè)流程在不同入?yún)⑾伦叩姆种Э赡芡耆煌粶y一個(gè)happy path是不夠的。我們在平臺里引入了“調(diào)試用例”這個(gè)概念。你可以為某個(gè)流程維護(hù)一組用例比如用例入?yún)⑵谕Y(jié)果正常訂單{orderNo:SO001}返回完整聚合數(shù)據(jù)訂單不存在{orderNo:NOT_FOUND}返回錯(cuò)誤碼50001物流接口超時(shí)模擬超時(shí)主流程正常返回物流為空調(diào)試接口會逐步執(zhí)行流程每執(zhí)行完一個(gè)節(jié)點(diǎn)界面展示該節(jié)點(diǎn)的入?yún)⒖煺?、出參快照、耗時(shí)、錯(cuò)誤信息。這個(gè)過程我們叫“步驟回放”。遇到流程跑出意料之外的結(jié)果只要看步驟回放立刻知道是哪個(gè)節(jié)點(diǎn)的輸出不對鏈路清晰可見。5.2 從慢到快的定位思路線上反饋請求慢不要急于看代碼先按這個(gè)順序排查??慈溌纷粉檾?shù)據(jù)確定耗時(shí)的分布到底是節(jié)點(diǎn)1慢、節(jié)點(diǎn)2慢還是聚合等待時(shí)間長??垂?jié)點(diǎn)級P99耗時(shí)判斷是個(gè)別請求慢還是整體慢。如果是整體慢大概率是下游服務(wù)容量問題或者編排引擎線程池被打滿。看是否出現(xiàn)串行等待。有的流程原本設(shè)計(jì)成兩個(gè)節(jié)點(diǎn)可以并行但配置上因?yàn)閿?shù)據(jù)依賴關(guān)系變成了串行比如節(jié)點(diǎn)B需要節(jié)點(diǎn)A結(jié)果里的某個(gè)字段運(yùn)行時(shí)只能等??粗卦囀欠癖挥|發(fā)。日志里出現(xiàn)連接超時(shí)異常重試把總耗時(shí)放大了幾倍這是常見的隱形殺手。我們遇到過一次詭異問題同樣的流程固定入?yún)⑶?0次都是正常的第11次開始變慢過一會兒又恢復(fù)。排查了好久才發(fā)現(xiàn)是下游某服務(wù)開啟了連接池預(yù)熱機(jī)制連接在空閑時(shí)間后被服務(wù)端關(guān)閉客戶端重連時(shí)經(jīng)歷了一次TCP握手加TLS握手耗時(shí)翻倍。這種問題在自測環(huán)境幾乎沒有因?yàn)闇y試環(huán)境的連接一直在被使用。解決思路是在編排引擎層做雙連接池控制或定期健康探測避免冷連接堆積。5.3 線上出問題時(shí)編排平臺需要提供哪些止血手段最怕線上流程突然錯(cuò)誤率飆升。平臺要有幾個(gè)止血開關(guān)。第一個(gè)是熔斷開關(guān)。發(fā)現(xiàn)某個(gè)下游接口的失敗率超過閾值可以在平臺上把編排流量快速摘除讓調(diào)用方直接降級到默認(rèn)值或走兜底接口。這里應(yīng)該支持按比例熔斷比如先熔斷10%的流量試水觀察整體效果。第二個(gè)是版本回滾。新版本發(fā)布后如果出了問題一鍵回滾到上一個(gè)穩(wěn)定版本。前提是發(fā)布前有自動化用例跑完且線上切換有灰度流程否則回滾也很容易引發(fā)次生災(zāi)害。第三個(gè)是流量復(fù)制。在測試環(huán)境用線上真實(shí)流量跑一遍新版本流程對比結(jié)果差異。這個(gè)功能實(shí)現(xiàn)成本不低但對于訂單、支付等核心鏈路來說價(jià)值極高。我們通常會在新版本發(fā)布前用一周的線上流量在影子環(huán)境回放對比產(chǎn)出的出參結(jié)構(gòu)差異。6. 常見問題與避坑速查6.1 編排節(jié)點(diǎn)越畫越多流程復(fù)雜到?jīng)]法維護(hù)怎么辦這是編排平臺普遍存在的通病。場景多、分支多編排圖變成一團(tuán)亂麻。我們的經(jīng)驗(yàn)是三個(gè)辦法子流程拆分。把一段穩(wěn)定的邏輯抽出來做成公共子流程比如“獲取當(dāng)前用戶信息”主流程只需要引用它后續(xù)統(tǒng)一升級公共子流程即可。限制單流程節(jié)點(diǎn)數(shù)量。平臺層面設(shè)定軟閾值超過50個(gè)節(jié)點(diǎn)就不允許創(chuàng)建強(qiáng)制拆分。單元測試全覆蓋。每個(gè)分支都必須有對應(yīng)的測試用例這樣以后重構(gòu)流程時(shí)測試集能確保沒有把分支改壞。6.2 上下游接口參數(shù)變更時(shí)如何避免編排靜默出錯(cuò)編排平臺依賴上游接口的字段上游接口一旦改名或刪字段編排層的表達(dá)式會引用到不存在的字段。很多引擎的表達(dá)式引擎遇到缺失字段時(shí)取到undefined后續(xù)邏輯把undefined透傳給下游經(jīng)常變成讓人頭疼的“靈異問題”。比較好的做法是給流程定義“輸入契約校驗(yàn)”。例如在入?yún)⒂成潆A段聲明orderServiceResult.data.orderId是必填項(xiàng)執(zhí)行前先校驗(yàn)是否為空為空時(shí)直接報(bào)明確的錯(cuò)誤碼而不是繼續(xù)執(zhí)行到一半再出莫名錯(cuò)誤。另一個(gè)做法是在編排平臺集成接口元數(shù)據(jù)管理上游接口的出入?yún)⒔Y(jié)構(gòu)變了平臺能自動識別并提示相關(guān)編排流程可能受影響推動責(zé)任人及時(shí)修復(fù)。6.3 編排引擎對下游系統(tǒng)造成突發(fā)壓力怎么辦流程里某一個(gè)節(jié)點(diǎn)的調(diào)用量突然暴漲下游接口扛不住這時(shí)要考慮在編排引擎內(nèi)做限流。限流的維度需要可配置可以按流程維度限流也可以按某個(gè)下游域名限流。按流程限流保護(hù)的是外部調(diào)用方按下游域名限流保護(hù)的是下游系統(tǒng)。兩個(gè)維度都要有。另外一個(gè)有效措施是請求合并。如果同一個(gè)流程實(shí)例里需要連續(xù)多次調(diào)用同一個(gè)下游接口并且入?yún)⒅皇且恍㊣D的差異我們可以用“批量接口適配”節(jié)點(diǎn)把多次調(diào)用合并成一次批量調(diào)用。比如循環(huán)體里逐個(gè)查商品信息1次、2次、5次批量節(jié)點(diǎn)可以直接調(diào)商品批量查詢接口一次全拿到。這個(gè)優(yōu)化需要下游支持批量接口但收益非常明顯能把下游QPS降到原來的幾十分之一。6.4 上下文里塞入大量數(shù)據(jù)導(dǎo)致內(nèi)存溢出有一個(gè)真實(shí)案例某流程用腳本節(jié)點(diǎn)從數(shù)據(jù)庫拉了一批數(shù)據(jù)放到上下文里后面又循環(huán)遍歷這批數(shù)據(jù)本來沒太大問題。但后來業(yè)務(wù)方在腳本里又把返回的數(shù)據(jù)復(fù)制了幾份導(dǎo)致單請求上下文十幾MB。平時(shí)流量不大看不出來促銷流量一上來編排引擎直接內(nèi)存告警。經(jīng)驗(yàn)法則上下文中的數(shù)據(jù)量應(yīng)該和一次HTTP請求的響應(yīng)體量同級控制在幾十KB到幾百KB。凡是超過1MB的臨時(shí)數(shù)據(jù)都要仔細(xì)評估能不能用臨時(shí)存儲或者異步任務(wù)代替不能為了圖方便丟進(jìn)上下文。另外要在平臺側(cè)做上下文大小的硬限制超限直接報(bào)錯(cuò)避免隱患積累。一點(diǎn)實(shí)操體會我把接口編排平臺用下來的最大感受是這個(gè)工具真正難的不是畫布和流程而是圍繞它的一堆治理能力——版本管理、權(quán)限管理、監(jiān)控告警、契約校驗(yàn)、性能治理。畫圖拖拽只是表面把流程變成可控的線上資產(chǎn)才是接口編排能真正落地的關(guān)鍵。實(shí)際維護(hù)的時(shí)候我習(xí)慣每個(gè)流程都在命名、注釋和測試用例上多花一點(diǎn)時(shí)間寧可剛開始慢一點(diǎn)也不讓半年后的自己看著一堆“神明流程”欲哭無淚。如果你也在用或正在建設(shè)類似的編排平臺建議先把監(jiān)控和回放功能補(bǔ)齊再談花哨的自動化能力這樣后面維護(hù)起來會輕松很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97超碰jingpin| 熟女丰满人妻一区| 超清中文乱码字幕| 超碰97极品9| 1204金沙人妻懂旧版免费| 99热啪啪| 亚欧Av| 精品无码欧美三级| 96精品久久久| 欧美玖玖爱免费玖玖| 99精品在线| 国产精品久久久久中文字幕| 亚洲影院365| 啪啪自拍九九综合| 夜夜躁狠狠躁日日躁av| 超碰97综合网| 91天美免费| 精品国产网站| 天天干天天拍| 青娱乐二区免费| 欧美aⅴ99久久黑人专区| 青青草视频久久| 新版天堂中文资源8在线| 久久国产在线一区二区| 偷拍亚洲| 亚洲国产另类在线中文| 九热中文字幕| 亚洲一卡2卡3卡4卡乱码网站| 精品一级毛片在线观看| 久久久久久久9| 无码粉嫩白虎一线天b区| 大香蕉欧美国产日韩高潮| 极品丝袜无码| 91黑丝少妇| 色五月综合网| 9九九九九视频在线观看| 97精品综合| 激情五月婷婷| 国产丝袜美女诱惑| 91美女视频在线| 中文字幕天天天天天| 四虎 精品 WWW| 色婷五月天| 久久人妻精品| 中美日韩毛片| 涩涩久久精品| 中文字幕丝袜| 亚洲欧洲av影音| 日韩啊V| 中文字幕av亚洲精品| 亚欧高清| 日韩欧美中文| 国产精品久久久亚洲一区| 性色一线| 走光一区92下载| 99精品综合久久久久五月天| 男人天堂欧美| 亚洲欧美日韩二区视频| 青青草色情网站视频| 丝袜无码a片| 疯操AV| 日逼逼免费看| 大香蕉人妻| 澳门人妻久久| 青青草毛片| 久草尤物| 久久五月丁香| 欧美在线l亚洲| 91中文字幕制服丝袜免费视频| 狠狠操狠狠操操| 国产日韩精品人妻久久久久色欲网站| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 久久久国产精品人妻丝袜| yazhousetuoumei| 久久久久久久9最新免费视频观看| 婷婷探花久久精品一区| 免费精品无码一级毛片牛牛影视| 中文字幕一区二区在线日韩精品| 美女久久久久久久| 亚洲国产综合视频| 亚洲男人天堂Av| 日本一天色道久久久精品视频| 呻吟 欧美 日本 中出| 中文字幕视频在线观看| 熟女人妻一区二区三区| 美国久久一二三四| 97超碰人人模人人拍人人| 新婚人妻扶着粗大强行坐下| 丁香五月天久久精品视频一区二区三区| 欧美色图99| 97伪v| 一级@啪啪视频| 精品一二三区久久AAA片| 色99视频| 超碰天天操| 操熟女91| 影视综合无码少妇| 欧美少妇色综合| 少妇久久| 婷婷丁香六月| 亚洲丝袜二区在线| 青娱乐亚洲自拍| 日本少妇va7777| 国产自啪精品视频网站黑丝| 在线色导航| 成年男人的天堂| 啊啊啊啊操死我| 婷婷丁香成人| 2017天天操天天日| 精品国产久热在线观看| 国产成人啪一区二区| 自拍偷拍第26| 天天影视射综合网| 在线观看亚洲专区| 亚洲欧美变态| 9999久久久久| 中文 人妻 制服| 婷婷99| 人人妻天天做天天爽| 99热只有这里有精品| 超碰人妻在线| 97干在线视频| av麻豆啪啪| 草草电影院| 天天操天天7| 亚洲视频精选| 婷婷视频在线免费观看| 99热精品在线| 亚洲日韩电影| 欧美日韩黄色片一区二区三区四区人与兽做爱| 黄色成人网久久久久久| 国产精品午夜AV完会免费| A片大香蕉在线| 四月丁香婷婷| 亚洲AV无线| 国产97综合| 精品久热| 美日韩男女操屄视频| 欧洲综合视频| 超碰国产精品久| 东京热不卡视频| 亚洲无码AV九九九| 男人午夜天堂| 人妻熟女一区二区| 99久视频| 中字幕人妻一区二区三区| 18岁禁 茉莉成人久久| 18禁免费视频| 日韩精品一二三| 男人下部插入女人下部| 亚洲欧美日韩精品久| 欧美伊人电影| 麻豆一区在线| 男人亚洲91首页在线| 国产无码精品成人| 99最新日韩偷拍视频| 丁香九月激情| 欧美精品23| 爱丝福利| 久久久久久九九九九-美女久久久久久久-成人AV | 校园春色亚洲欧洲| 两性综合网| 九九AV| 无码男人天堂| AV一二区| 色五月亚洲| 国产精品亚洲天堂网址| 最近二区三区视频大全| 伊人久久亚洲色欲综合网站 | 97久久国产亚洲精品超碰热| 中文字幕制服欧美久久一区| 日本操BAV| 天天综合-91入口| 国产综合久| 中文字幕少妇色| 我要看免费韩日黄片| 国产亚洲精品一区二区三区| 大香蕉99999| 1二区9| 97青青操视频| 蜜臀色乳| 东北女人被操| 日韩国产十八禁| 亚洲精品色| 亚洲精品aa久久伊人| 人妻少妇久久中文字幕一区二区 麻豆 | 中文97国产| 怡红院怡春院| 欧美日韩国产电影| 久久欧洲| 啊啊啊好湿国产一二| 天天日天天插| 精品区9| www色色色com| 欧美日韩999| 日韩乱伦视频| 色综合久| 国产精品亚洲免费| 国产欧美一区激情交| 肉嘟嘟www视频在线观看高清| 欧美色www亚洲国产阿娇要播| 亚洲天堂男人天堂| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 天堂精品| 欧亚三区动漫| 中出欧美| 偷拍 欧美 日韩| 在线日韩精品一区二区三区| 日韩性爱小视频| 清纯唯美亚洲| 日韩免费看在线黄色片| 伊人色综合网电影| 91超级碰碰碰| 九色 人妻 大香蕉| 熟妇人妻一区二区| 10000部十八禁看电影| 刺激性视频黄页| 久久久中文版| Aa东京男人的天堂| 五月天AV资源| 天天视频网站黄| 成人精品一区二区91毛片不卡| 热无码中文亚洲H一道本一区二区| 婷婷色色五月天福利| 国产精品成久久久久午夜午夜| 国产精品白领在线观看 | 免费视频无码| 日韩精品人妻中文字幕有码午| AV天堂电影网| 色网1| 青草伊人网| 亚洲欧美黄| 豆花视频操逼网址| 亚洲Av无码成人精品国产| 色色色欧美| 精品熟女一区=区三区| 少妇同性| 97在线看| 3P乱轮视频| 爽爽淫人网| 91日日| 欧美综合自拍亚洲综合图| 人妻丝袜日本| 九色在线熟女国产黑人| 美日韩一卡二卡三卡免费人妻精品| 色91综合网| 熟女一区二区三区四区| 91久久久亚洲| 激情综合婷婷| 福利天堂| 成人免费毛片| 日本人体九九九九九九| 亚洲美腿丝袜香蕉影视欧美成人| 插入逼91| 另类天堂| 久久久久久人| 尤物网址| 九一综合网| 欧美天天综合在线| 日本性爱不卡视频| 天天天肏屄欧美| 精品无码产区一区二| 蜜臀久久99精品久久久电影| 影音先锋国产精品| ...日韩成人一区二区三区字幕| 久久久久久九九九| 99色热| 2019午夜福利视频| 国产日韩欧美中文在线播放| 国产不卡片| 九t超碰| 婷婷中文网| 熟啊v色欧美热| 性天堂| 亚洲精品99| 91综合天天看| 中文字幕性感少妇av| 九九国产热| 人人弄人人摸| 日韩少妇丰满亚洲| 日韩欧美亚欧在线视频| 丝袜AV一二三区| 欧美人妻一区二区| 欧美性爱伊人| 欧美日韩中文字幕不卡| 人人扣人人操| 欧美日韩中文字幕不卡| 亚洲欧美日韩综合在线尤物| 天天操熟妇| 青娱乐国产精品| 欧美亚洲美少妇一区二区| 欧差乱伦二三| 极品AV网站在线观看| 久久青青草原免费视频| 青青操在线亚洲视频观看欧美在线 | 午夜120视频在线观看| 91网18| 以及麻豆国产入口在线观看免费| 精品无吗久久| 高潮的A片激情扒开一区| 男人的天堂激情| 男人的天堂2018| 亚洲18禁| 一级@啪啪视频| 精品一久久久| 中日高清无码操逼视频| 国产乱子伦久久精品综合一区二区三| 日韩另类色图| 欧美日韩午夜精品一区二区三区 | 日韩内| 99re在线精品78| http://qxhbdz.com| 试看60秒 爽| 欧洲无码一区二区| 欧美一二三级精品在线| 新视频sss国产| 久久免费精品视频免一| 国内一级精品| 国产欧美一区二区| 在线播放一级无码视频| 激情文学亚洲| 亚洲免费精品一区| 欧美网站免费| 我中文字幕6区 | 精品视频日日夜夜| 秋霞网无码| 久草精品视频| 久久午夜伦| 无码精品久久| 欧美亚洲丝袜人妻制服中文99| 91美女丝袜诱惑视频| 日韩成人高清一区二区| 长久操视频| 看日韩美女二区三区免费操逼视频| 中文久久| 欧美 日韩第一性色| 亚洲熟妇图片| 曰韩成人免费视频| 老外又粗又长一晚做五次| 亚洲天天影视色综合| 久久婷婷六月综合| 欧亚成人| 98人妻精品一区二区色欲| 久久人妻无码毛片A片麻豆| 人妻久久久| 国产日逼视频| 国产路线专区| 超碰综合色| 91N欧美| 操操逼操操逼操操逼逼| 欧美真人抽搐一进一出gif| 超碰这里有精品| 中文字幕视频一区视频二区| 国产亚洲精品自在线亚洲情侣| 日韩在线国产字幕| 99在线精品观看视频中文| 99.色网| 极品极品色影院| 综合国产影视三级| 久久久久夜夜夜夜| 日韩精品人妻中文字幕不卡乱码| 欧美激情一区二区| 午夜精品99久久久久传媒| 十八禁成人网站在线观看| 天天澡天天狠天天天做| 精产品久久| 欧美天堂亚洲电影院一区在线播放| 欧美九9 9 9| 嗯嗯啊啊视频一区二区三区| 亚洲美乱| 日本精品一区三区| 婷婷五月天综合网| 欧美一区二区三区日韩| 九九探花视频在线观看| 亚洲欧洲精品视频发布| 操逼www.| 亚洲少妇综合在线播放| 国产亚洲日韩在线三区黑人| 男人的天堂午夜av| 国产精品成人久久一区二区三区| 精品国产乱码久久| 国产免费一区2区3区| 麻豆一区二区三区在线看| 日本中文字幕一区| 果冻传媒一区二区三区| 久久久久久裸体| 欧美天天综合站| 精彩久久中文| 欧美最大综合网| 九九九久千久久激情蜜桃在线看 | 97超碰jingpin| 私色综合网| 久久久久久久极品香蕉视频| 亚洲精品成人激情在线| 国产精品无码久久久久2025| 黄片免费看黄片免费看| 久久久国产三级黄色片| 思思热免费在线视频| 欧美人妻精品一区二区| 秋霞一级视频在线观看免费| 无码9区| 嫩草 人人网精品| 蜜臀无码一区二区| 亚洲欧美日韩不卡人妻| 亚洲AV麻豆Aⅴ无码电影一| AV一区观看| 亚洲 欧美 手机在线观看| 五月丁香啪啪网| 97电影院超碰| 蜜臀av中文字幕| 啊啊啊啊无码| 久久中出在线| 亚洲做性| 久久性生大片免费观看性| 福利操逼| 狠狠干狠狠干| 久草婷婷| 日韩欧美午夜一区二区| 人妻 中文 日韩| 日本中文字幕在线电影| 啊啊啊好湿久久| 四虎在线免费视频| 91美女在线观看| 新久久AV| 啊啊啊 在线观看| 亚洲欧美日韩电影网站一区 | 欧美色图99| 操婢日韩| 超踫中文字幕| 精品久操| 黄片com.| 刺激精品视频| 丰满熟女一区二区三区在线播放| 嫩草影院在线观看精品 | 97久久超碰日韩精品| www熟女乱伦com| 熟女突然公开看18禁影片 | 亚洲另类天堂| 国产精品大香蕉| 国产精品suv一区| 啪啪自拍九九综合| 国产成人bd在线观看| 久久9亚洲| 97久久超碰日韩精品| 高清国产性猛交xxxx乱大交| 99re3这里只有精品| 久久久极品| 精品国产人成在线| 中出789在线视频| 97在线看| 日韩精品资源| 国内亚洲精彩视频在线| 久久AV无码1区2区3区| 五十路三区在线| 国产原创剧情在线丝袜| 天天操福利视频综合网站| 第四色奇米影视777| 国产精品情侣啪啪| 国产传媒av天美传媒在线| 欧美日韩性爱视屏免费看了| 伊人久久亚洲色欲综合网站 | 久久精彩免费视频| 亚洲资源站| 五月天开心网| 999999精品| 色情综合网| 97操B| 色婷婷狠狠| 欧美九九九| 天天日夜夜| 中文久久久| 嗯啊啊啊轻点视频 | 户外裸露刺激视频第一区| 国产女人9999| 国产免费一区在线观看| 久久人妻熟女一区二区| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 中文幕97| 国产日韩精品一区二区三区| 国产日韩精品suv| 大香蕉十区| wwwxxx日本爽| 黑人干亚洲| 爱我干综合| 97视频播放| 清纯唯美第一页| 九九在线视频| 综合影院永久入口国产| 国产乱码精品久久久久久| 亚洲图片婷婷五月天| 中文字幕人乱码中文字的预防方法 | 日韩另类色图| 色欲三区| 18+91网站| 最新加勒比丝袜在线| 久久精品国内Av熟女高清| 黄资源| av片在线观看免费播放| 东京热一区二区中文字幕| 亚洲成人精品久久久| 国产成人亚洲精品无码古代早漏男| 激情四射婷婷六月天| 狠狠干婷婷| 国产精品久久久久久久久久梁医生| 加勒比五月天| 天天操狠狠日夜夜干超碰撸com视频在线观看| 91色拍| 日本中文字幕一区| 中文字幕老熟妇黄色视频| 国产无码高清操逼视频| 東南亚性呦成人伦理资源在线视频| 天美传媒av 在线| 亚洲AV无码AV吞精久久久久| 91伊人| 久久久久久久久久久久九| 一区二区日韩欧美久久| 无码天天操| 久久男人的天堂| 91精品人妻五十路| 美女91在线观看| 中文字幕成人| 亚洲精品官网在线观看| 久久产精品一区二区三区电影| 国产免费一区| 国产精品色哟哟| 六月婷婷综合| 强奸a片网| 黑人白女精品一区| 激情小说日韩无码| 日韩乱伦视频| www.99中文字幕| 精品无码一区二区三区色欲| 欧洲亚洲人妻无码久久三区四区| 香蕉免费一区二区三区不读 | 久久色精品视频在线| 97超碰色中文字幕| 九九国产热| 日本女厕偷拍| 江都AV在线| 久久午夜伦| 韩国一级做A片免费的| 午夜啪啪片| 亚洲āv网址在线观看| 久久一区二区蜜桃| 国产又粗又长又大的视频| 亚洲国产青青| 狠狠躁日日躁夜夜躁A| 97综合国产精品高潮久久| 欧美日韩超碰在线| 九九色色| 亚洲综合春色| 一牛影视久久久一区二区三区| 婷婷五月天丁香| 久久98| 婷色五月| 亚洲色图大香| 亚洲人成色9999精品久久| 在线只有精品| 后X久久| 美女露胸露尿口| 亚洲天堂东京热| 日本天天人人狠狠在线日美女| 日韩欧美视频青青| 超碰亚洲97| 国产精品对白内射| 国内操逼视频二区| 97超碰这里只有精品| 国桃视频产巨乳精品一区二区在线| 国产精品suv一区| 好看的久久不射无码影视影院| 1204金沙人妻懂旧版免费| 97欧美色资源| 久久风骚城市| 999久久久九九九九| 日韩亚洲欧美中文字幕| 日韩激情无码影院| 淫荡少妇免费| www色色com| 91肏屄网| 97超碰中文| 72av视频| 亚洲日韩视频二区| 国产福利影视| 91美女在线精品视频| 少妇天堂网络| 懂色av中文字幕| 亚洲熟女综合一区二区| 一级岛国大片| 丁香五月天激情网站| 男人的天堂2010| 日本啊啊啊啊啊视频| 长久操视频| 天天日天天干少妇日| 国产美女口爆吞精视频| 国内毛片国产专区二| 日韩三级一区 | 欧美色图另类图片| 欧美大香蕉久| 开心五月婷婷激情| 久久久久网站-538在线视频-欧美永久乱码 | 男人天堂新在线| 熟妇xxxxx性春色| 色人久久| 男人 天堂 日 亚洲| 999久久久久久久久| 亚洲巨爆乳一区二区三区四季网| 新婚人妻扶着粗大强行坐下| 欧美成人精品一区二区三区| 亚洲精品97p| WWW啪啪的com| 日本不卡三级网在线播放| 欧美亚洲韩国视频十五区 | 小草av不卡亚洲二区| 男女国产精品| 欧亚免费视频| 一区二区视频你懂的| 色悠久| **一级毛片国产| 9999九九九久久久| 色色色日本| 91亚洲黑人| 人妻夜爽夜夜爽| 日韩欧美aⅴ综合网站发布| 日韩性色b| 亚洲小说视频| 99久久综合网| 5252色欧美在线男人的天堂| 久久久亚洲高清不打码| 国产91精品久久久久久久网曝门| 亚洲熟女av中文字幕| 国产无套粉嫩白浆在| 五月开心久久AV官网| 強姦亂倫a| 97在线精品观看视频| 操久久久久久| 偷拍2020| 99re免费| 亚洲国产欧美中日韩成人综合视频| 美女高潮视频91| 超碰97护士| 红杏大香蕉| 91人妻熟女| 97色色网| 日本不卡一区二区| 天天操女人| 97欧美超碰| 九九热免费国产视频婷婷伊人| 麻豆 美女 丝袜 人妻 中文| 久草五月| 国产精品日日摸夜夜添骚逼| 大稥蕉免费视频这里只有精品| 粉嫩av一区二区三区天美传媒| 亚洲AV成人无码一区二区三区在线观看 | 看一级特黄a大一片| A男人的天堂| 人摸人人操人| 婷婷九月丁香| 激情五月天婷婷| 97免费在线观看| 蜜桃久久久久久久| 国产Av超碰| 久操影视| 狠狠久久亚洲欧美专区| 91丝袜在线观看| 成人日韩中文字幕| 色成人Www精品永久观看| 天天影视网色欲色香| 国产久久久久久久久一区二区| 久久久久久久久久久久97 | 久久AV无码AV| 亚洲色入欧美| 亚洲欧美经典一区二区| 超碰78| AV在线资源| 999岛国大片| 亚洲成a人v欧美综合天堂下载| 老熟女91av| 高清成年美女黄网站免费大全| 欧美小说区视频区| 热天堂一区二区| 26uuu性| 9久久久久久| 久久九九一区二区三区成人| 国产精品自在线发布| 欧美色另类| 亚洲综合图色在线| 激情五月天网| 日韩精品一区二区日韩| 精品人妻一区二区三区视频在线| 欧美九九99久久精品| 国产精品一区二区 尿失禁| 国产97视频| 粉嫩AV输入| 少妇二级| www.国产高潮精品| 国产无码精品成人| 欲色综合| 欧美男人亚洲天堂| WWW4虎| 国产情侣自拍在线播放| 91久久久亚洲| 99热一区二区三区四区| 超碰在线香蕉| 欧洲色色| 国产精品激情久久久久久久| 亚洲情色视频| 天天在线91| 2019天天操天天爽天天拍| 激情四射五月天| 国产宅男宅女在线观看| 日本阿v天堂在线观看| 欧美亚洲色的图| 国产一区麻豆免费观看| 成人婷婷丁香| 91精品丝袜在线观看| 免费的黄片有限公司| 在线欧美亚洲| 亚洲精品乱码久久久久久蜜桃麻豆| 久久久久一本一区二区青青蜜月| 99热最新网址| 亚洲熟女中文字幕在线| 日韩激情啪啪啪| 日韩性爱一级片| 熟女人妻精品一区二区视频| 亚洲九九视频| 久久精品一区二区三区蜜桃臀| 久久精品视频28| 日本九九久久99播| 亚洲精品97在线| 啊啊啊不要好疼视频| 国产精品青草综合久久| 操婷婷逼| 日本欧美国内在线| 中国探花熟女| 久久精品国产免费观看99| 激情网色| 天天看天天在线精品| 亚洲精品白浆高清久久久久久| 中日韩免费看男女操逼大全| 天天综合亚洲综合| 国产内射爽爽大片| 午夜男女爽爽大片免费观看| 国产精品一区二区a| 日韩成人私密一级精品av| 人人操,人人液| 操屄日韩| 91精品女厕偷拍视频| 十八禁av无码免费网站APP| 欧美性爱无码一区二区三区| 性久久| 99久久e免费热视| AV无码久久久精品| 一级免费啪啪片| 99∨VTV| 久操九九九九| 女生自91网站| 亚洲蜜臀视频精品久久| 夜夜高潮夜夜爽国产伦精品| 午夜噜噜噜| 亚洲九九九| 人人做,人人操,人人摸| 色官网色综合| 97人人模人人爽人人| 91国产精品在线看| 操人妻逼91| 老司机午夜精品福利视频一区二区| 懂色影视久久| 国产精品视屏| αⅴ天堂| 激情五月综合网| 麻豆AV96熟妇人妻| 超碰久草| 超碰97护士| 日韩图区 偷拍| www久| 亚州色站 日韩电影| 国模91| 日韩射精| 强奸乱伦大香蕉网| 久久久999日本大片| 国产精品久久久久久久久久久久久久久久久久 | 欧美亚洲丝袜人妻制服99| 人人色人人射人人妻| 天天插天天操天天摸天天射天天看| 日本一二三免费久久| 亚洲AV无码乱码| 日本国产成人亚洲精品无码| 久久久久久大| 欧美97免费| 国产男女边吃边摸视频网站| 噜噜吧,噜噜色,噜噜| 美女91在线观看| 超碰97综合在线| 草草影院日本第一页| 久操大香蕉手机视频在线看 | 狠狠色噜噜狠狠狠狠2018| 国产精品久久伊人| 黄色高清久久无码依人| 中国和日本人色哪个不下载能放| 岛国片在线播放| 欧美夜夜狠| 久久噜噜噜精品国产亚洲综合| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 午夜电影在线观看无码专区| 欧洲免费一区二| 韩日欧亚a级| 欧美精品xxxwww| 天天弄欧美| 久久久久久久唑| 国产欧美一区激情交| 97一区二压| 超碰在线欧美性爱激情| 蜜臀av一区二区三区免费观看| 欧美青青草视频| 在线无码视频| 97久久超碰国产网站| 欧美一级黄色免费专区| 九久久精| 日韩中文字幕国产| hd成人一区二区在线| 免费视频一二三区| 射综合网| 黄色在线网站| 丝袜综合| 成人小说另类在线| 亚洲AV无码天美传媒一区| 在线啊啊啊| 黄网色一区二区三区四区精品| 人妻大相焦在线| 一区二区三区美女超清| 久操九九九九| 亚洲综合电影| 久无码| 亚洲天天综合| 香蕉99秘 精品一区丁香| 综合 亚洲 欧美| 大香樵伊人网| 老熟女网站| 日韩天美| 国产粉嫩蜜臀av一区二区三区 | 超碰97最新人妻| 看大黄色大片原件| 北京美女一区二区| 亚洲中文字幕久久人妻| 东北操逼| 亚洲另类电影| 亚洲综合首页| 国产精品91ai| 盗摄女人妻在线| nuu12国产麻豆精品| 色五月激情综合网| 国内一区二区免费| 午夜性| 国产精品久久久久亚洲av| 欧洲亚洲人人爽爽视频| 色婷婷五月综合激情中文字幕| 日本幼女18+| 殴美,日韩国产伦精品| 日本性爱视频一级| 久久久久斤小| 色丁香五月婷婷| 精品国产一区探花在线观看| 日韩99神马视频片| 91三级理论片播放器| 日天天九九天堂666| 天天摸天天插天天日| 91搞逼视频| 亚洲日韩97| 天天淫人人妻日日色| 亚洲国产精品99久久久| 成人资源中文字幕在线观看| 私色综合网| 性色生活片久久毛片婬片免费放女人一级毛片| 肉丝无码中文高清| 日本高清电影欧美色图| 国产日韩色综合| 人妻熟妇一区二区三区| 亚洲成人一二三区| 国产高清精品福利| 亚洲色图91| x97av| 综合网,亚洲,欧美| 国产 亚洲 丝袜 制服| 91欧美经典| 91路www| 另类小说五月天| 国产女人和拘做爰视频| 人妻少妇精品视频一区二区三区| 久久大线蕉一区| 天天天天干| 色色色欧美| 91丨人妻丨国产丨丝袜| 国产欧洲精品亚洲午夜拍精品| 天天爽爽爽爽| 在线人人人人人人精品超| 亚洲婷婷丁香在线| 久久中文字幕人妻熟av女蜜柚| 91人妻爽爽人人做人人澡| 九九热午夜欧亚国产视频| 亚洲精品色| caoni国产亚洲av| 中文操逼字幕| 国产一区二区在线看| 亚洲国产精品久久久男人的天堂| 日日干夜夜干| 久久久久久AV无码免费网站| 中文字幕高清精品一区| 好爽视频在线观看| 乱色老一区二区三区的观看方式| 日本精品国产视频| 美女刺激久久国产欧美| 亚欧高清在线| 嗯啊抽插大香蕉网页| 久久男人的天堂| 天堂网亚洲区手机版| 久久精品91| 裸体1区| 国产精品午夜成人福利| 久久久久13| 久99热| 久久久久国产一区二| 五月婷网站| 九九精品99| 人妻一区二区三区视频| 亚洲国产美女久久久久| 国内伊人久久久久久网站视频| sewuyueav| 亚洲丨在线| 久久久一二三四区| 亚洲日韩乱码中文无码蜜桃臀网站| 玖玖爱综合| 亚洲综合888| 口爆欧美91| 91色图片| 亚州久久9| 亚州色图欧美| 久9久精品视频| 欧美色日| 亚洲欧美啪啪| 亚洲美腿丝袜香蕉影视欧美成人| 校园春色欧美| 91精品在线播放| 夜夜嗨一区二区三区三州加勒比| 人妻少妇久久中文| 国产精品69久久久久孕妇欧美 | 亚洲风情在线观看| 亚洲毛片久久| 综合久久97| 亚洲欧美一区二区网址| 日韩精品资源专区二区| 影音先锋乱伦资源| 亚洲精美粉嫩嫩泬在线观看| 午夜无码精品免费看性色| 特级丰满少妇一级AAAA爱毛片| 色久桃花影院在线观看| 久草福利在线资源站| 99操逼| 情色AV电影| 亚洲情色一区综合| 青娱乐手机日韩在线视频| 亚洲欧美视| 久久一区二区三区四区五区| 男插女青青影院| 十八岁啪啪视频免费看| 第一高清av中文字幕| 防屏蔽在线视频| 成人无码专区精品视频| 成人精品一区二区三区| 玖玖综合视频| 3PAV乱伦视频| 综合 欧美 亚洲 日本| 97色干| 亚洲熟妇无码一区二区三区| 九九九九97| 色五月AV| 一级黄色性爱A级片| www色色色com| 国产久久久| 国产亚洲精品一区二区三区| 色婷婷激一区二区三区| 曰韩精品九九无码| 丁香婷婷激情五月天无毒不卡 | 女人天堂av在线播放| 久久久亚洲高清不打码| 婷婷六月色| 牛牛久久国产精品视频一二三| yazhououmeizongya| 激情熟女12P| 色婷婷综合网站| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 国产日本熟女顶级一区二区三区视频| 五月天久久婷婷亚洲| 超碰97极品9| 老司机天天操| 女同在线视频一区| 人人妻天天做天天爽| 亚洲自拍偷拍视频在线| 美国一区二区免费视频| 国产精品久久久久绯色| 天天日天天干天天摸天天操| 色欲三区| 欧美超碰9798| 在线天堂资源亚洲| aaaa少妇高潮大片| 97色97好| 人妻夜夜爽天天爽三区麻豆AV网站| 极品尤物女神在线观看| 性一级黄色录像片网站导航| 国产精品美女| 99热国产| 后入式999| 强奸乱伦亚洲第一页| 99自拍B亚洲| 亚州综| 日韩精品一区的| 狠狠躁日日躁夜夜躁A| 日韩激情无码影院| 九九热精品在线| 婷婷午夜清品久久久久久久性色视频观| 国产操逼逼网| 日韩图区| 亚洲字幕一区二区| 69人妻精品丰满熟女区| 欧美激情久操网| 啊啊啊啊嗯嗯嗯用力好爽 | 97超碰人操| 成在线人在线观看视频| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 亚洲第二页| 在线观看精品国产免费| 超碰97久久国| 亚洲 日韩 丝袜 熟女 变态| 欧美少妇第一页| 日韩电影在线观看网址| 亚洲色图超碰在线| 日韩精品 欧美激情| 91麻豆va国产精品| 亚州精品人妻一二三区| 久久久国产亚洲精品系列| 久噜噜| 国产欧美精选自拍一区| 午夜后入| 欧美性巨大╳╳╳╳╳高跟鞋| 加勒比五月天| 欧美一级黄色18片免费看| 天天操天天7| 极品白嫩美女白浆成人福利在线看| 大香蕉日亚洲日本亚大| 日本中文字幕在线视频| 欧美亚洲特P| 欧美综合站| 一中国女人毛片水真多| 一区 欧美 日韩 麻豆| 人人做,人人操,人人摸| 日韩美女,国产传媒,视频一区| 天堂俺去俺来也www久久婷婷| 97超碰在线资源网站| 国语国产操逼伊人AV网| 少妇无码av专区线| 大香蕉92| 亚洲综合激情五月久久| 夜夜嗨视频| 日韩欧美丝袜诱惑| 国产一区二区在线电影| 91美女片在线| 日韩av熟女一区二区三区成人| 国内偷自视频区视频综合| 久操影视| 99色在线| se吧提供91精品国产91久久久久久 | 综合久| 91在线丝袜| 淫淫总合网| av网站在线观看了| 国产精品69久久久久久久| 午夜人妻精品综合在线| 中文字幕日韩专区精品系列 | 在线午夜成人无码视频| 亚洲欧洲第二视频在线观看色图| 999国产精品999| 久久夜夜| 国内成人圈中文字幕无码视频| 欧美综合自拍成人自拍第二十页| 亚洲欧洲自拍图片专区满春格| 少妇人妻激情四射| 日韩精品一二三四| 天天插夜夜操| 女优大全 - 91n| 欧美亚洲厕所精品偷拍91| 99热9| 在线观看成人性爱免费小视频| 美女黄页网站| 91 丝袜在线观看| 97干日韩| 国产又色又爽又舒服的三级视频| 立川理惠被中出无码| 国产中文字幕在线观看| 精品人妻一区二区免费蜜桃| 国产三级电影免费观看| 亚洲欧美色图小说| 国产日本顶级一区二区三区| 日日夜夜国产综合| 日韩一区二区精品视频| 欧美强奸乱| 99视频这有这里有精品| 色臀AV| 久久久91福利姬| 东北女人的毛片| 曰韩欧美国产传媒麻豆第一区| 人妻中文字幕日韩电影| 不卡中文字幕aⅴ在线| 五月天伊人网| 99re在线视频这里只有精品| 91中文精品日韩欧美在线| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 日韩一性一交一A片俄罗斯| 国产 日韩 欧美一区| 天天天干977| 久久青娱乐| 欧美玖玖爱免费玖玖| 亚洲蜜臀懂色| 第二页中文字幕| 青青青国产| 亚洲色图久久成人| 激情婷婷| 欧美色婷婷| 色婷婷久久| 九九RE视频在线精品| 久久久久久AⅤ无码免费肉站| 超碰精品人妻狠狠干| JIZZJIZZ亚洲女人被躁| 色香欲影| www亚洲欧美| 极品色综合| 91熟女网| 天天伊人| 中文字幕乱亚洲美女精品一区| 男人天堂毛片| 97久久超碰亚洲| 亚洲精品黄码久久久久| 性欧美| 好色美女九七第一页| 亚洲激情欧美色图 | 久久精品欧美一区二区三区不卡| 日韩免费簧片| 蜜乳视频网站| 无码精品久久| 91深夜夜| 亚洲AV无码AV吞精久久久久| 2019天天干天天操| 久久久久亚洲Aⅴ无码| av日韩在线观看电影| 亚洲日本韩国在线| 无码99| 日本不卡卡一区| 欧美性暴力猛交XXXX| 亚熟hd视频在线| www.av不卡中文字幕| 97视频一区| 超碰2017|