亚洲国产婷婷_手机在线观看国产精品_日本一区二区三区在线视频_亚洲精品成人久久

首頁 > 汽車測評 > 汽車測評 > 京東到家訂單交易架構演化

京東到家訂單交易架構演化

發(fā)布時間:2024-07-08 16:08:07

背景
交易系統(tǒng)可能不是技術難度最深的,但是業(yè)務復雜度最高的,一個訂單從提交到最后真正生產(chǎn)成功要經(jīng)歷幾十個系統(tǒng),涉及的接口交互,MQ等可能達上百個。任何一個環(huán)節(jié)出問題都會導致這一單的異常,而且交易不像單純的資訊門戶可以靠靜態(tài)化或者緩存抗住大并發(fā),交易系統(tǒng)里面涉及到大量的資源(庫存,優(yōu)惠券,優(yōu)惠碼等)消費,訂單生成等需要寫入持久化的操作不是單純的異步或者緩存化可以解決的,而且對庫存等敏感信息不能出現(xiàn)并發(fā)扣減等。

細節(jié)的設計非常多,下面挑出比較典型的一些方面,給大家介紹下京東到家交易系統(tǒng)的架構設計和關鍵問題的處理方案。

歷程
系統(tǒng)Set化
初期的訂單系統(tǒng)和首頁,單品頁,購物車業(yè)務邏輯層等都是在一個大項目里。非常適合初期人員少,業(yè)務復雜度低,快速迭代,不斷探索試錯的過程,但是隨著業(yè)務的發(fā)展,出現(xiàn)了以下問題:

系統(tǒng)的流量和業(yè)務復雜度也越來越大,大家共用一個大項目進行開發(fā)部署,相互影響,協(xié)調成本變高;
不同的業(yè)務模塊,流量和重要級別不同需要的部署策略和容災降級限流等措施也不一樣,要分而治之;

解決方案
項目Set化,這個過程中要注意Set化的邊界問題,粒度太大了效果不好,太小了設計過度了,反而會增加維護和開發(fā)成本;


分庫分表
問題
隨著訂單的并發(fā)量的不斷攀升,特別是在雙十一,618等大促的時候,單組DB(一主多從)存在著明顯的壓力,單個主庫的連接數(shù)是有限的。大單量,大并發(fā)的時候,數(shù)據(jù)庫越來越成為了我們的瓶頸。

解決方案
針對接單數(shù)據(jù)庫我們采取的常規(guī)做法分庫,根據(jù)訂單號進行Hash分布到不同的多個數(shù)據(jù)庫中,代碼方面我們是繼承了Spring的AbstractRoutingDataSource,實現(xiàn)了determineCurrentLookupKey方法。對業(yè)務代碼只有很少的耦合。

另外下發(fā)到個人中心數(shù)據(jù)庫的訂單信息,每天不斷的累計到DB中,存在以下風險:

MySQL的單表容量超過單機限制
穿透緩存到達DB的數(shù)據(jù)查詢也是非常有問題的。
目前我們采取對個人中心的表按照pin進行分庫分表。
但是對于后端生產(chǎn)系統(tǒng)對于訂單數(shù)據(jù)的查詢操作,特別是涉及到多條件組合的情況,由于數(shù)據(jù)量大,多個表數(shù)據(jù)的關聯(lián),無論分不分表或者讀寫分離對這個場景都不能很好的解決。

這種場景下我們采用了ES,在寫入DB的時候同步寫入ES。你可能會問ES失敗了,數(shù)據(jù)不一致怎么辦,ES失敗了DB回滾,Worker標識狀態(tài),重新迎接下一次輪詢。

前端下單和后端生產(chǎn)分離
問題
ToC端和ToB端的業(yè)務場景不同,前端對互聯(lián)網(wǎng)用戶的更多的是快速響應,抗住流量壓力,而后端的場景需要穩(wěn)定的全量的數(shù)據(jù),要在接單的數(shù)據(jù)庫基礎上進行補全數(shù)據(jù);兩個端職責不同,不能互相影響;

解決方案
ToC和ToB分離,前端App或者H5用戶下單和后端訂單真正的生產(chǎn)相分離;前端訂單系統(tǒng)掛掉了,不影響后端的生產(chǎn);后端的生產(chǎn)掛了,對用戶的下單也是無感知的。只是對配送的時效體驗上會有影響,不是阻斷性的。

我們ToC的訂單系統(tǒng)和ToB的是兩個不同的獨立數(shù)據(jù)庫,互不影響;訂單管道的Woker都是基于TBSchedule的分布式管理,多個Woker并行處理,下發(fā)時機都在毫秒級;


并行控制提升效率
問題
交易的流程依賴的系統(tǒng)非常多,拿提單按鈕來舉例,結算頁的”提單”按鈕,點一次就會觸發(fā)20+個接口。隨著業(yè)務復雜度的提升,單純的串行執(zhí)行效率越來越低,前端用戶的體驗越來越差。我們要求TP999在500ms以內的響應速度。

解決方案
我們梳理了服務的依賴關系等,對沒有前后依賴的接口進行放到線程池里面異步執(zhí)行,類似:查詢庫存,查詢商品信息,查詢促銷信息等都并行執(zhí)行。此步執(zhí)行的時間,是并行接口里面最長的一個執(zhí)行的時間。這樣一來整個提單的操作提升了幾百毫秒。

另外資源(庫存,優(yōu)惠券,優(yōu)惠碼,促銷等)的消費和回滾,我們也采用了并行的方式,每一種資源類都實現(xiàn)消費和回滾的接口。如下圖:


每個資源類都是一個Task的成員變量,Task實現(xiàn)了Callable接口。這樣一來,不但整個提單大接口的效率提升了,對于資源消費和回滾環(huán)節(jié),程序和業(yè)務的擴展性提升了很多。比如新增一種資源,這時候只需實現(xiàn)消費和回滾接口,然后扔到線程池里面就完成了。


異步
在服務端可能需要針對提單請求做一些附屬的事情,這些事情其實用戶并不關心或者用戶不需要立即拿到這些事情的處理結果,這種情況就比較適合用異步的方式處理這些事情,思路就是將訂單交易的業(yè)務整理出來,哪些是不影響主流程的,例如:發(fā)短信,保存最近使用地址,清除購物車商品,下發(fā)訂單給個人中心等等。這些都是在提單之后的異步線程去做。對于下發(fā)給個人中心的操作,如果失敗,我們會有Woker補償機制;

我們這里使用的是線程池的模式進行異步處理的,處理過程中有幾個問題需要注意下:

線程池的隊列不建議使用無界隊列,它的默認大小是整數(shù)的最大值,這樣在突發(fā)流量的時候會導致內存暴漲,影響服務;建議使用ArrayBlockingQueue
不推薦使用CallerRunsPolicy,即在線程和隊列都達到max的時候,退回此請求到主線程。這樣在突發(fā)流量或者接口提供方性能下降的時候導致主線程數(shù)暴增,影響整體服務。可以直接使用拒絕的策略,后續(xù)的Woker可以對異常單就行補償;
依賴治理
訂單交易上百個接口,幾十個系統(tǒng)交互。各服務直接的依賴關系如何治理是一個很重要的問題。如下圖:


問題
一個服務依賴這么多服務,每個服務除自身的原因外,還受到網(wǎng)絡原因等其他外部因素的影響,高并發(fā)情況下任何一個依賴的服務的波動都會造成整個大服務的阻塞,進而導致系統(tǒng)“雪崩”。

解決方案
那這些服務特別是不是阻斷流程的服務,我們可以采用降級的處理,例如調用超時了給設定默認值,調用量比較大,所依賴的服務嚴重超時并影響整個調用方時,可以通過配置直接提供有損服務,不調用此服務。

我們解決此類問題是使用自己開發(fā)的基于Zookeeper的“魯班系統(tǒng)”,其原理就是Zookeeper相應的Znode節(jié)點下的數(shù)據(jù)做為對接口的開關或者降級情況的配置等。當相應的節(jié)點的數(shù)據(jù)發(fā)生變化的時候,對此節(jié)點監(jiān)聽的所有服務器都會受到通知,并將此變更同步到本地的緩存中;本地緩存我們使用的ConcurrentHashMap。當然也可以使用Guava Cache等開源組件,注意并發(fā)的場景就可以了;


然后再結合我們的UMP監(jiān)控系統(tǒng)對系統(tǒng)的可用率,調用量等情況進行降級時機的判定,對Zookeeper相應節(jié)點的數(shù)據(jù)做動態(tài)配置;

 


履約
問題
針對訂單履約的過程清晰可追溯,我們自己開發(fā)了UDP上報系統(tǒng),對一次提單中操作的所有接口,幾十個系統(tǒng)的交互進行了詳細記錄;

解決方案
出參入?yún)ⅲ欠癞惓#琁P等信息均做了上報。通過Spring的AOP方式,開發(fā)了一個自定義注解,對添加了注解的方法UDP方式寫入到ES集群中;而且我們實現(xiàn)了工具化,任何項目引入我們的Jar包,做簡單配置就可以向我們的UDP服務端上報信息了。隨著現(xiàn)在的信息量變大,我們正在考慮升級架構,UDP Client端發(fā)送信息到Kafka,然后Storm實時在線分析形成最終需要的數(shù)據(jù)落地到ES集群中;

此系統(tǒng)大大提升了我們定位解決問題的效率。

 

汽車測評更多>>

從《大師與瑪格麗特》看經(jīng)典作品當代復現(xiàn)的創(chuàng)作困境 傅繼英工筆畫三十三觀音之馬郎婦觀音:至誠合作,事業(yè)騰達 粵港青年音樂家在深圳展演四場室內樂音樂會,奏響大灣區(qū)青春樂章 若羌縣舉辦“棗花開了”系列活動之移風易俗、書畫攝影作品、臨書臨印展 第十四屆全國美術作品展覽部分進京作品巡展至河南 2024年南寧市體育局局屬事業(yè)單位免筆試招聘工作人員公告(5人) 2024年中國人民政治協(xié)商會議廣州市海珠區(qū)委員會辦公室關于招聘雇員的公告(1人) 2024年中山職業(yè)技術學院第三期招聘事業(yè)單位人員公告(16人) 2024年下半年揭陽市市直事業(yè)單位專項招聘博(碩)士研究生公告(45人) 安徽大眾第二款SUV要來了,依舊轎跑風格,定位更高 阿維塔又要推新車了,定位中型轎車,明年推出 9.98萬元起售,搭載2C快充,五菱星光純電版算是真香之選嗎? 阿維塔12增程版要來了,明天開啟預售,純電續(xù)航201km MG ES5要來了,10月15日首發(fā),主打大空間 嵐圖知音正式上市,19.69萬起,全新純電平臺打造,還配曲面屏 別錯過!這四款華為手機超高性價比,最低1199元! 解讀卡羅拉銳放,定位緊湊型SUV,配2.0L+CVT,實力表現(xiàn)如何? 外觀運動時尚的艾瑞澤8,1.6T爆發(fā)197馬力,實力表現(xiàn)到底如何? 小鵬P7i:6.4秒破百,配XNGP+AI天璣系統(tǒng),產(chǎn)品實力值得一看 長安啟源A07全新真香版即將上市,產(chǎn)品力依舊保持較高水準 定位緊湊型SUV,車身軸距2770mm的哪吒X,其實力表現(xiàn)是否值得一看 9月銷量破萬,豐田亞洲龍2024款,2.0L+CVT,值得入手嗎 10小時訂單量破5000臺,全新智己LS6比極氪7X更值得考慮? 純電中大型轎車之爭,極越07、領克Z10,誰更具“性價比”? 塊頭都不小呀!比亞迪騰勢N9、全新“夏”MPV現(xiàn)身目錄 蘋果推出新款iPad mini 現(xiàn)在即可訂購 10月23日在實體店開售 一汽紅旗:交付 EH7 榮耀版,助力體育強國 中國車企正在“顛覆”歐洲老牌制造商?小鵬、廣汽紛紛“安撫” 第100萬輛汽車下線 理想汽車成國內首個“百萬輛新勢力車企” AION V 打頭陣,廣汽開始籌謀歐洲市場
亚洲国产婷婷_手机在线观看国产精品_日本一区二区三区在线视频_亚洲精品成人久久
欧美人成免费网站| 久久精品毛片| 亚洲色图综合久久| 亚洲综合社区| 国产欧美日韩视频在线观看| 国产日本欧美在线观看| 伊人久久噜噜噜躁狠狠躁 | 国内外成人免费激情在线视频网站 | 国产农村妇女精品一二区| 伊人久久亚洲影院| 亚洲视频一区二区在线观看| 久久精品亚洲一区| 欧美日韩成人在线| 国产视频精品网| 亚洲国产欧美另类丝袜| 亚洲一区二区免费| 麻豆免费精品视频| 国产精品成人在线观看| 在线观看日产精品| 亚洲一区二区在线看| 久久综合九色综合欧美就去吻 | 久久久亚洲国产天美传媒修理工 | 欧美色道久久88综合亚洲精品| 国产无遮挡一区二区三区毛片日本| 亚洲韩国精品一区| 午夜在线视频一区二区区别| 欧美成人亚洲成人日韩成人| 国产欧美一区二区三区另类精品| 91久久久久久久久久久久久| 午夜精品久久久久久久久久久久久 | 免费不卡亚洲欧美| 国产精品久久久久久av福利软件| 亚洲大胆美女视频| 性欧美18~19sex高清播放| 欧美成人蜜桃| 国产日韩综合| 日韩系列欧美系列| 久久婷婷麻豆| 国产精品一二三四| 亚洲免费观看高清完整版在线观看熊 | 日韩一级二级三级| 久久视频国产精品免费视频在线| 国产精品美女久久久久久2018| 亚洲激情精品| 久久青青草综合| 国产精品综合网站| 在线视频欧美一区| 欧美激情视频一区二区三区不卡| 国产自产在线视频一区| 亚洲综合99| 欧美日韩色一区| 影音先锋久久久| 欧美一区免费| 国产精品美女在线| 中文国产一区| 欧美精品三级日韩久久| 亚洲第一区中文99精品| 久久精品国产999大香线蕉| 国产精品毛片大码女人| 一本色道**综合亚洲精品蜜桃冫| 欧美va天堂| 亚洲国产精品国自产拍av秋霞 | 欧美精品一区二区三区一线天视频| 在线免费观看日本欧美| 久久精品国产一区二区三| 国产精品视频网| 亚洲一区二区黄色| 欧美视频在线观看一区| 日韩午夜中文字幕| 欧美人与性禽动交情品 | 亚洲精品久久久久久下一站| 另类图片国产| 影院欧美亚洲| 久久久亚洲一区| 韩国欧美国产1区| 久久黄色小说| 激情亚洲一区二区三区四区| 久久精品av麻豆的观看方式| 国产一区日韩欧美| 久久精品夜夜夜夜久久| 国内精品视频久久| 久久嫩草精品久久久久| 在线成人激情视频| 欧美成人第一页| 亚洲精品老司机| 欧美日韩国产首页在线观看| av成人免费在线观看| 欧美三级免费| 亚洲欧美韩国| 国产日产精品一区二区三区四区的观看方式 | 久久久精品网| 亚洲大片一区二区三区| 免费在线看一区| 亚洲精品久久久久中文字幕欢迎你 | 欧美一区二区私人影院日本 | 国产精品另类一区| 亚洲一区在线直播| 国产欧美在线| 久久嫩草精品久久久久| 亚洲国产精品一区制服丝袜| 欧美精品九九99久久| 一区二区三欧美| 国产精品视频免费观看www| 午夜伦理片一区| 韩国成人福利片在线播放| 牛牛精品成人免费视频| 9色国产精品| 国产精品日韩久久久久| 久久精品免费电影| 91久久综合| 国产精品久久久久av免费| 久久高清一区| 最新亚洲激情| 国产精品久久久久久久app| 久久福利精品| 91久久黄色| 国产精品美女久久久久av超清| 久久久久88色偷偷免费| 亚洲日韩中文字幕在线播放| 欧美性色视频在线| 久久精品国语| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美高清在线视频观看不卡| 亚洲性色视频| 极品av少妇一区二区| 欧美人与禽猛交乱配| 香蕉久久夜色精品国产| 在线观看亚洲a| 欧美日韩在线播放三区| 久久aⅴ国产欧美74aaa| 亚洲区一区二区三区| 国产精品久久国产三级国电话系列| 久久精品一二三区| 99国产精品99久久久久久粉嫩| 国产精品一区二区三区免费观看| 久久夜色精品国产欧美乱极品| av成人免费| 国语自产偷拍精品视频偷| 欧美日韩国产系列| 久久精品一区中文字幕| 99这里只有久久精品视频| 国产午夜精品一区二区三区欧美| 欧美激情aⅴ一区二区三区| 亚洲欧美变态国产另类| 亚洲成人自拍视频| 国产精品美女久久福利网站| 欧美大色视频| 久久国产精品一区二区三区四区| 亚洲精品欧美激情| 国产亚洲在线| 国产精品成人一区二区三区夜夜夜 | 一区二区三区高清不卡| 狠狠爱www人成狠狠爱综合网| 欧美日韩久久| 免费高清在线视频一区·| 午夜电影亚洲| 夜夜嗨av色综合久久久综合网| 国精产品99永久一区一区| 欧美日韩精品免费看| 久久久久久久综合色一本| 亚洲一区日韩在线| 日韩午夜精品| 在线播放中文一区| 国产无遮挡一区二区三区毛片日本| 欧美日韩视频在线一区二区观看视频| 久久精品视频99| 亚洲一区免费视频| 亚洲区第一页| 伊人狠狠色j香婷婷综合| 国产欧美精品久久| 欧美午夜剧场| 欧美日本中文| 欧美mv日韩mv国产网站app| 久久超碰97中文字幕| 亚洲一区二区三区午夜| 日韩西西人体444www| 欧美中文字幕在线播放| 亚洲一二三四区| 99视频精品全国免费| 亚洲精品日日夜夜| 亚洲国产精品第一区二区| 国产一区二区看久久| 国产精品自拍在线| 国产精品久久久久久久久免费桃花| 欧美日韩久久久久久| 亚洲图片欧美午夜| 最新亚洲视频| 亚洲国产视频a| ●精品国产综合乱码久久久久| 国产一区二区三区黄视频| 国产精品尤物| 国产精品热久久久久夜色精品三区| 欧美日韩亚洲一区三区 | 老巨人导航500精品| 久久精品亚洲一区二区三区浴池| 欧美在线影院在线视频| 午夜一区不卡| 香蕉成人伊视频在线观看| 亚洲欧美文学| 午夜在线视频观看日韩17c| 性欧美精品高清| 欧美一区久久| 久久久人人人| 另类尿喷潮videofree|