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

敖丙帶你了解電商流程引擎

商務(wù)辦公
在電商里面處理復(fù)雜的業(yè)務(wù)邏輯場(chǎng)景很多,我們還是以創(chuàng)建商品為列子。很多人可能會(huì)問(wèn)創(chuàng)建商品很復(fù)雜嗎?我們接著往下看就知道了。

[[396759]]

本文轉(zhuǎn)載自微信公眾號(hào)「三太子敖丙」,作者三太子敖丙。轉(zhuǎn)載本文請(qǐng)聯(lián)系三太子敖丙公眾號(hào)。

正文

在電商里面處理復(fù)雜的業(yè)務(wù)邏輯場(chǎng)景很多,我們還是以創(chuàng)建商品為列子。很多人可能會(huì)問(wèn)創(chuàng)建商品很復(fù)雜嗎?我們接著往下看就知道了。

創(chuàng)建商品流程:

  • 參數(shù)必填性校驗(yàn)
  • 參數(shù)數(shù)據(jù)轉(zhuǎn)換
  • 商品基礎(chǔ)信息校驗(yàn)
  • 商品與商家之間的校驗(yàn)
  • 類(lèi)目信息校驗(yàn)
  • 商品交易信息校驗(yàn)(這個(gè)看公司業(yè)務(wù)決定)
  • SKU相關(guān)信息校驗(yàn)
  • 商品是否需要有特定標(biāo)簽校驗(yàn)(看公司業(yè)務(wù)決定)
  • 商品類(lèi)型校驗(yàn)(普通,卡片,視頻.......)
  • 商品風(fēng)控校驗(yàn)
  • 保存商品信息
  • 保存SKU信息
  • 保存商品詳情信息
  • 重量模版
  • 運(yùn)費(fèi)
  • 配送區(qū)域
  • 。。。。。。。

大家現(xiàn)在看看覺(jué)得創(chuàng)建一個(gè)上還簡(jiǎn)單嗎?這里商品類(lèi)型里面還涉及到各個(gè)業(yè)務(wù)場(chǎng)景校驗(yàn),我們就先不談了。針對(duì)這樣的情況我們應(yīng)該怎么去寫(xiě)這個(gè)代碼呢?我翻看了一下以前大學(xué)寫(xiě)的一些代碼整體的代碼格式大概也就是這個(gè)樣子

這么寫(xiě)其實(shí)也沒(méi)有什么問(wèn)題,功能也能實(shí)現(xiàn)。但是這么寫(xiě)其實(shí)有很多弊端的:

  • 代碼可讀性不高
  • 代碼擴(kuò)展性不高
  • 耦合性太強(qiáng),有些東西不好公用
  • (重點(diǎn))整體創(chuàng)建執(zhí)行流程時(shí)間太長(zhǎng),串行調(diào)用下游服務(wù)

看到這樣代碼我們首先都是吐槽一頓,然后還是老老實(shí)實(shí)是去改。有動(dòng)手能力強(qiáng)的同學(xué)可能會(huì)想著去優(yōu)化一下。再看看這個(gè)流程,其實(shí)在創(chuàng)建商品的時(shí)候我們很多校驗(yàn)和保存數(shù)據(jù)是m沒(méi)有依賴(lài)且互不影響的,我們完全可以去并行執(zhí)行。

節(jié)省創(chuàng)建商品的流程時(shí)間,提高用戶(hù)體驗(yàn)。(PS:就好比兩條高速一條堵車(chē),一條暢通無(wú)阻,選哪條?)所以針對(duì)這么并行問(wèn)題我還是給大家畫(huà)了一個(gè)流程圖:

通過(guò)這圖我們看到創(chuàng)建一個(gè)商品流程,我們調(diào)用的下游服務(wù)可能是有十幾二十個(gè)或者更多,假設(shè)我們一次RPC調(diào)用的平均返回時(shí)間是50毫秒,串行執(zhí)行時(shí)間可能就到1-2秒了,那么我們并行執(zhí)行話也就200到300毫秒了。

所以本著這種思想可能有人會(huì)問(wèn),為什么我不能異步,不能用消息?創(chuàng)建商品假設(shè)用異步消息的話,如果消費(fèi)失敗那用戶(hù)創(chuàng)建的商品成功保存其他信息失敗了,那對(duì)用戶(hù)來(lái)說(shuō)不是更加體驗(yàn)不好了?

說(shuō)了這么多我們開(kāi)始擼代碼了

先創(chuàng)建一個(gè)Context 上下文,作為我們的調(diào)用下游服務(wù)的返回結(jié)果

圖片

第二步創(chuàng)建我們的流程節(jié)點(diǎn),這相當(dāng)于就是保存我們整個(gè)流程中需要執(zhí)行下游服務(wù)的節(jié)點(diǎn),以Map作為保存數(shù)據(jù),NodeConf 節(jié)點(diǎn)設(shè)置參數(shù),自定義請(qǐng)求服務(wù)超時(shí)時(shí)間(因?yàn)椴⑿形覀兪怯玫木€程池或者通過(guò)get設(shè)置時(shí)間get返回值結(jié)果)

第三步引擎類(lèi),這個(gè)也是我們的核心類(lèi)。通過(guò)我們添加的node節(jié)點(diǎn)判斷我們哪些流程是需要串行的那些是需要并行的,通過(guò)線程池創(chuàng)建線程放入Feature中,來(lái)達(dá)到同步執(zhí)行的效果。

在使用線程池的時(shí)候我們需要考慮不要設(shè)置的參數(shù)過(guò)大,開(kāi)啟另外的線程也是會(huì)占用機(jī)器內(nèi)脆的,一個(gè)線程按1兆來(lái)算,你開(kāi)啟幾百上千個(gè),也會(huì)占用很大的一部分內(nèi)存。盡可能的去采用池化思想,這里就按大家實(shí)際場(chǎng)景去做測(cè)試。

第四步執(zhí)行Call方法,也就是執(zhí)行我們的node節(jié)點(diǎn)。

第5步創(chuàng)建節(jié)點(diǎn)接口,這里我們要定義一個(gè)ResultKey,這個(gè)Key也就是跟我流程中的這個(gè)節(jié)點(diǎn)所綁定,在獲取數(shù)據(jù)的時(shí)候也就是通過(guò)者key來(lái)標(biāo)識(shí)

第6步因?yàn)槲覀冊(cè)诠?jié)點(diǎn)里面存的Class類(lèi),所以我們得通過(guò)實(shí)現(xiàn)ApplicationContextAware類(lèi)來(lái)獲取Spring容器中的bean實(shí)例

第7步那就是來(lái)創(chuàng)建兩個(gè)測(cè)試node節(jié)點(diǎn)

最后當(dāng)然就是我們的測(cè)試結(jié)果啦,這里我們創(chuàng)建兩個(gè)節(jié)點(diǎn)NodeOne 和NodeTwo 作為模擬真實(shí)業(yè)務(wù)場(chǎng)景的節(jié)點(diǎn),通過(guò)一個(gè)后面的three作為一個(gè)group 需要并行執(zhí)行的節(jié)點(diǎn)。

看完代碼最后再給大家來(lái)一個(gè)總體的流程圖吧

看完是不是覺(jué)得感覺(jué)自己頓悟,以后再面對(duì)復(fù)雜流程的業(yè)務(wù)也就OK拿下了。

思考

其實(shí)這里還有很多優(yōu)化點(diǎn),每個(gè)人遇到復(fù)雜的場(chǎng)景可能也不一樣,只能說(shuō)給大家提供一個(gè)思想吧,針對(duì)不同的場(chǎng)景大家再去做改造吧!!!

給大家做一個(gè)擴(kuò)展:

細(xì)心的同學(xué)可能會(huì)發(fā)現(xiàn)這都是強(qiáng)依賴(lài)性,能不能有弱依賴(lài)在里面呢?

答案:當(dāng)然可以有弱依賴(lài)了,在 FlowNode.NodeConf中我們既然可以設(shè)置超時(shí)時(shí)間 我們也可以在添加一個(gè)參數(shù)來(lái)確定是都是弱依賴(lài)。在我們的future.get獲取結(jié)果的時(shí)候當(dāng)出現(xiàn)異??梢詂atch住,強(qiáng)依賴(lài)則終止流程返回錯(cuò)誤信息,否則記錄錯(cuò)誤日志,流程continue

我們流程保存現(xiàn)在是用的靜態(tài)代碼塊,可不可以換其他的方式保存節(jié)點(diǎn)呢?

答案:這個(gè)當(dāng)然也可以,我們保存在數(shù)據(jù)庫(kù),ACM,Apollo等等都是可以的。這個(gè)取決于你們自己的業(yè)務(wù)和成本問(wèn)題。因?yàn)榱鞒涛覀円话闶遣粫?huì)經(jīng)常換的,所以我還是建議代碼寫(xiě)死就好了

采用線程池去調(diào)用下游服務(wù),會(huì)不會(huì)造成服務(wù)鏈路追蹤失敗呢?

答案:這個(gè)不能說(shuō)絕對(duì),但是如果是保存在ThreadLocal中那肯定是會(huì)失效的,ThreadLocal中的KEY也就跟當(dāng)前線程的ID有關(guān),都開(kāi)啟新的線程了,那肯定也就是丟失了

如果采用了ThreadLocal 在節(jié)點(diǎn)中是不是就失效了?

答案:第三點(diǎn)已經(jīng)給出答案了

總結(jié)

今天的復(fù)雜業(yè)務(wù)邏輯的流程引擎也就完結(jié)了,在我每次看到新的技術(shù)以及知識(shí)點(diǎn)的時(shí)候我都有一種開(kāi)悟的感覺(jué),引用 鄧寧-克魯格的心理效應(yīng)來(lái)說(shuō),在我們的這個(gè)年紀(jì)其實(shí)就是開(kāi)悟之坡。后

面我會(huì)接著再為大家怒肝設(shè)計(jì)模式,完了也就會(huì)再跟大家聊聊重構(gòu)。其實(shí)也就是用我們的設(shè)計(jì)模式來(lái)優(yōu)化我們的代碼。

 

責(zé)任編輯:武曉燕 來(lái)源: 三太子敖丙
相關(guān)推薦

2021-04-20 08:53:51

工廠模式電商公司設(shè)計(jì)模式

2020-11-10 09:04:07

設(shè)計(jì)接口架構(gòu)

2020-08-14 09:04:34

分布式事務(wù)

2020-11-16 09:45:23

SQL

2021-04-13 08:54:28

dubbo線程池事故排查

2021-11-02 08:54:35

Linux CPULinux 系統(tǒng)

2021-07-04 22:27:42

存儲(chǔ)BookKeeper系統(tǒng)

2020-11-06 16:50:43

工具GitLab CICD

2019-09-27 09:40:06

ElvishShellLinux

2010-07-05 16:20:32

NetBEUI協(xié)議

2022-09-26 11:30:40

MQTT協(xié)議客戶(hù)端協(xié)議

2021-05-31 14:22:56

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

2021-12-10 10:29:07

在線客服系統(tǒng)

2010-09-02 16:59:35

資源預(yù)留協(xié)議

2019-11-05 10:18:04

RPM包RPMLinux

2020-12-31 12:16:49

SAP云計(jì)算SAP產(chǎn)品

2021-02-03 16:22:43

新基建SAP

2019-03-26 10:50:22

Python面向?qū)ο?/a>編程語(yǔ)言

2019-04-24 15:20:44

Shell腳本編程Linux

2021-05-20 06:57:16

RabbitMQ開(kāi)源消息
點(diǎn)贊
收藏

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

国产伦精品一区二区三区视频网站| 国产成人av影视| 日本精品一区二区在线观看| 夜夜嗨一区二区| 一区二区成人av| 久久久精品高清| а√在线中文在线新版| 国产人成亚洲第一网站在线播放 | 精品亚洲免费视频| 欧美精品成人91久久久久久久| 精品久久久久久中文字幕人妻最新| 日本免费在线一区| 黑人巨大精品欧美一区二区免费| 天天综合狠狠精品| 无码国产精品高潮久久99| 九色综合国产一区二区三区| 91大神福利视频在线| 国产精品视频一区二区三 | 在线电影中文日韩| 在线观看亚洲免费视频| 日韩免费在线电影| 一本到一区二区三区| 97干在线视频| www在线免费观看视频| 国产亚洲污的网站| 久久精品综合一区| 亚洲黄色在线播放| 国内精品久久久久影院薰衣草 | 中文在线观看av| 亚洲激情自拍| 欧美国产日韩一区二区三区| 乱老熟女一区二区三区| 九热爱视频精品视频| 精品国产自在久精品国产| 亚洲一区在线不卡| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲大片精品永久免费| 日本道在线视频| 天天在线视频色| 中文字幕乱码亚洲精品一区| 欧美日韩在线观看一区| 色视频在线看| 91香蕉视频污| 欧美日韩在线高清| 国内av一区二区三区| 久久青草国产手机看片福利盒子| 狠狠色伊人亚洲综合网站色| 开心激情综合网| 成人做爰69片免费看网站| 5566中文字幕一区二区| 国产视频在线观看免费| 国产一区不卡视频| 91香蕉视频在线下载| jlzzjlzzjlzz亚洲人| 精品一区中文字幕| 亚洲综合国产精品| 亚洲黄色一级大片| aaa欧美色吧激情视频| 久久精品成人一区二区三区蜜臀 | 国产精品传媒在线观看| 视频一区免费在线观看| 国产成人综合一区二区三区| 国产无遮挡又黄又爽又色视频| 首页亚洲欧美制服丝腿| 国产精品免费观看在线| 一级日韩一级欧美| 国产精品一区二区无线| 不卡一区二区三区视频| 欧美一区二区在线观看视频| 93久久精品日日躁夜夜躁欧美| 久久精品国产第一区二区三区最新章节 | 久久久久99| 日韩av片电影专区| 亚洲一卡二卡在线| 国产精品一区二区你懂的| 超碰97人人在线| 亚洲欧美日韩精品永久在线| 99精品视频中文字幕| 欧洲亚洲一区二区| 午夜在线小视频| 夜夜精品浪潮av一区二区三区| 每日在线观看av| 少妇一区视频| 欧美一区2区视频在线观看| xxxxwww一片| 一区二区美女| 久久久国产精品x99av| 久久这里只有精品免费| 亚洲综合精品四区| 国产在线不卡精品| 午夜视频免费在线| 中文字幕中文字幕中文字幕亚洲无线 | 欧美大喷水吹潮合集在线观看| 亚洲丝袜啪啪| 久久精品这里热有精品| 91香蕉在线视频| 久久se精品一区二区| 国产精品一国产精品最新章节| 久久精品a一级国产免视看成人| 国产精品人妖ts系列视频| 毛片在线视频观看| 性欧美freehd18| 国产午夜久久av| 免费看精品久久片| 114国产精品久久免费观看| 少妇av在线播放| 国产精品久久久久7777按摩| 福利视频一二区| 欧美日韩视频免费看| 国产视频自拍一区| 日本一区网站| 国产一区私人高清影院| 玉米视频成人免费看| 91精品国产乱码久久蜜臀| 国产午夜在线一区二区三区| 精品大片一区二区| 欧美激情18p| 特级西西444www高清大视频| 精品欧美在线观看| 久久影院午夜论| 日本美女爱爱视频| 成人午夜亚洲| 亚洲欧美综合图区| 日本亚洲色大成网站www久久| 在线观看亚洲精品福利片| 中文字幕欧美区| 一区二区三区高清国产| 国产亚洲精品熟女国产成人| 狠久久av成人天堂| 亚洲free性xxxx护士白浆| 好男人免费精品视频| 亚洲综合一二区| 亚洲五月激情网| 日韩中文欧美| 国产精品国产福利国产秒拍| 天堂av一区二区三区| 亚洲制服丝袜av| 免费看三级黄色片| 91av精品| 亚洲最大福利网| 国产调教视频在线观看| 欧美老女人在线| 九九热久久免费视频| 日韩电影一二三区| 日韩av电影免费观看| 欧美特大特白屁股xxxx| 精品亚洲永久免费精品| 丰满少妇乱子伦精品看片| www.日韩av| 18禁免费无码无遮挡不卡网站| 久久国产精品免费精品3p| 性欧美在线看片a免费观看| 国精品人妻无码一区二区三区喝尿| 亚洲黄一区二区三区| 性生交大片免费看l| 欧美色图麻豆| 国产综合av一区二区三区| 草草视频在线| 日韩精品在线免费观看视频| 亚洲GV成人无码久久精品| 久久蜜桃av一区二区天堂| 成人一区二区三| 久久一区二区中文字幕| 91精品视频在线免费观看| 国产原创精品视频| 精品国产乱码久久| 久久青青草视频| 国产女主播视频一区二区| 九九热精品在线播放| 婷婷综合网站| 高清视频在线观看一区| 国产精品一二三产区| 亚洲视频日韩精品| 97人妻精品一区二区三区软件| 亚洲理论在线观看| 波多野结衣一二三区| 视频在线在亚洲| 天天想你在线观看完整版电影免费| 6080亚洲理论片在线观看| 91地址最新发布| 欧洲不卡av| 精品电影一区二区三区| 中文字幕视频网| 综合久久综合久久| 性欧美成人播放77777| 老司机免费视频一区二区三区| 日韩中文在线字幕| 亚洲国产国产| 91在线观看免费高清| 国产调教在线| 久久精品这里热有精品| 天堂av网在线| 欧美一区二区三区在线视频| 国产精品乱子伦| 亚洲色图制服丝袜| 四虎影成人精品a片| 国产福利一区二区三区视频| 男女曰b免费视频| 国产精品hd| 亚洲一区二区在线看| 韩国女主播一区二区三区| 国产精品亚洲综合天堂夜夜| heyzo高清在线| 日韩有码视频在线| 日本韩国一区| 欧美va天堂va视频va在线| 中文字幕永久在线视频| 精品欧美国产一区二区三区| 国产精品 欧美激情| 国产人久久人人人人爽| 精品中文字幕在线播放| 国产成人在线免费| 亚洲欧美日韩三级| 视频在线观看91| 福利视频一区二区三区四区| 婷婷综合社区| 亚洲欧洲日夜超级视频| 在线日韩网站| 精品亚洲欧美日韩| 哺乳一区二区三区中文视频| 91精品视频在线看| 日韩一级视频| 国产男女猛烈无遮挡91| 少妇一区视频| 欧美诱惑福利视频| 国产传媒在线| 97视频色精品| sm久久捆绑调教精品一区| 欧美成人午夜影院| 操你啦视频在线| xvideos亚洲| 国产二区在线播放| 国产一区二区三区视频| 青梅竹马是消防员在线| 日韩成人网免费视频| 日本韩国免费观看| 精品久久久久久久久久久久包黑料| 国产熟女一区二区丰满| 91精品国产福利| 精品人妻一区二区三区三区四区| 8v天堂国产在线一区二区| 一本色道久久综合精品婷婷| 欧美少妇xxx| 在线观看免费中文字幕| 欧美日韩五月天| 91黄色在线视频| 欧美高清www午色夜在线视频| 一级黄色a毛片| 欧美电影在线免费观看| 国产免费叼嘿网站免费| 日韩一区二区影院| 丰满人妻一区二区三区免费| 精品国产网站在线观看| 日本高清视频免费观看| 日韩精品免费综合视频在线播放| 视频在线不卡| 国产午夜精品全部视频播放| 啊v视频在线| 日韩在线精品视频| 国产欧美黑人| 欧美大片免费观看| 色吧亚洲日本| 国产成人在线一区二区| 视频欧美精品| 亚洲伊人一本大道中文字幕| 一区二区三区视频播放| 国产精品一区二区三区四区五区| 亚洲成aⅴ人片久久青草影院| 日本高清久久一区二区三区| 午夜精品毛片| 国产精品第157页| 午夜在线精品| 狠狠干狠狠操视频| 粉嫩av一区二区三区粉嫩| 精品中文字幕在线播放| 国产精品污污网站在线观看| 国产美女久久久久久| 亚洲国产欧美一区二区三区丁香婷 | 中文在线а√在线8| 国产精品美女免费视频| 日韩在线成人| 久久伊人资源站| 国产精品7m凸凹视频分类| 人人妻人人做人人爽| 日韩成人免费电影| 性生交大片免费看l| 国产亚洲va综合人人澡精品| 免费看一级大片| 激情黄产视频在线免费观看| 亚洲国内精品在线| 成人动漫在线播放| 久久久久久久爱| 国产成人精品一区二区三区视频| 91久久久久久久| 尤物tv在线精品| 小泽玛利亚av在线| 日韩高清不卡一区二区| 女女调教被c哭捆绑喷水百合| 国产调教视频一区| 精品在线视频免费| 欧美日韩在线播放三区| 三级在线观看网站| www国产亚洲精品久久网站| 日本不良网站在线观看| 亚洲在线www| 欧美一级精品片在线看| 日本丰满少妇xxxx| 精品亚洲免费视频| 受虐m奴xxx在线观看| 亚洲一区在线视频观看| 这里只有久久精品视频| 亚洲国产97在线精品一区| 黄色成年人视频在线观看| 国产成人亚洲综合91| 福利在线一区| 中国老女人av| 毛片基地黄久久久久久天堂| 精品人妻一区二区三区日产乱码卜| 亚洲日韩欧美一区二区在线| 免费又黄又爽又猛大片午夜| 亚洲精品国精品久久99热一| 中文字幕在线观看播放| 91精品久久久久久| 日韩精品久久| 天堂中文视频在线| 久久综合999| 丰满少妇乱子伦精品看片| 亚洲精品一线二线三线无人区| 搞黄网站在线观看| 国产自产女人91一区在线观看| 精品国产一区二区三区噜噜噜| 国产福利视频在线播放| 99精品视频一区| 国产成人亚洲精品自产在线| 精品国产伦一区二区三区观看方式| 羞羞的网站在线观看| 亚洲一区中文字幕在线观看| 午夜欧美精品久久久久久久| 香蕉视频色在线观看| 亚洲图片激情小说| 国产免费无遮挡| 欧美裸体男粗大视频在线观看| av日韩在线免费观看| 最近中文字幕免费mv| 国内国产精品久久| 久久久久亚洲av无码专区体验| 欧美一区二区三区在线电影| av大片在线| 超碰在线97av| 国产一区二区你懂的| 极品人妻一区二区三区| 91精品福利在线| 9色在线视频网站| 91精品视频在线看| 欧美视频网站| 黄色性生活一级片| 欧美中文字幕一二三区视频| 亚洲精品承认| 亚洲综合色av| 中文在线不卡| 国产一二三四区在线| 91精品国产综合久久久久久久久久 | 欧美一级黄色影院| 亚洲国产精品黑人久久久 | 日韩成人高清在线| 免费观看成人性生生活片| 亚洲自拍偷拍二区| 成人午夜免费av| 国产寡妇亲子伦一区二区三区四区| 影音先锋日韩有码| 欧美激情精品| 日本三级免费网站| 中文字幕在线不卡一区| 亚洲老妇色熟女老太| 日韩av免费在线观看| 一级欧洲+日本+国产| 亚洲国产第一区| 欧美三区在线视频| 午夜羞羞小视频在线观看| 国内精品久久国产| 美女视频黄免费的久久| 久久久久亚洲av成人片| 亚洲日韩中文字幕| 另类视频一区二区三区| 成人免费在线小视频| 国产精品蜜臀av| 蜜桃视频久久一区免费观看入口| 欧美专区中文字幕| 亚洲精彩视频| a级片在线观看| 精品久久久久香蕉网| 久久久人成影片一区二区三区在哪下载 | 久久久久99人妻一区二区三区 | 国产ts人妖调教重口男| 26uuu久久噜噜噜噜| 91成人免费| 在线小视频你懂的| 亚洲第一视频网| 国产精品美女久久久久| 国内外免费激情视频|