久久av日韩,国产精品videosex极品,国产欧美日韩综合一区在线播放,国产视频久久

首頁 > 科技活動 > 科技活動 > 京東到家訂單交易架構(gòu)演化

京東到家訂單交易架構(gòu)演化

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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


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


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

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

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


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

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

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


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

 


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

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

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

 

科技活動更多>>

2027款梅賽德斯-奔馳S級正式發(fā)布,搭載驚喜平曲軸V8發(fā)動機 加韓開展磋商 推動韓系車企在加拿大落地建廠 6G核心技術(shù)突破:三星聯(lián)合KT完成7GHz頻段X-MIMO技術(shù)驗證,下行速率3Gbps AI時代的認知裂谷與K型分化:你是那1%嗎? 中國汽車海外產(chǎn)銷體系崛起:2025年海外銷量破900萬臺 春晚機器人刷屏背后:中美差距不在算法,而在供應(yīng)鏈試錯成本 OpenAI硬件團隊曝光:Jony Ive親自帶隊,比蘋果更蘋果 微軟:AI聊天機器人越聊越“笨”,復(fù)雜對話中不可靠性增長112% 鈴木擬將泰國工廠出售給福特 三菱帕杰羅2026款確認在泰國生產(chǎn),計劃于2026年底或2027年初全球發(fā)布 特斯拉Cybertruck首次在中東地區(qū)開啟交付,阿聯(lián)酋成首個海外交付市場 一體化智能底盤再迎新進展,時代智能與印尼IBC等簽約戰(zhàn)略合作 特斯拉逐步取消FSD一次性買斷選項,Robotaxi車隊新增多位置攝像頭清洗裝置 一汽-大眾公布2026年計劃:全年13款新車油電混共進 重塑30萬級豪華越野,捷途縱橫G700核心零部件配套供應(yīng)商一覽 2026奇瑞汽車AI之夜定檔明晚:超級AI智能體、迅龍秒充即將登場 山東新規(guī):電動車進樓入戶將面臨罰款 個人最高罰500元 Ericsson愛立信擬在總部所在地瑞典裁撤約1600個職位 首次國產(chǎn)芯片全程訓(xùn)練!智譜聯(lián)合華為開源新模型登頂全球第一 奕境首款車型諜照曝光:華為乾崑與東風(fēng)聯(lián)手打造,計劃2026年4月北京車展正式亮相 首次:智譜華為合作GLM-Image模型登頂Hugging Face Trending 首個月球酒店開放預(yù)訂 計劃2032年開業(yè) 去美國試了最新的特斯拉FSD+Grok,我有點被震驚了… 2026年上半年發(fā)布!極氪全新中大型SUV的官方諜照曝光 軸距再長42mm!新一代奧迪A6L實車曝光,預(yù)計1月15日正式亮相 哈基米豆?jié){帶火九陽股價?抽象經(jīng)濟,年輕人為啥為熱梗瘋狂買單 過去的2025年,互聯(lián)網(wǎng)為什么瘋狂“買地”? 龍芯最新GPU:性能提升400%?但還是7年前Nvidia的水平 雷軍等小米高管評論區(qū)被沖后!徐潔云回應(yīng)投放大熊:向米粉道歉 銅價一噸超10萬!“鋁代銅”,一臺空調(diào)成本省300多元,董明珠、雷軍為何不用?
久久av日韩,国产精品videosex极品,国产欧美日韩综合一区在线播放,国产视频久久
精品国产欧美日韩| 国产一区二区三区亚洲综合| 国产欧美日韩精品一区二区免费| 日本不卡不码高清免费观看| 国产丝袜一区| av中文字幕在线观看第一页 | 欧美激情福利| 国产一二在线播放| 亚洲精品91| 日本一不卡视频| 国产91欧美| 免费中文字幕日韩欧美| 国产精品午夜一区二区三区| av在线最新| 免费在线观看日韩欧美| 欧美国产中文高清| 99久久99久久精品国产片果冰| 日本大胆欧美人术艺术动态| 久久99免费视频| 亚洲国产专区校园欧美| 亚洲一区有码| 欧洲av不卡| 精品一区毛片| 老鸭窝亚洲一区二区三区| 免费一区二区视频| 欧美在线不卡| 麻豆国产欧美一区二区三区 | 成人污污视频| 日韩国产欧美在线播放| 国产精品videosex极品| 日韩精品一级中文字幕精品视频免费观看 | 精品国产午夜| 欧洲一区二区三区精品| 亚洲精品免费观看| 中文字幕在线官网| 日本亚洲不卡| 欧美日韩一区二区综合| 丝袜美腿亚洲一区二区图片| 日韩视频1区| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 久久毛片亚洲| 中文字幕免费精品| 日韩欧美网址| 欧美精品观看| 国产日韩一区二区三区在线播放| 亚洲深夜视频| 动漫av一区| 另类综合日韩欧美亚洲| 日韩精品久久理论片| 中文精品在线| 欧美成人高清| 99精品在线观看| 四虎884aa成人精品最新| 97精品一区| 久久精品资源| 国产精品2023| 国产精品午夜一区二区三区| 清纯唯美亚洲综合一区| 深夜福利亚洲| 亚洲91精品| 日韩精品一区二区三区免费视频| 激情视频一区二区三区| 久久久久久久欧美精品| 亚洲一区二区三区四区电影| 成人羞羞视频在线看网址| 日韩二区三区四区| 国产亚洲欧洲| 久久婷婷av| 日韩a一区二区| 国产精品视频一区二区三区 | 美女久久精品| 一级欧美视频| 夜夜嗨网站十八久久| 日韩精品麻豆| 国产96在线亚洲| 蜜臀av亚洲一区中文字幕| 成人在线网站| 激情综合在线| 国产毛片久久| 蜜桃久久av一区| 日韩在线麻豆| 青青草国产成人99久久| 国产精品**亚洲精品| 精品伊人久久久| 国产精品成人a在线观看| 中文字幕在线官网| 日韩一区精品字幕| 欧美日韩国产欧| 黑丝一区二区三区| 欧美91视频| 伊人成人网在线看| 狠狠色综合网| 蜜桃久久av| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲一区二区三区免费在线观看| 伊人久久亚洲影院| 亚洲少妇一区| 免费精品视频最新在线| 在线免费观看亚洲| 日韩精品视频中文字幕| 日本欧美久久久久免费播放网| 老色鬼久久亚洲一区二区| 欧美日韩国产在线一区| 欧美日韩三区| 亚洲一区欧美| 天堂av在线一区| 亚州欧美在线| 911亚洲精品| 国产精品亚洲四区在线观看| 精品视频一区二区三区在线观看 | 美腿丝袜亚洲一区| 欧美激情精品| 激情视频网站在线播放色| 欧美综合另类| 在线亚洲激情| 日韩精品亚洲专区在线观看| 国产麻豆一区二区三区精品视频| 老色鬼精品视频在线观看播放| 91综合视频| 狠狠干综合网| 日韩精品一区二区三区中文字幕| 国产精品多人| 日韩一区自拍| 午夜在线一区二区| 欧美精品三级在线| 国产精品xx| 欧美手机在线| 久久电影一区| 国产精品一区二区三区四区在线观看| 精品国产不卡一区二区| 国精品一区二区| 亚洲另类视频| 久久不见久久见中文字幕免费| 蜜桃av.网站在线观看| 国产精品日本欧美一区二区三区| 欧美日韩1区2区3区| 日韩成人a**站| 亚洲男女av一区二区| 日韩中文字幕| 久久久久久色| 韩国三级一区| 首页国产欧美日韩丝袜| 国产日韩高清一区二区三区在线| 97欧美在线视频| 视频在线观看一区| 久久a爱视频| 欧美日韩国产传媒| 日韩欧美精品一区二区综合视频| 精品一区电影| 亚洲尤物在线| 麻豆一区二区在线| 欧美日韩在线网站| 日本精品国产| 日韩欧美在线中字| 亚洲开心激情| 在线天堂资源www在线污| 午夜影院欧美| 国产日韩免费| 亚洲免费激情| 国产精品久久久久久久久久久久久久久 | 成人午夜网址| 爽好久久久欧美精品| 电影91久久久| 亚洲天堂免费| 热三久草你在线| 天海翼亚洲一区二区三区| 欧美久久天堂| 91国内精品| 午夜视频精品| 久久中文精品| 免费在线观看一区二区三区| 欧美韩日一区| 亚洲精品少妇| 日本不良网站在线观看| 视频一区中文字幕精品| 韩国久久久久久| 91亚洲无吗| 在线综合亚洲| 日韩精品91| 国产精品一国产精品| 亚洲欧美不卡| 蜜臀久久精品| 国产激情综合| 亚洲精一区二区三区| 久久一区国产| 蜜桃视频第一区免费观看| 国产理论在线| 国产三级一区| 亚洲欧洲美洲国产香蕉| 欧美日韩国产传媒| 国产成人1区| 久久精品超碰| 久久最新视频| 欧美日韩一区二区三区视频播放| 精品国产亚洲日本| 国产视频一区二区在线播放| 日韩影院精彩在线| 欧美日韩三区| 天堂av在线| 亚洲三级毛片|