国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

輕量級(jí)規(guī)則引擎ruflo實(shí)戰(zhàn):從設(shè)計(jì)到集成的完整指南

輕量級(jí)規(guī)則引擎ruflo實(shí)戰(zhàn):從設(shè)計(jì)到集成的完整指南 “ruflo”這個(gè)名字第一次出現(xiàn)在我項(xiàng)目文檔里的時(shí)候其實(shí)挺隨意的。當(dāng)時(shí)我正被一堆復(fù)雜的規(guī)則配置搞得頭疼就想做一個(gè)足夠輕、足夠快、能直接嵌進(jìn)現(xiàn)有業(yè)務(wù)系統(tǒng)里的規(guī)則引擎。折騰了大半年代碼寫了刪刪了寫最后沉淀下來一套自認(rèn)為還算趁手的工具名字就叫 ruflo。這篇文章不聊虛的架構(gòu)也不堆概念就實(shí)打?qū)嵉匕裷uflo從設(shè)計(jì)思路到落地部署的關(guān)鍵細(xì)節(jié)拆開講講包括我踩過的坑和一些你可能也會(huì)遇見的頭疼問題。1. 為什么是ruflo從一個(gè)“被規(guī)則逼瘋”的項(xiàng)目說起1.1 核心需求與定位先說清楚ruflo解決什么問題。在很多后臺(tái)系統(tǒng)里業(yè)務(wù)邏輯并不是鐵板一塊它經(jīng)常變。比如促銷活動(dòng)的滿減規(guī)則、風(fēng)控系統(tǒng)的攔截策略、審批流程的節(jié)點(diǎn)判斷今天還是“滿300減50”明天就可能變成“會(huì)員專享滿200減30再疊加優(yōu)惠券”。如果這些邏輯全都硬編碼在Java或者Go代碼里每次改需求都要走一遍發(fā)布流程光等發(fā)版可能就要半天。ruflo的定位非常明確一個(gè)輕量級(jí)的、可直接嵌入業(yè)務(wù)代碼的規(guī)則流程引擎。它讓你把“可變的那部分決策邏輯”從代碼里抽出來用一套簡(jiǎn)單的描述文件去表達(dá)然后ruflo負(fù)責(zé)解析、加載、執(zhí)行并把結(jié)果返回給你的業(yè)務(wù)系統(tǒng)。本質(zhì)上它干的活就是把“規(guī)則”和“業(yè)務(wù)”解耦。1.2 為什么不用Drools等重型框架很多人一聽到規(guī)則引擎第一反應(yīng)就是Drools。確實(shí)Drools功能非常強(qiáng)大有完整的BRMS生態(tài)有GUI工作臺(tái)有復(fù)雜的推理能力。但用下來你會(huì)發(fā)現(xiàn)在小團(tuán)隊(duì)、輕業(yè)務(wù)的場(chǎng)景里它有些“殺雞用牛刀”。我記得第一次給一個(gè)中等復(fù)雜度的營(yíng)銷系統(tǒng)接Drools的時(shí)候光把規(guī)則包打出來就費(fèi)了半天勁然后又是一堆KIE Base的配置團(tuán)隊(duì)里的新同學(xué)光理解Session和Fact的概念就花了一個(gè)星期。提示Drools適合那種規(guī)則極度復(fù)雜、需要規(guī)則專家參與建模、甚至需要?jiǎng)討B(tài)熱更新規(guī)則的超大型系統(tǒng)。如果你的項(xiàng)目只有十幾條、幾十條規(guī)則團(tuán)隊(duì)也不養(yǎng)專門的規(guī)則工程師那引入它大概率是給自己找麻煩。ruflo的設(shè)計(jì)理念恰恰是反過來的“夠用就好別端著”。它沒有復(fù)雜的推理機(jī)也不需要你理解一堆抽象概念。你只需要知道三個(gè)東西Flow流程、Node節(jié)點(diǎn)、Action動(dòng)作。一個(gè)Flow就是一條或一組規(guī)則的集合Node是流程中的一個(gè)判斷點(diǎn)Action是判斷通過后要執(zhí)行的邏輯。就這么簡(jiǎn)單。1.3 適合誰來用如果你符合下面這些描述ruflo可能會(huì)幫上大忙后端開發(fā)為主不想為了幾條規(guī)則額外部署一個(gè)獨(dú)立的規(guī)則服務(wù)。產(chǎn)品經(jīng)理經(jīng)常改活動(dòng)規(guī)則你想把改規(guī)則的工作“移交”給運(yùn)營(yíng)或產(chǎn)品自己操作前提是你做了簡(jiǎn)單的頁(yè)面或配置文件下發(fā)。系統(tǒng)里有一部分多分支的判斷邏輯用if else寫起來實(shí)在太丑維護(hù)成本高想換成聲明式的配置。你需要一個(gè)輕量級(jí)的框架內(nèi)核支持二次開發(fā)又不是特別依賴社區(qū)生態(tài)。2. ruflo的整體設(shè)計(jì)思路與核心機(jī)制2.1 設(shè)計(jì)的首要原則把“變化”和“穩(wěn)定”分開這是個(gè)老生常談但真正執(zhí)行起來很難的原則。在ruflo里穩(wěn)定的是執(zhí)行引擎也就是加載規(guī)則、遍歷節(jié)點(diǎn)、判斷條件、執(zhí)行動(dòng)作那一套流程變化的是具體的規(guī)則內(nèi)容比如條件參數(shù)、閾值、動(dòng)作類型。這個(gè)劃分直接決定了ruflo的架構(gòu)。它的核心引擎大概分成三個(gè)模塊解析器Parser、調(diào)度器Scheduler、執(zhí)行器Executor。解析器負(fù)責(zé)把規(guī)則描述文件轉(zhuǎn)換成內(nèi)存中的節(jié)點(diǎn)樹數(shù)據(jù)調(diào)度器負(fù)責(zé)決定下一步該走到哪個(gè)節(jié)點(diǎn)執(zhí)行器負(fù)責(zé)真正跑Action邏輯比如調(diào)用一個(gè)HTTP接口、讀寫一次數(shù)據(jù)庫(kù)、或者更新一個(gè)變量值。2.2 規(guī)則描述文件怎么設(shè)計(jì)第一版ruflo我用的是JSON格式來描述規(guī)則。JSON的好處是通用生態(tài)好很多語言都有現(xiàn)成的庫(kù)。但實(shí)際跑了一陣子之后發(fā)現(xiàn)對(duì)于稍微復(fù)雜一點(diǎn)的條件表達(dá)式JSON寫起來非常難受。比如你要表達(dá)一個(gè)“用戶是VIP并且訂單金額大于500或者用戶是體驗(yàn)官”這樣的邏輯用JSON表示會(huì)產(chǎn)生層層嵌套的樹狀結(jié)構(gòu)可讀性很差。后來我改成了一種自創(chuàng)的輕量表達(dá)式語法核心邏輯就是“節(jié)點(diǎn)條件動(dòng)作”三段式。一個(gè)最簡(jiǎn)單的Flow長(zhǎng)這樣flow: id: vip_rule start: check_vip nodes: - id: check_vip type: condition expression: ${user.level VIP order.amount 500} true_next: grant_discount false_next: reject - id: grant_discount type: action action: apply_discount params: rate: 0.8 - id: reject type: action action: reject_order params: reason: not_vip用YAML格式描述靠縮進(jìn)和短橫線來表達(dá)層級(jí)關(guān)系人眼掃一遍就能看懂。更重要的是運(yùn)營(yíng)或者產(chǎn)品同學(xué)稍微培訓(xùn)一下也能照著文檔改規(guī)則而不像JSON樹那樣容易把括號(hào)配錯(cuò)。2.3 核心執(zhí)行機(jī)制節(jié)點(diǎn)驅(qū)動(dòng)ruflo的執(zhí)行機(jī)制是“節(jié)點(diǎn)驅(qū)動(dòng)”而不是“組件驅(qū)動(dòng)”。什么意思傳統(tǒng)的業(yè)務(wù)流程引擎比如Activiti強(qiáng)調(diào)的是流程狀態(tài)流轉(zhuǎn)它得管理流程實(shí)例的當(dāng)前狀態(tài)、歷史記錄、待辦任務(wù)運(yùn)維上面向的是“一條流程的生命周期”。ruflo沒那么重它更看重的是“一條數(shù)據(jù)進(jìn)來經(jīng)過哪些節(jié)點(diǎn)判斷最終得到什么結(jié)果”。所以它的執(zhí)行邏輯非常直接從start節(jié)點(diǎn)進(jìn)入遇到condition節(jié)點(diǎn)就算表達(dá)式根據(jù)true/false找對(duì)應(yīng)的下一跳走到action節(jié)點(diǎn)就干活直到遇到end節(jié)點(diǎn)。用個(gè)不太恰當(dāng)?shù)念惐认衤嬂锏臒嵫鹘顷J關(guān)每個(gè)房間可能是個(gè)岔路口也可能是個(gè)BOSS戰(zhàn)最后到了終點(diǎn)就通關(guān)。這個(gè)設(shè)計(jì)有一個(gè)好處性能可控。因?yàn)椴簧婕傲鞒虒?shí)例的持久化和狀態(tài)恢復(fù)ruflo執(zhí)行一條規(guī)則鏈的時(shí)間主要消耗在表達(dá)式求值上。實(shí)測(cè)下來在純內(nèi)存環(huán)境下單條簡(jiǎn)單規(guī)則鏈的執(zhí)行耗時(shí)在微秒級(jí)就算加上數(shù)據(jù)庫(kù)訪問動(dòng)作也就多幾個(gè)毫秒對(duì)于絕大多數(shù)業(yè)務(wù)場(chǎng)景完全夠用。3. 實(shí)操把ruflo集成到真實(shí)項(xiàng)目的完整步驟3.1 環(huán)境準(zhǔn)備與依賴引入我自己的主力語言是Javaruflo最早的版本也是用Java寫的所以這篇文章以Java生態(tài)為例。不要被嚇到核心思路是一樣的。在pom.xml里引入依賴dependency groupIdcom.ruflo/groupId artifactIdruflo-core/artifactId version1.2.0/version /dependency如果你是Gradle項(xiàng)目對(duì)應(yīng)的寫法是implementation com.ruflo:ruflo-core:1.2.0引入依賴之后用一行代碼就可以初始化引擎RuleEngine engine new RuleEngineBuilder() .withResource(classpath:rules.yml) .build();這里有個(gè)小細(xì)節(jié)必須提醒一下withResource支持 classpath、本地文件系統(tǒng)和遠(yuǎn)程URL三種方式。如果是遠(yuǎn)程URLruflo默認(rèn)會(huì)緩存遠(yuǎn)程配置的hash值定期輪詢變更這樣你改完遠(yuǎn)程配置客戶端最多延遲一個(gè)輪詢周期默認(rèn)60秒自動(dòng)加載新規(guī)則不需要重啟應(yīng)用。這個(gè)特性在后續(xù)“動(dòng)態(tài)更新”環(huán)節(jié)簡(jiǎn)直救命。3.2 定義你的第一條規(guī)則鏈我們用一個(gè)非常貼近實(shí)戰(zhàn)的場(chǎng)景來演示電商訂單的優(yōu)惠計(jì)算。假設(shè)業(yè)務(wù)需求是這樣的用戶等級(jí)是VIP且訂單金額滿500元享受85折優(yōu)惠。用戶等級(jí)是普通會(huì)員但有優(yōu)惠券碼享受95折優(yōu)惠。其他情況不優(yōu)惠但訂單金額超過1000元時(shí)會(huì)送一張平臺(tái)優(yōu)惠券。用ruflo來表達(dá)就是這樣的一個(gè)Flowflow: id: discount_calc start: check_vip nodes: - id: check_vip type: condition expression: ${user.level VIP} true_next: check_amount_vip false_next: check_coupon - id: check_amount_vip type: condition expression: ${order.amount 500} true_next: apply_vip_discount false_next: no_discount - id: check_coupon type: condition expression: ${order.couponCode ! null order.couponCode ! } true_next: apply_coupon_discount false_next: check_big_order - id: apply_vip_discount type: action action: applyDiscount params: rate: 0.85 - id: apply_coupon_discount type: action action: applyDiscount params: rate: 0.95 - id: check_big_order type: condition expression: ${order.amount 1000} true_next: send_gift_coupon false_next: no_discount - id: send_gift_coupon type: action action: sendCoupon params: type: platform_gift - id: no_discount type: action action: noop注意看這里處理了一個(gè)邏輯細(xì)節(jié)VIP用戶如果金額不夠會(huì)直接走到no_discount不會(huì)再判斷是否用優(yōu)惠券。這符合常規(guī)的業(yè)務(wù)理解——優(yōu)惠策略互斥只取最高優(yōu)先級(jí)。如果你的業(yè)務(wù)規(guī)則是“優(yōu)惠可疊加”那這個(gè)流程圖就要調(diào)整把check_coupon放到兩個(gè)分支的后面。這個(gè)經(jīng)驗(yàn)很重要規(guī)則引擎不只是把條件翻譯成機(jī)器語言它也是業(yè)務(wù)語義梳理的過程。3.3 在業(yè)務(wù)代碼里執(zhí)行規(guī)則規(guī)則文件有了引擎也有了最激動(dòng)人心的時(shí)刻來了——在代碼里跑起來。執(zhí)行邏輯很簡(jiǎn)單把上下文對(duì)象傳給引擎引擎返回結(jié)果// 構(gòu)建上下文 MapString, Object context new HashMap(); context.put(user, userInfo); // 用戶信息對(duì)象 context.put(order, orderInfo); // 訂單信息對(duì)象 // 執(zhí)行業(yè)務(wù)規(guī)則 RuleResult result engine.execute(discount_calc, context); // 從結(jié)果中提取修改后的數(shù)據(jù) DiscountInfo discountInfo result.getOutput(applyDiscount, DiscountInfo.class); if (discountInfo ! null discountInfo.isApplied()) { // 更新訂單金額 order.setDiscountedAmount(order.getAmount() * discountInfo.getRate()); } // 如果是大單還有贈(zèng)券 if (result.isNodeExecuted(send_gift_coupon)) { couponService.issueGiftCoupon(userInfo, platform_gift); }這里我特別想分享一下RuleResult的設(shè)計(jì)取舍。execute返回的結(jié)果里既有最終的輸出數(shù)據(jù)也有“哪些節(jié)點(diǎn)被實(shí)際執(zhí)行過”的標(biāo)記。為什么要留這個(gè)標(biāo)記因?yàn)樵趯?shí)際業(yè)務(wù)里你不僅關(guān)心規(guī)則跑完的結(jié)果還經(jīng)常需要知道“這條規(guī)則鏈到底走了哪個(gè)分支”這直接影響后續(xù)的業(yè)務(wù)補(bǔ)償邏輯。比如訂單需要記錄優(yōu)惠原因就需要知道是VIP折扣還是優(yōu)惠券折扣。傳統(tǒng)做法是在Action里回寫一個(gè)標(biāo)志位到contextruflo直接把節(jié)點(diǎn)執(zhí)行記錄暴露成API省去了這個(gè)額外的維護(hù)。3.4 接入動(dòng)態(tài)配置中心這才是ruflo作為“靈活工具”的最閃光之處。我們把規(guī)則文件從jar包內(nèi)移到Nacos或Apollo等配置中心然后通過“加載器”讓規(guī)則內(nèi)容動(dòng)起來。ruflo提供的動(dòng)態(tài)加載邏輯其實(shí)不復(fù)雜核心是三個(gè)元素一個(gè)遠(yuǎn)端存儲(chǔ)保存規(guī)則內(nèi)容。一個(gè)輪詢線程定時(shí)拉取遠(yuǎn)端內(nèi)容和本地內(nèi)存中的版本做對(duì)比。一個(gè)原子替換有新版本時(shí)把運(yùn)行中的節(jié)點(diǎn)樹整體原子替換不影響正在執(zhí)行的請(qǐng)求。我實(shí)現(xiàn)了一個(gè)Nacos加載器代碼結(jié)構(gòu)大概是public class NacosRuleLoader implements RuleLoader { private final ConfigService configService; private final String dataId; private final String group; Override public RuleSource load() { String content configService.getConfig(dataId, group, 5000); return new RuleSource(content, VersionUtil.md5(content)); } Override public boolean watch(RuleEngine engine) { configService.addListener(dataId, group, new Listener() { Override public void receiveConfigInfo(String configInfo) { engine.refreshFlow(RuleSource.from(configInfo)); } }); return true; } }接入動(dòng)態(tài)加載之后每次規(guī)則調(diào)整只需要在配置中心的界面里改一段YAML保存幾十秒內(nèi)所有實(shí)例都會(huì)自己熱更新。我試過在生產(chǎn)環(huán)境跑這種模式一次規(guī)則發(fā)布從“提工單改代碼、測(cè)試、走發(fā)布單”變成“配置中心點(diǎn)一下保存鍵”整個(gè)鏈路從小時(shí)級(jí)縮短到秒級(jí)。這個(gè)體驗(yàn)的提升用的時(shí)候才能真切感受到。4. 常見問題與排查技巧實(shí)錄4.1 變量為空導(dǎo)致的表達(dá)式空指針這是所有用規(guī)則引擎的人遇到的第一個(gè)坎。比如上面的表達(dá)式${user.level VIP}如果上下文里壓根沒傳user對(duì)象或者傳了user對(duì)象但level字段是null表達(dá)式直接拋空指針整個(gè)流程啪一聲掛了接口返回500措手不及。我踩了好幾次坑之后才養(yǎng)成一個(gè)強(qiáng)制習(xí)慣所有規(guī)則里的變量在入口處做一次完整校驗(yàn)。ruflo也提供了一個(gè)便捷解法在表達(dá)式引擎里對(duì)空值做短路處理——取屬性時(shí)如果對(duì)象為null返回null而不拋異常然后null做等值判斷就正常走false分支。這樣至少保證流程不崩。不過還是強(qiáng)烈建議在業(yè)務(wù)層把必填參數(shù)校驗(yàn)做在前面。規(guī)則引擎是業(yè)務(wù)判斷的最后一環(huán)不是數(shù)據(jù)校驗(yàn)的第一道防線。4.2 規(guī)則生效了但結(jié)果和預(yù)期不一致比規(guī)則不生效更讓人崩潰的是規(guī)則看起來生效了但結(jié)果跟預(yù)期不一樣。檢查半天發(fā)現(xiàn)原來是緩存問題多個(gè)Flow之間的ID重復(fù)了后加載的把先加載的覆蓋了。排查這個(gè)問題的步驟如下先看是不是規(guī)則內(nèi)容加載錯(cuò)誤。在配置中心或本地文件里搜FlowId確認(rèn)唯一性。再看是不是網(wǎng)關(guān)或緩存層攔截服務(wù)端返回了舊數(shù)據(jù)。最后看引擎日志里輸出的執(zhí)行軌跡把每個(gè)節(jié)點(diǎn)是否命中、變量快照打出來。ruflo提供了一種Debug模式開啟后會(huì)在日志里打印完整的執(zhí)行追蹤信息engine.setDebugMode(true);輸出長(zhǎng)這樣[ruflo] flowdiscount_calc, nodecheck_vip, expruser.level VIP, resulttrue [ruflo] flowdiscount_calc, nodecheck_amount_vip, exprorder.amount 500, resulttrue [ruflo] flowdiscount_calc, nodeapply_vip_discount, actionapplyDiscount, params{rate0.85}看到這個(gè)執(zhí)行軌跡基本一眼就能定位是條件寫錯(cuò)了還是參數(shù)傳錯(cuò)了。這也是ruflo讓我比較得意的地方不像某些黑盒框架出錯(cuò)之后你完全不知道它內(nèi)部發(fā)生了什么。4.3 性能瓶頸在哪里有朋友問過我ruflo扛得住高并發(fā)嗎我的回答是純執(zhí)行部分完全沒問題瓶頸一般出現(xiàn)在“加載規(guī)則”這一步。如果你的規(guī)則存儲(chǔ)在數(shù)據(jù)庫(kù)或配置中心每次業(yè)務(wù)請(qǐng)求都動(dòng)態(tài)加載規(guī)則再執(zhí)行那不僅性能差還很容易把配置中心拖垮。正確姿勢(shì)是啟動(dòng)或更新時(shí)把規(guī)則內(nèi)容加載到內(nèi)存運(yùn)行時(shí)只做讀操作。ruflo的核心引擎完全基于內(nèi)存數(shù)據(jù)結(jié)構(gòu)執(zhí)行不涉及IO所以它的擴(kuò)展能力真正取決于下游動(dòng)作。比如Action里調(diào)用了一個(gè)很慢的HTTP接口那無論規(guī)則引擎多快都白搭。4.4 一個(gè)容易被忽視的文本編碼坑最后分享一個(gè)非常隱蔽、絕對(duì)值得記下來的小問題。有一段時(shí)間產(chǎn)品的某個(gè)活動(dòng)規(guī)則在YAML文件里用了中文條件值比如“用戶偏好: 國(guó)潮風(fēng)”本地測(cè)試一切正常測(cè)試環(huán)境也正常一到生產(chǎn)環(huán)境就死活匹配不上。排查了一下午最后發(fā)現(xiàn)是生產(chǎn)環(huán)境的服務(wù)器默認(rèn)字符集不是UTF-8Java在讀取外部配置文件時(shí)用了平臺(tái)默認(rèn)編碼導(dǎo)致中文變成了亂碼。這個(gè)問題的解決倒是不復(fù)雜在啟動(dòng)參數(shù)里加上-Dfile.encodingUTF-8或者更保險(xiǎn)的做法在加載規(guī)則文件的時(shí)候顯式指定編碼new InputStreamReader(inputStream, StandardCharsets.UTF_8)5. 從使用ruflo到二次開發(fā)定制一個(gè)自己的集成方案5.1 預(yù)留的擴(kuò)展點(diǎn)設(shè)計(jì)ruflo不是一個(gè)封閉的黑盒它在設(shè)計(jì)之初就預(yù)留了兩個(gè)明確的擴(kuò)展點(diǎn)表達(dá)式函數(shù)和自定義Action。表達(dá)式函數(shù)擴(kuò)展可以讓你在規(guī)則里用自定義的判斷邏輯。比如你可以注冊(cè)一個(gè)函數(shù)isWeekend(date)來判斷日期是否是周末然后在規(guī)則表達(dá)式里直接寫${isWeekend(order.orderDate)}。這比硬寫一串日期計(jì)算邏輯要簡(jiǎn)潔得多。自定義Action更直接你只需要實(shí)現(xiàn)Action接口注冊(cè)到引擎里就能在流程文件中通過action字段引用它。public class RiskCheckAction implements Action { Override public ActionResult execute(ActionContext context) { // 你的風(fēng)控邏輯 return ActionResult.success(risk_pass); } }然后在規(guī)則文件的node里這樣引用- id: risk_check type: action action: riskCheck params: strategy: strict5.2 集成到Spring Boot的兩點(diǎn)心得很多人把規(guī)則引擎集成到Spring Boot項(xiàng)目里時(shí)只想到把引擎初始化成Bean卻忽略了兩件更重要的事情。第一件Action里可能需要調(diào)用Spring托管的Service。所以自定義Action的實(shí)例化不能簡(jiǎn)單地new而是要放到Spring容器里比如用Component注解然后在注冊(cè)到引擎時(shí)從容器里取。這樣Action才能正常用Autowired注入業(yè)務(wù)Service。第二件規(guī)則內(nèi)容最好做成可外部化的配置。不要讓規(guī)則文件跟代碼一起打包在jar里而是放到配置中心或獨(dú)立的配置目錄。這樣每次修改規(guī)則時(shí)不必發(fā)版這個(gè)我在前面3.4小節(jié)已經(jīng)詳細(xì)說過了。兩件事配合起來才真正發(fā)揮出規(guī)則引擎的靈活優(yōu)勢(shì)。5.3 二次開發(fā)的路線參考如果你想把ruflo改造成一個(gè)真正屬于自己團(tuán)隊(duì)的工具我建議按下面幾步來演進(jìn)第一版直接使用ruflo-core提供的API規(guī)則文件用git管理改動(dòng)走merge request。這個(gè)階段適合驗(yàn)證規(guī)則引擎在你團(tuán)隊(duì)的業(yè)務(wù)里是否水土不服。第二版接入配置中心規(guī)則可視化編輯配合一個(gè)簡(jiǎn)單的操作后臺(tái)讓運(yùn)營(yíng)同學(xué)直接提交規(guī)則變更。第三版擴(kuò)展表達(dá)式函數(shù)庫(kù)沉淀團(tuán)隊(duì)內(nèi)部常用的業(yè)務(wù)函數(shù)比如“判斷用戶是否在灰度名單”、“計(jì)算商品運(yùn)費(fèi)模板的最終價(jià)格”。第四版把規(guī)則執(zhí)行日志保存下來做規(guī)則命中的后臺(tái)分析和報(bào)表讓每個(gè)業(yè)務(wù)方直觀看到自己的規(guī)則被觸發(fā)了多少次。我個(gè)人在實(shí)際操作中的體會(huì)是階段之間的間隔不要太短。把第一版跑透確認(rèn)它的確能穩(wěn)定扛住線上流量再談可視化后臺(tái)和報(bào)表步子太大反而容易讓團(tuán)隊(duì)失去信心。6. 聊聊“規(guī)則”與“代碼”的邊界用了這么久規(guī)則引擎我越來越覺得它不只是一個(gè)技術(shù)工具更是一個(gè)團(tuán)隊(duì)協(xié)作的邊界梳理器。凡是經(jīng)常變化、需要業(yè)務(wù)人員參與決策的那部分邏輯比如優(yōu)惠計(jì)算、活動(dòng)配置、風(fēng)控閾值都適合剝離出來交給規(guī)則引擎而最終要保證穩(wěn)固的核心業(yè)務(wù)閉環(huán)比如訂單生成、支付流水還是要用嚴(yán)格的代碼來守護(hù)。這不是說代碼比規(guī)則更高級(jí)而是他們各自擅長(zhǎng)不同。代碼擅長(zhǎng)處理穩(wěn)定的、可測(cè)試的、需要強(qiáng)約束的邏輯規(guī)則擅長(zhǎng)處理靈活的、高頻調(diào)整的、允許一定業(yè)務(wù)試錯(cuò)成本的邏輯。把兩者配好比例系統(tǒng)才能又穩(wěn)又靈活。最后再分享一個(gè)小技巧如果你打算在團(tuán)隊(duì)里把規(guī)則引擎用起來不妨從一個(gè)很小的場(chǎng)景切入比如先試試訂單備注里的自動(dòng)分單邏輯三兩天的功夫就能做出一個(gè)Demo。讓團(tuán)隊(duì)成員親眼看到“改配置不用發(fā)版”的酸爽后推廣起來阻力就小多了。我敢說你只要試一次就會(huì)重新審視項(xiàng)目里那些寫得亂七八糟的if else大雜燴。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久久久久 九九九九九九九| 蜜乳视频网站| 欧美黑人猛交春色影视大全| 国产中文字幕曰本毛片| 成人无码电影在线观看网| 国产精品一区二区后入| 中文字幕乱在线伦视频中文字幕乱码在线| 人人操人人摸人人骑| 麻豆啪啪啪视频| 欧美久久毛片基地| 92一区二区| 久久日本熟妇熟色一区| av操操不卡| 91天天综合日韩欧美| 日韩懂色网| 丁香九月激情啪| 男人天堂2017| 一卡二卡三卡| 亚洲日韩黑丝| 中文字幕78| 91干熟女| 欧美成人一级免费电影| 欧美高清无码免费视频高清版| 极品久久久久久久久久久久久久| 欧色综合| 久久久工口| 国产极品一区二区三区三州| 中文字幕一区电影在线观看| 国产乱子伦久久精品综合一区二区三| www.成人无码| 91欧美情色| 色女免费在线观看视频网址| 久久最新视频免费观看| 国产av白丝| 国产日本久久免费精品| 99久久久久久久久| 日本天天操| 92人人操人人| 国产欧美日韩精品中文| 日逼国产| 亚洲欧美国产其他二区| WWW黄片COM| 五月丁香拍拍激情综合三级| 熟妇高潮一区二| 男人的天堂2010| 立川理惠无码一区二区| 亚码激情| 婷婷五月花| 亚洲女毛多水多21P| 国产无码精品高清| 亚洲AV性爱电影| 2019久久久久久久久福利| 久操免费在线| 综合伊人激情| 97精品熟女少妇一区| 伊人网青青| 尤物av网站免费在线播放| 大奶的诱惑| 久久九色| 青青操轻轻| 国产传媒午夜理伦精品| 99国产精品视频尤物| 欧美黄色大片在线观看| 男女性感激情网站| 色婷婷影视| 成人在线日韩| 内射中出日韩在线观看视频| 福利风月五月天影院| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 91狠狠综| 欧美偷拍区| 久久发布国产伦子伦精品| 亚码激情| 丰满欧美放荡少妇在线| 91综合在线| 天天狠操| 大香蕉久| 国产精品视频| 97精品人妻一二三四| 久久天堂网| 999久久久国产精品| 人妻91少妇| 欧美操人视频| 亚洲综合中文字幕有码| 久热久一区二区三区| 色综合中文字幕不卡| 97视频620| 少妇人妻激情四射| 影音先锋每日最新资源在线观看 | 大香蕉五月天| 精品视频久久区| 97se亚洲| 97资源视频| 国产成人无码久久精品| 偷拍亚洲高清图片| 先锋女优在线观看视频| 精品久久久久av影院| 久久久夜夜嗨免费视频| 青青草色插素人| 色色97爱| 精品网站99999| 欧美精品偷拍| 天天干电影| 中文字幕亚洲永久精品| 久久久久久91香蕉国产| 亚洲 欧美 色图| 在线色导航| 99欧美| 大香蕉宅男伊人| 97欧美资源| 国产精品自拍xxxx| 欧美久久婷婷| 老鸭窝成人免费毛片视频| 五十路六十路七十路熟婆| 九九激情网| 福利风月五月天影院| 久久女人一区二区三区| 亚洲欧美激情小说| 美国日韩黄色片| 青青11操操操操操操操操| 黄色一区三区| 午夜久久无码1000合集| 无码九九九九| .精品人妻一区二区三| 婷婷五月激情综合| 国产后入式在线观看| 久久黄色性爱视频| 大香蕉综合久久| 青青久久艹| 亚洲啪啪性视频| 日本1区2区不卡视频| 国产真实野战在线视频| 欧美亚洲AN| 午夜.DJ高清在线观看免费7| 久久精品老司| 人人操人人搞人人草| 丰满搜索结果 -第18页- 久久高清无码 | 99久久com免费视频′| 日天天九九天堂666| 亚洲精品a人片在线观看视| 婷婷五月天无码| 色哟哟综合| 91美女在线视频| 成人性爱AV在线免费观看| 亚洲综合影视| 婷婷去俺也去六月色| 色爱欲亚洲| 曰韩操B| 97资源制服丝袜| 影音资源男人日韩| 欧美亚洲一级在线观看| 男女激情中文字幕| 国产在线激情视频| 欧美成人国产精品| 色五月婷婷网| 亞洲久久直播| 影音资源男人日韩| 91 刺激在线| 美女啊啊啊啊啊啊| 精品久久視頻在线| 四虎国产精品永久入口| 国产精品不卡一区二区三区| 国产成人精品日本亚洲语言| 欧美se综合| 婷婷国产精品九区| 欧美在线伊人色| 黑人免费福利视频| 色香综合天天影视综合| 亚洲人人操| 亚洲 欧美 日韩 国产一区二区| 91性高| 欧美日韩性爱视屏免费看了| 国产亚洲福利第一页丝袜| a人片中文字幕一区二区| 8050午夜少妇无码| 97这里只有精品| 目产99999久久999| 激情综合网激情五月天| 国产激情av女片自拍| 美欧色综合| 日本欧美色| a在线观看| www.亚洲成人一区| 欧美天天综| 一级久久性爱视频| 大香蕉久| 欧美人与动性人交a| 亚洲高清男人天堂| 9999亚洲电影| 手机av天堂久久久久| 美国精品国产精品| 国产亚洲色婷婷久久99精品91 - 百度| 在线综合 亚洲 欧美中文字幕 | 欧洲一区二区三区免费| 天天干天天拍| 伊人久操| 欧美综合娱乐久久| 久久久久国产精品久久久| 9久精品视频在线观看| 亚洲欧美97√| 国产一区二区在线看| 欧美综合色站| 欧美视频在线第3页| 黄色视频60分钟| 男人的午夜天堂| 91丝袜熟女| 夜夜操91744565| 人人看黄色视频| 超碰偷拍| 五月天黄色av| 三级三级三级日本99| 亚洲天堂7777| 丁香婷婷久久 | 玖玖超碰熟| 九九玖玖精品| 大香蕉天天看妹子| 青青青青草av在线观看| 久久偷拍人| 91亚洲人电影| 大香蕉亚洲中文| 在线看免费无码AV天堂的| 国产操逼逼网| 日本性爱不卡视频| 欧洲熟妇xxXx欧美老妇裸体| 亚洲情色中文字幕一区| 男男H黄动漫啪啪无遮挡网站| 欧美 精品国产制服第一页| 一二区在线观看视频| 97干天天| 怡春苑东京热| 久草成人影片| 亚洲一区二区麻豆影院| 亚洲乱色视频一区、二区在线| 情侣开房子拍 日韩无码 女的很漂亮| 久草久热| 日韩精品99久久久久久中文字幕| 欧美页片| 97久久精品不卡| 国产免费一区| 99国产女人| 亚洲开心网| 国产suv一区二区三区6| 丝袜足交视频| 伊人精品久久网站| 婷婷激情五月| 高凊专区人人操| 日韩AV一区二区三区三州三州| 色女网日韩| 精品无码人妻一区二区免费蜜桃| 亚洲国产福利视频| 日韩97精| 激情小说亚洲色图| 岛国A V在线免费看| 狠狠色狠狠色狠狠五月| 999亚洲国产视频| 欧美成人性爱视频在线播放| 另类TS人妖一区二区三区| 久久手机好看网站| AV乱伦专区| 亚洲国产欧美一区二区潘金莲 | 久久精品超碰| 欧美综合另类| 福利操逼| 性色av婷婷久久一区二区点复制| 亚洲在线网站| 91麻豆天美| 自拍内地三级在线观看| 蜜桃臀av在线观看| 四虎在线免费视频| 少妇久久久久久久| 久操不卡视频| 在线综合 亚洲 欧美中文字幕| 久久、1234| 欧美性色欧美| 亚洲第一精品在线视频 | 日韩一级二级三级免费看完整版国语版| 人人九九精| 亚洲**2021在线观看| www网站黄| 日韩情色AV| 9久久精品| 操婷婷逼| 久久亚洲色图中文字幕| 97欧美综合网| av片在线观看免费播放| 97看操| 一二区在线观看视频| 国产一区自拍欧美日韩| 好湿好紧好爽 视频| 狠狠干2020| 欧美亚洲第一页| 午夜久久一区二区无码中出| 乱人乱色一区二区三区免费 | 综合色图,成人综合网| 免费99精品国产自在在线| 国产精品一二三区18| 91婷婷| 精品无码人妻一区二区免费蜜桃| 伊人网免费视频| 色婷婷基地| 日韩高清一二三| 亚洲欧洲综合成人av一区| 亚洲色天堂日韩中| 婷婷激情四射| 日韩av熟女一区二区三区成人| 久久国产精品一区二区| 99操逼| 久9爱经典视频| 亚洲91在线播放影院| 日韩精品在线观看观看| 欧美综合 站| 欧美一级久久久丰满| 一区二区三区四区五区高清无码永久视频 | 国产蜜臀在线| 欧美日韩成人在线| 久久久久久久久久久久欧美日| 国产精品不卡一区二区三区av| 女人天堂AV五区在线| 美女久久久久久久久久久| 亚洲激情在线| 少妇被c 黄 免费观看| 欧美淫穴| 一区二区乱码福利| 日韩丝袜高跟制服在线观看| 免费A V在线播放| 大香网伊人久久综合| 日韩精品 欧美激情| 天天干,天天日| 欧美性夜| 美欧老女人97| 成人午夜小视频手机在线看| 日韩有码回春沙龙第一页| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚州Av天美传媒| 色婷婷香蕉| 嗯嗯啊啊啊好爽| 中文字幕 国产区| 人人操人人摸超碰| 亚洲丝袜天堂| 亚洲国产麻豆一区二区三区 | 在线无码操| 丝袜视频网国产90| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 免看60秒涩涩视频| 人人澡人人爽人人精品| 天天综合网日韩7799| 久久久久久无码人妻中文字幕| 性色av蜜臀av色欲aV| 91久久久久| 麻豆久久视频在线地址| 欧美一级国产一级| 亚洲国产精品成人久久蜜臀| 欧美美女自慰一区二区三区| 乱欲一区二区| 国产精品爆乳懂色蜜乳| 少妇久久久免费| 久热伊人99re| 午夜视频黄| 女同性恋中文字幕| 97超碰无码网| 欧美最婬乱婬爆婬性视频 | 亚洲男人天堂Av| 99久久精品无码一区二区毛片免费| 亚洲日产专区婷婷| 日韩精彩免费| 国产97色在线| 操逼逼无码| 中文字幕日韩专区精品系列 | 国产黄色视频久久| 亚洲资源站| 人妻人妻天天碰| 亚洲色堂免费视频| 欧美后进式| 国产二区视频在线观看电影| 精品999一区二区| 欧美一区二区三区成人性生活| 91xingse| 色婷婷丁香五月| 人人性爱视频免费| 欧美中出| 十八禁电影伊人网| 色哟哟av网址| 蜜臀亚洲中文| 日韩中文字幕av在线播放| 99热这里只有精| 亚洲国产成人福利在线观看| 91看黄片| 久久久国产护士丝袜美腿一| 人妻激情在线视频| 好爽免费视频,| 欧美日韩亚洲高清不卡一区二区三区| 91狠狠综合久久久久久| 精品色色| 色五月婷婷在线| 亚洲精品人妻吞精av| 少妇xx精品| 成全在线观看免费观看| 国产精品嫩草影院免费| 精品成人亚洲午夜电影| 操逼片国产| 美女视频尤物网在线看| 99在线免费公开视频| www.久久制服糖| 人人妻人人爽 97人人看碰人免费公开视频| 精品国产AV一区天美传媒| 久久精品国产97欧美精品亚洲 | 91久久九九精品国产综合| 百度百度日本操逼| 日韩国产精品人妻无码久久久| 亚洲不卡一| 色五月AV在线| 夜夜爽夜夜操| 亚洲一级黄色毛片| 国产不卡免费在线视频| 日本成人电影资源网| 国产尹人在线视频免费| 亚洲1区| 国产日韩欧美三级片| 亚洲自拍天堂| 激情久久久| 超碰成人最新最好看| 亚洲一区二区精品福利| 婷婷中文字幕| 欧美性爱一区| 日韩BBN| 天美传媒婬乱在| 精品九九| 日本操逼视频导航| 天天日天天爽| 人妻色偷色噜| 亚洲暴力强奸AV| 欧美性爱视频免费一区一A| 亚洲最大成人a毛毛片| 久久精品99| 国产怡红院| 97精品网站| 久一区久久蜜桃| 欧美Aⅴ| 操我无码| 九九热超碰97亚洲最新香蕉| 国产美女91| 欧美精品久久96人妻无码| 亚洲综合另类小说色区亚洲成av人片在www| 少妇xx精品| 九九九九久久久| 亚洲精品不卡一二三区| 放黄片放3级黄片没穿衣服| 一本色道久久天天射天天干| 五月天综合网| 中文一区二区| 夜夜欢天天干| 伊人热综合| 亚洲天堂久久| 九一国产精品| 午夜偷拍久久熟女| 黄色二级片网站| 久久久性少妇| 一区二区影院| 国产AV天美| 丰满人妻一区二区三区免费| 日韩精品黄片免费观看| 麻豆伊人网| 91欧美综合| 色99视频| 天美传媒AV国产在线| 久久久久久久97| 成人日韩3| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 韩国三级色呦呦| 亚洲古典另类欧美在线| 久久天堂婷婷网| 超碰97最新人妻| 蜜臀久久99精品久久久久久成人小说| 青娱乐休闲视频在线观看| 99综合网| 日本幼女18+| 日韩丝袜二区| 岛国不卡超碰护士AV在线播放| 97这里只有精品| 人妻久久久久久| 人妻无码一区二区三区久久99| 极品综合| 亚洲视频小说| 免费的很黄很污的全部视频| 91neishe| 精品国产Av无码久久久伦古装| 丁香啪啪| 人妻丝袜二区| 伊人成人中文字幕久久网| 亚洲欧美一区二区三区一猛片| 国产亚卅97| 啪啪啪精品| 亚洲熟妇熟在线电影视频| 级做a爱无码性色永久免费| 男人天堂.AB| 91精品国产91久久青草| 夜夜高潮夜夜爽高清视频一| 日韩成人私密一级精品av| 999岛国大片| 美女好片色日本| 98色网| 欧美亚洲高清| 精品然女一区二区| 丁香六月东京热| 性色高清..……| 免费看日本操逼视频| 日韩图色| 国产自产91区13区| 国产在线视视频有精品| 欧美熟妇精品黑人巨大91| 欧美在线官网| 秋霞一级A片黄色视频| 91亚洲欧美综合高清在线| 亚洲第一在线视频| 少妇激情一区二区三区视频| 你操综合| 国产女人操逼视频| 国产路线专区| 五月色网| 亚洲人妻中文在线视频| 亚洲AV在线资源| 麻豆国产尤物AV| 精品三级在线专区| 人妻内射一区二区在线视频| www.99视频| 日本高清免费一本视频在线观看| AV久日| 激情五月天视频| 黄片qw| 美女诱惑在线一区| 五月色综合| 国产精品免费1区2区视频| 一级免费精品| 一区 欧美 日韩 麻豆| 先锋影音av先锋一区| 天天综合网亚洲综合网| 国产精品视频电影| 91热爆在线| 欧美天堂日韩三级国产传媒| 91午夜无码| 97超碰超| 一二三卡欧美日韩人妻免费精品| 日韩亚洲美州欧洲综三区一品在线| 变态乱伦伪娘灌肠一区二区| 蜜臀在线网站| 熟女高潮合集-永久久久-成人AV| 男人的天堂2018东京热啪啪啪| 上海一级黄片| 国产精品直播在线观看直播| 蜜汁欧美| 九九九九九九九九九九精品视频| 欧美性爱97超碰| 怡红院一区二区熟女人妻| 久久丁香久草综合网| 神马久久中文字幕| 天天干2区3区| 日韩久久三区| 激情五月天色色网| av天堂5| 大鸡巴久久| 日日干夜夜欢| 男人成人黄色视频在线观看免费下载| 使劲用力艹少妇视频一区二区| 懂色AV一区二区三区| 久久婷婷色| 亚洲女毛多水多21P| 色翁荡息又大又硬又粗又爽| 大香蕉欧美| 久久久精精精| 亚洲淫乱骚妇AV| 一二三啪啪专区| 韩国一区二区精品亚洲| wwwss在线观看| 91精品大奶人妻| 亚洲AV麻豆Aⅴ无码电影一| 久九色| 97天天| 色爱亚洲| 中文字幕丰满子伦无码专区在线视频最新| 94色色电影网| 青操影院| 亚洲资源吧| 怡红院久久老司机| 欧美精品黑人猛交高潮| 五月丁香综合| 在线观看国产黄色| 91日本在线观看| 久久亚洲av成人无码国产| 日日碰狠狠添天天爽超| 精品久久99| 91九色精品熟女内射| 91丨九色丨东北熟女| 激情视频网址| 精品久久在线区一区| 超碰在线人妻不卡| 18禁久极品美女久久哦哟呀!| 91视频综合在线| 欧美97se| 乱伦熟女论坛| 毛片一区二区| 亚洲啪啪视频一区二区| 国产呦精品一区二区三区下载| 成人短视频在线观看| 欧美成人午夜免费福利785| 久久色情| 91红杏| 日韩欧美天天爽爽爽天天爽爽| 超碰综合97在线| 欧美懂色综合网| 岛国在线国产| 2018天天干在线视频| 手机看av网站在线看| 天天综合~91入口| 天天综合,91综合永久| 神马久久久久久久久久久久| 东京热AV男人的天堂| 香蕉视频精品亚洲一区二区三区在线播| 午夜舔阴达高潮视频免费看| 人人插人人摸人人| 69人妻人人揉人人躁人人精品| 久久久久久久久久久999| www.av不卡中文字幕| 懂色aV一区二区天美传媒| 2019久久久久久久久福利| 人妻AV在线| 蜜臀精品1区2区| 加勒比久久av| 成人性爱AV在线免费观看| 色色婷婷五月天| 麻豆精品A片免费观看| 最新制服中文第一页| 日本欧美一区二区三区视频麻豆| 99热在线观看| 区自美91| 日本性爱欧美性爱| 亚洲色诱惑| 欧美激情性久久久久久| 91狠狠色丁香婷婷综合久久精品| 日本亚洲vr欧美不卡高清专区| 9999九九九久久久| 韩国免费播放一级毛片| 色播五月丁香| 男人天堂久久精品不卡| 国产日逼视频| 亚洲操人| 欧美三级偷拍| 久久鲁干| 大香蕉92| 最新的亚洲无吗| 91丝袜激情在线| 无码精品久久久久久亚洲| 婷婷久久久| 天堂精品| 日本亚洲熟女视频| 亚洲五区熟女| 老熟妇91| 五月婷婷六月丁香| 97超碰色情| 免费作爱一级视频| 国产免费一区| 欧美经典一区二区三区| 97jingpin| 午夜寂寞欧美| 亚洲综合另类色图| 欧美激情中文字幕另类小说| 欧美国产操逼| 中文字幕一区二区免费在线| 日韩欧美被操黄免费观看| 亚洲性爱成人| 亚洲一本色码中文字幕| 人妻无一区二区三区| 91久久18禁| 国产成人一级av88| 伊人网在线观看| 亚洲色欲天天天堂色欲网女| 75大香蕉| 综合久久久久久久综合网| 伊人991| 日本国产高清色www视频在线| 亚洲精品一区二区免费在线观看| 淫荡熟女乱伦网| 91热色| 99久久综合| 91欧美亚洲| 日日狠狠久久偷偷色综合免费| 九九九九精| 一区二区久久天天干狠狠| 日韩欧美操逼xxx| 日韩资源网| 狠狠爱AV| 天天草天天干天天日| 国产嫩草精品A88AV| 一区二区三区精品黑丝白丝酒店对鸡 | 麻豆综合一区av| 精品一二三区女同 | 亚洲黄日韩无码专区| 国产探花精品在线| 老熟乱一区二区三区四区| 婷婷五月天影院| 国产久久久久久| 伊人一区二区三区| 亚洲一区二区性爱电影| 天堂资源站| 精品久久一区二区三区四区五区| av三级电影在线播放| 青青青艹在线视频| 大香蕉综合网| 日本色色视频网站| 亚洲人人夜夜澡人人爽| 色哟哟的毛片| 上海一级黄片| 黄色片A级一区二区三区| 91欧美丝袜| 欧美综合97www| 国产女人操逼视频| 激情五月天婷婷| 亚洲成人综合在线| 91国产精品在线看| 五月天精品| 国产精品久久久久久久黄无码| 97亚洲自在精品在线观看| 97久久国产精品女不卡| 亚洲色图 91| 五月天伊人网| 五月天人妻综合| 午夜在线播放| 97精品一区二区视频| 国产一区免费午夜视频| 欧美丝袜制服久久| 色色色色综合网| 成人av免费观看| 人人妻人人操人人乐| 久久超碰免费的| 久久9精品网站| 伊人91| 人人看人人插| 久久久久国产一区二| 久久久九97| 日韩电影天堂视频二区三区| 蜜桃AV天堂| 秋霞免费无码视频日韩A片| 国产自产自拍| 欧美美女自慰一区二区三区| 亚洲国内精品成人不卡| 啊啊啊啊好疼| 黄色av网站在线播放| 日韩中文字幕视频在线观看| 麻豆精品久久久久久久| 日韩欧美水蜜桃人妻| 99热国产精品| 天天干人人看综合| www成人啪啪18秘 免费| 亚洲熟妇丝袜在线观看| 少妇人妻在线| 三级精品三级在线观看| 欧美日韩性爱无码| 红杏大香蕉| 97视频在线免费播放| 美女十八禁| 欧美18 在线观看| 国产不卡免费在线视频| 美女啊啊啊啊啊啊啊| 骚日日av| 欧美国产精品久久九九| 91精品久久久久久77777| 欧美久久九九| 夜夜骑日日| 伊人丁香五月婷婷| 中文字幕老熟妇黄色视频| 色香综合天天影视综合| 国产一级137片内射麻豆| 欧美精品第3页| 亚洲综人| 熟女色综合久久| 99xav| 全国男人天堂网| 国产高清免费不卡av| 日韩欧美女优电影| 婷婷15月天青娱乐| 人妻无一区二区三区| 天天综合日韩网| 久久亚洲日韩熟女精品| 色综合av男人天堂| 日本九九久久99播| 中文字幕免费看| 国产精品原创巨作?v网站| 大稥蕉免费视频这里只有精品| 97ai亚洲| 国产精品久久久三级无码| 亚欧美天堂在线| 日本道不卡| 激情综合网五月婷婷五月天| www.男人天堂| 国产精品美女| 欧美有码激情视频一区二区三区| 校园春色宗合网| 操人人| 91九九九逼| 日本不卡五区| 大鸡巴久久久| 色欧美在线| 免费一级视频特黄色大片| 加勒比综合九九99视频在线播放| 98人妻精品一区二区色欲| 国内精品不卡无毒99999| 狠狠操使劲操| 98一区二区精品| 三级色影综合网| 亚洲中文字幕97久久精品少妇| 无码粉嫩白虎一线天b区| 免费观看啪视频| 青青操少妇| 久久久一区二区三区四区五区| 亚洲人妻中文高清| 国产精品一区二区麻豆| 国产精品无码久久久久2028| 日本黄色天堂| 九九热九九| 日韩一级二级三级在线不卡观看完整| 亚洲激情网一二三四区| 啪啪自拍九九综合| 1024亚洲中文字幕久在线看片你懂的 | 日本最新1区2区3区| 国内毛片国产专区二| 欧美日韩不卡传媒| 亚洲国产精品久久久久久久久久| 欧美性第一页| 日韩pv中文| 强奸乱伦AV一天堂网| 中文字幕女同在线| 国产三级多多影院2022国产AA一级毛片无码 | 极品内射| 秋霞无码av鲁丝片一区| 精品无码一区二区三区| 人妻AV 中文字幕的| 天天激清| 日夜啪电影| 欧美黄色片在线播放| 三级色影综合网| 91精品成人| 国产无码一二三区| 天美传媒精品一区二区| 搞中出视频在线观看| 久久久夜夜嗨免费视频| 亚洲黄色视频在线观看视频| 东京热大香焦| 97视频网站在线观看| 日韩亚洲中文有码视频| 天天干人人乐| 东京热精品97综合网| 婷婷五月天av| 久久久久久一日韩字幕无码| 男人的天堂com| 欧美天堂日韩三级国产传媒| 国产精品久久伊人| 国产高清午夜成人在线观看| 久久久91福利姬| 高清不卡国产| 亚洲一区中文字幕一区| 欧美精品久久久久久久丰满| 禁十八久久| 五月天婷婷小说| 精品偷拍13p欧美dodk视频| 神马久久午夜| 97视频900| 久久久久无码| 婷婷久久网| 岛国黄片网站| 欧美亚洲手机在线| 色综合20p| 亚洲青青青视频在线| 静品嫩模一区二区| 亚洲午夜福利在线影院| 色牛aV| JuliaAnn丝袜熟女系列| 热的中文 热的有码 热的国产| 欧美午夜精品久久久久久超碰| 乱伦AVxx| 午夜120视频在线观看| 最新国产精品| 98超碰欧美| 国产夫妻一区二区| 欧州色图区| 无套内射性感少妇视频| 操操操日本的逼| 操逼免费视频无码国产| 日本操逼aaaaa| 精品一区二区三区丰满熟女-亚洲欧美一区| 97爱啪| 久久久久久久久久精| 91美女丝袜诱惑视频| 激情五月丁香五月| 思思热免费视频观看| 亚洲 自拍偷拍 欧美| AV乱伦专区| 国内毛片欧美香蕉精品| 网站A V在线| 曰韩人妻中文字幕在线| 亚洲综合20p| 酒色综合网| 91情色在线| 丰满少妇一区二区三区免费看| 91蜜桃传媒精品久久久一区二区| 蜜桃视频啊啊啊啊| 97精品97久久| 日日碰视频网| 一区二区不卡免费| 欧美图片校园春色| 天堂亚洲精品| 2017天天插| 偷拍盗拍亚洲色图图片 | 国产成人亚洲精品自产在线 | 男人的天堂2019| 特色a在线上| 97免费在线观看| 97操| 日本精品中文字幕视频| 无码精品久久久天天影视| 人人 操人人 操人人| 岛国大片国产| 国精精品无码一二三区水多多| 综合久久六月久久婷婷| 欧美αv.com| 九九无码视频| 婷婷尹人大香蕉免费| 97人肏| 青青草视频久久久久| 农村妇女精品一区二区| 久久精品一区一起草| 99久在线精品99re8蜜桃| 综合色好色| 豆花视频操逼网址| 九九综合久久中文字幕| 亚洲综合色婷婷| 亚洲 欧美 天天| 女人一区| 精品综合久久久久久97| 农村少妇久久久久久久| 97精品免费视频网站| 欧美乱伦专区| 亚洲1区2区三区高清中文字幕| 色色色色网站| 亚洲青青青视频在线| 色臀aV| 久久久日本电影| av毛片aaaaa免费看| 强奸乱伦大香蕉| 超碰99在线观看| 7月婷婷综合| 亚洲999综合| 台湾佬大香蕉| 性暴力欧美猛交在线直播| 亚洲蜜桃V妇女| 国产亚洲国产超碰| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 欧美精品自慰系列寂寞少妇| 后入内射蜜桃臀| 俞拍自拍| 97日韩| 夜夜影视四色| 免費黃色視頻觀看一| 久久亚洲人妻| 熟妇色99| 久操网线| 九九热男人天堂| 亚洲日本天堂| 亚洲av成人精品一区| 秋霞免费AV| 亚洲免费精品一区| 97中文字幕一区| 思思久热在线精品66| 欧亚在线视频| 超碰精品| 青青青青操国内视频在线| 性爱免费视频成人| 精品国产一区二区三区久久久蜜臀 | 99久国产精品午夜性色福利| 国产成人+综合亚洲+天堂| 精品然女一区二区| 99re视频这里只有精品| 亚洲国产一区二区三区四区国产| 午夜成人福利影视| 猛猛干| 久久AV无码网址| 欧美日韩国产传媒在线精品| 高精欧美色| 强奸乱伦大香蕉网| 男人的天堂欧美| 国产一国产一级毛片古装| 欧美亚洲日本视频久久久| 中文字幕加勒比海高清无码免费视频 | 国产福利在线视频网站| 超碰亚洲欧美日韩无| 亚洲丝袜二区在线| 精品人妻美妇91job| 综合91网| 日韩性爱免费观看视频| 久久婷婷色综合一区二区三区| 97chaopengongkai| 日韩婷婷| 97在线视频观看免费| 日韩丝袜二区| 97资源站久久| 女人喷水视频在线观看| 亚洲男人的天堂在线看| 国产91av在线播放| 有码免费观看| 久久久久久亚洲Av无码精| 97色插| 2024黄色视频| 91大神电影天堂| 18禁无码永久免费无限制| 大香蕉综合| 秋霞怕怕片| 成人精品电影| 97久久网| 天天看天天综合成人网| 97啪啪| 大香蕉伊人亚洲| 91精品久久久久| 97人肏| 91AV入口| 10000部十八禁看电影| 日韩欧美亚洲自拍偷拍| 91色黑人少妇| 免费的黄片有限公司| 高潮综合网| 欧美成人AⅤ大片在线观看| 九九久精品| 免費黃色視頻觀看一| 一区二区视频在看| 91精品电影18| 婷婷伊人五月| 亚洲少妇在线影音| 萌白酱自拍视频| 色婷婷一区二区三区久久午夜成人不| 日韩欧美大力操| 久9久9久9久9久9久9| 五月天婷婷色色| 97欧美综合| 青青青青草av在线观看| 国产乱人伦AVA麻豆软件.| 久久有码视频| 在线观看十八禁| 成人性爱AV在线免费观看| 亚洲AV不卡在线观看| 日韩成人精品中文字幕| 欧美超碰97| 熟妇人妻一区二区三在线| 亚洲天堂中文字| 东京热伊久| 高清不卡国产| 精品人妻av在线播放| 国产精品成人午夜福利| 天天综合网久久ww| 久久久国产亚洲精品系列| 九九九九九九九九九国产精品| 综合激情97| 国产福利影视| 夜夜嗨视频| 97超碰这里只有精品| 人妻久热在线| 日日操丁香五月天| 美女91在线| 青青青艹在线视频| 人妻天天夜夜爽一区二区| 国产精品干干干| 夜夜欢天天干| 青操影院| 麻豆AV一区二区| 日韩少妇一区二区三区| 大JI巴好深好爽又大又粗视频| 91在线/欧洲| 婷婷月色| 美女写真| 韩美日操逼| 日韩欧美女求操每天更新| 又摸又舔在线观看网站| 九九色综合| 郑州宾馆老熟女露脸啪啪| 亚洲超碰97| 狠狠干2020| 91色五月俺来也| 九九九九久久久| 无码WWW免费视频网站| 屁股久久久久久| 日本一片一区| 久久国产99精品72福利| 日韩不卡毛片Av免费高清| 日本精品一级二级三级| 亚洲drav色图| 亚州色图欧美| 91亚州日韩高清| 午夜福利免费精品视频| 大香蕉黄色一级片免费看| 国产精品诱惑| 九九五月天| 精国久久一区二区三区98| www.色五月| 精品久久人妻成人网| 97精品熟女少妇一区 | 91美女视频电影| 情色五月天久久久| 91国产精品熟女| 亚洲Av无码成人精品国产| 无码在线亚洲| 日韩操逼HD| 黄色免费一级在线毛片| 网站A V在线| 97综合国产| 国产一区在线看| 综合色一区三区二区| 东京热91| 久久熟女精品不卡一区| 亚洲在高跟鞋自慰久久在色线| 无码欧美有限公司| 水澄无码AV| 农村妇女一级二级三级视频| 色五月婷婷五月天| 97超碰超| 中国女人内射6XXXXX| 7777奇米影视久久| 波多野结衣一级视频| 人妻性爱一区二区| 亚洲美女av无码| 91色图| 91色人妻| 欧美精品23| 综合国产影视三级| 国产精品999zyz| 亚洲人妻中文高清| 黄片直播三级黄片两女一男| 亚洲强奸乱伦影视网| 久久久久久久国产视频| 一类av片在线看| 少妇3P性爱自拍| 欧美强奸乱| 超碰在线观看av不卡| 亚洲性爱电影| se吧提供国产乱老熟视频胖女人| 美女熟妇色| 在线a v| 欧美在线观看综合国产| 超碰成人免费| 国产av尤物| 久草视频制服诱惑| av麻豆啪啪| 亚洲天天精品| 中文字幕色AV| 超碰97国产欧美| 日本操逼视频免费| 欧美一级久久久丰满| 国产强奸超碰AV| 丁香五月影院| www.99热| 亚州操操穴网| 久久香蕉超碰97国产精品 | 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 熟妇女伦乱视频视频| 9久久精品|