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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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


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


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

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

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


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

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

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


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

 


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

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

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

 

科技活動更多>>

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