苏宁大促高并发要求下的售后服务运营能力承诺服务系统架构实战\n
前言
蘇寧售后服務(wù)運(yùn)營(yíng)能力承諾服務(wù)系統(tǒng)(簡(jiǎn)稱“ASAP”)是物流研發(fā)中心建設(shè)的針對(duì)蘇寧售后服務(wù)的時(shí)效承諾管理和服務(wù)運(yùn)營(yíng)能力管理的核心支撐系統(tǒng),ASAP系統(tǒng)經(jīng)歷兩年多的線上考驗(yàn)與技術(shù)迭代,目前服務(wù)著成萬級(jí)商家,億級(jí)SKU。
系統(tǒng)定位及核心業(yè)務(wù)場(chǎng)景分析
首先介紹一下系統(tǒng)的定位,蘇寧售后服務(wù)運(yùn)營(yíng)能力承諾服務(wù)系統(tǒng)(ASAP,下稱“系統(tǒng)”),是售后服務(wù)能力的“庫(kù)存系統(tǒng)”,主要為售后服務(wù)的服務(wù)時(shí)效承諾和運(yùn)營(yíng)服務(wù)能力提供管理,與易購(gòu)商城及線下門店的商品銷售及售后服務(wù)履約相關(guān)聯(lián),系統(tǒng)定位為蘇寧易購(gòu)核心銷售鏈路上的核心服務(wù)之一。在商品銷售和售后服務(wù)履約過程,為消費(fèi)者、蘇寧客服、蘇寧自營(yíng)售后服務(wù)商、廠家售后服務(wù)商和平臺(tái)售后服務(wù)商提供能力服務(wù)支撐,為售后服務(wù)能力均勻有序的釋放提供了系統(tǒng)支撐,從而保障了售后服務(wù)質(zhì)量。
然后介紹一下系統(tǒng)的主要功能及業(yè)務(wù)模式,系統(tǒng)主要提供服務(wù)承諾和服務(wù)能力的實(shí)時(shí)接口查詢,服務(wù)能力的實(shí)時(shí)增加和扣減接口服務(wù)。從業(yè)務(wù)模式上又分為蘇寧自營(yíng)售后服務(wù)、廠家售后服務(wù)、平臺(tái)服務(wù)商售后服務(wù),其中蘇寧自營(yíng)售后服務(wù)是指由蘇寧自營(yíng)的幫客公司提供的售后服務(wù)業(yè)務(wù),廠家售后服務(wù)是指由商品的原廠商(比如海爾、華為)提供的售后服務(wù)業(yè)務(wù),平臺(tái)服務(wù)商售后服務(wù)是指由平臺(tái)服務(wù)商(比如閃修俠)提供的售后服務(wù),針對(duì)這三種業(yè)務(wù)類型,系統(tǒng)提供全面支撐。
系統(tǒng)的特點(diǎn)
庫(kù)存系統(tǒng)主要面臨以下幾個(gè)挑戰(zhàn):
涉及商品四級(jí)頁的時(shí)效針對(duì)同一個(gè)商品,比如秒殺、團(tuán)購(gòu)、打折促銷等活動(dòng)商品,如何支撐高并發(fā)時(shí)效能力查詢與扣減服務(wù)。
區(qū)別與實(shí)物商品庫(kù)存,售后服務(wù)能力主要是為了減小下單環(huán)節(jié)的依賴,能力控制可以放寬限制,服務(wù)的能力異步扣除,允許并發(fā)情況的少量超扣,但從服務(wù)上要保證扣完后的實(shí)際能力與查詢能力保持一致性,這是底線原則。
如何建設(shè)出可無限擴(kuò)展的架構(gòu),在系統(tǒng)擴(kuò)展過程中,各部署節(jié)點(diǎn)都需要具備無限擴(kuò)展能力,而常見的瓶頸如數(shù)據(jù)庫(kù)的連接數(shù)、隊(duì)列的連接數(shù)等。
架構(gòu)設(shè)計(jì)目標(biāo)
應(yīng)用架構(gòu)
業(yè)務(wù)流程:
1)服務(wù)商的運(yùn)營(yíng)人員針對(duì)服務(wù)類型進(jìn)行服務(wù)承諾和服務(wù)能力的維護(hù)
2)消費(fèi)者在蘇寧易購(gòu)APP或是網(wǎng)站上選購(gòu)商品,打開商品四級(jí)詳情頁,調(diào)用SOLP進(jìn)行時(shí)效查詢
3)SOLP調(diào)用ASAP提供的時(shí)效查詢接口進(jìn)行查詢。
4)消費(fèi)者完成下單支付,訂單由訂單中心下發(fā)到“售后服務(wù)接單管理系統(tǒng)”,由“售后服務(wù)接單系統(tǒng)”調(diào)用ASAP系統(tǒng)進(jìn)行能力扣減。
5)如后續(xù)的售后服務(wù)訂單有取消或另約服務(wù)時(shí)間請(qǐng)求,則會(huì)調(diào)用ASAP的能力的回滾接口進(jìn)行能力回滾。
系統(tǒng)架構(gòu)
ASAP架構(gòu)主要涉及:
1)ASAP服務(wù):主要提供能力的加減服務(wù)包括能力新增和能力扣減接口,
2)ASAP后臺(tái):主要提供系統(tǒng)給運(yùn)營(yíng)人員進(jìn)行承諾和時(shí)效服務(wù)的
3)中間件:主要涉及分布式服務(wù)框架RSF、任務(wù)調(diào)度平臺(tái)UTS、消息隊(duì)列WindQ
4)數(shù)據(jù)層:主要用到了Redis集群,mysql數(shù)據(jù)庫(kù)集群。
5)基礎(chǔ)服務(wù):主要依托蘇寧的基礎(chǔ)DEVOPS工具鏈完成開發(fā)和運(yùn)維工作。
技術(shù)框架
開發(fā)框架
系統(tǒng)采用蘇寧SNF技術(shù)框架開發(fā),蘇寧SNF框架基于MAVEN項(xiàng)目管理,提供各種的骨架組件。在這些骨架組件中,基本的依賴和基本設(shè)置都在模板中做好,無需各項(xiàng)目重復(fù)工作。本框架也包括了基本的項(xiàng)目框架結(jié)構(gòu)和各種基本設(shè)置,同時(shí)也集成了蘇寧框架組統(tǒng)一的日志記錄、異常捕獲、數(shù)據(jù)訪問等蘇寧自己的基礎(chǔ)組件。
項(xiàng)目組在SNF框架的基礎(chǔ)上,進(jìn)行少量的裁剪和擴(kuò)充就可以進(jìn)行開發(fā),既能統(tǒng)一項(xiàng)目設(shè)置和架構(gòu),又能大量節(jié)省開發(fā)人員搭建框架的時(shí)間。
開發(fā)環(huán)境
STS+Maven+SVN +JDK1.7+JBoss。
分布式服務(wù)框架RSF
系統(tǒng)提供的核心的服務(wù)接口均采用蘇寧自研的RSF框架實(shí)現(xiàn),RSF框架 解決了分布式系統(tǒng)間的服務(wù)調(diào)用問題,提供一種透明的、高性能的RPC服務(wù)調(diào)用方案。
主要功能:
總體架構(gòu):
系統(tǒng)面臨的挑戰(zhàn)及應(yīng)對(duì)
雖然系統(tǒng)采用了SNF框架,基于蘇寧組件和基礎(chǔ)設(shè)施,搭建了高并發(fā)的分布式架構(gòu),但隨著蘇寧易購(gòu)電商業(yè)務(wù)高速發(fā)展,訂單屢創(chuàng)新高的背景下,系統(tǒng)依然面臨一些挑戰(zhàn):
為了解決上述問題,我們啟用了應(yīng)用的本機(jī)分布式緩式,并在公司規(guī)劃下正在進(jìn)行多活架構(gòu)構(gòu)建。
應(yīng)用服務(wù)器內(nèi)存緩存
我們通過Ehcache框架,對(duì)于一些配置主數(shù)據(jù)和能力總量在應(yīng)用服務(wù)器進(jìn)行內(nèi)存緩存,從生產(chǎn)壓測(cè)情況來看效果明顯,在不新增服務(wù)器的條件下tps成倍增加,redis熱點(diǎn)消失。
后續(xù)也計(jì)劃對(duì)于已約數(shù)量等實(shí)時(shí)能力數(shù)據(jù),通過分布式緩存實(shí)現(xiàn)共享,以進(jìn)一步提升單個(gè)商品并發(fā)查詢和扣減的熱點(diǎn)瓶頸。
多活架構(gòu)
目前ASAP系統(tǒng)在公司統(tǒng)一部署下實(shí)現(xiàn)了多活的支持,在多個(gè)機(jī)房之間建立數(shù)據(jù)庫(kù)和Redis緩存數(shù)據(jù)的準(zhǔn)實(shí)時(shí)同步,支持多個(gè)機(jī)房間的流量切換,當(dāng)A機(jī)房出現(xiàn)故障,可由B機(jī)房完全接管,具體多活的生產(chǎn)應(yīng)用還在聯(lián)調(diào)中。
雙11等大促活動(dòng)保障
經(jīng)過兩年多的大促實(shí)戰(zhàn),基本形成了事前、事中、事后完整的大促保障工作機(jī)制,工作項(xiàng)標(biāo)準(zhǔn)化,越來越細(xì)致,組織上有專人牽頭負(fù)責(zé)具體工作項(xiàng)事務(wù),形成了完整的閉環(huán)。
容量和性能評(píng)估
對(duì)公司雙11大促的 活動(dòng)預(yù)告及銷售目標(biāo)進(jìn)行詳細(xì)評(píng)估和分解,轉(zhuǎn)化成ASAP系統(tǒng)的核心服務(wù)的SLA,確定庫(kù)存系統(tǒng)的核心服務(wù)的TPS目標(biāo)。
性能壓測(cè)達(dá)標(biāo)
大促前,我們會(huì)進(jìn)行多輪的生產(chǎn)壓測(cè),最重要的是單系統(tǒng)的接口壓測(cè)和端到端全鏈路壓測(cè)。通過單系統(tǒng)服務(wù)接口壓測(cè),我們排除接口潛在的性能瓶頸并針對(duì)性的優(yōu)化,能夠清楚認(rèn)識(shí)負(fù)責(zé)系統(tǒng)的單接口所能支持的并發(fā)上限;通過生產(chǎn)真實(shí)流量回放的端到端全鏈路壓測(cè)平臺(tái),進(jìn)行全鏈路的生產(chǎn)壓測(cè),發(fā)現(xiàn)真實(shí)流量下的系統(tǒng)壓力情況,和資源情況,提前發(fā)現(xiàn)性能瓶頸和潛在的系統(tǒng)風(fēng)險(xiǎn)。性能測(cè)試是大促籌備最為關(guān)鍵的一環(huán)。
系統(tǒng)健康體檢
提前對(duì)系統(tǒng)的各方面進(jìn)行全面的健康檢查,比如db磁盤的容量、連接數(shù)、topsql,緩存的內(nèi)存使用率、并發(fā)命令數(shù)和連接數(shù),消息隊(duì)列的連接數(shù),各節(jié)點(diǎn)的cpu負(fù)載情況,排除單點(diǎn)故障,排除虛擬機(jī)的資源爭(zhēng)用問題,排除高可用問題(同一物理機(jī)多應(yīng)用節(jié)點(diǎn))等。
機(jī)器擴(kuò)容
基于容量預(yù)估出來的各服務(wù)接口的TPS目標(biāo),根據(jù)壓測(cè)結(jié)果評(píng)估系統(tǒng)的服務(wù)器是否需要擴(kuò)容,比如jboss集群是否需要擴(kuò)容,redis集群是否需要擴(kuò)容,數(shù)據(jù)庫(kù)服務(wù)器性能是否有足夠等。
梳理流控與降級(jí)方案
所有服務(wù)接口需要設(shè)定合理的流控閥值,以確保系統(tǒng)不會(huì)掛死;梳理所有接口的調(diào)用系統(tǒng)和業(yè)務(wù)場(chǎng)景并明確業(yè)務(wù)的優(yōu)先級(jí),假設(shè)系統(tǒng)因?yàn)槟撤?wù)導(dǎo)致性能出現(xiàn)瓶頸,根據(jù)業(yè)務(wù)優(yōu)先級(jí)逐步調(diào)整流控閥值;業(yè)務(wù)流控或系統(tǒng)流控要實(shí)現(xiàn)用戶的友好提示;對(duì)于依賴系統(tǒng),如果出現(xiàn)超時(shí)或宕機(jī),則定義降級(jí)策略,確保服務(wù)請(qǐng)求的快進(jìn)快出。
作者:汪成偉,蘇寧易購(gòu)IT總部物流研發(fā)中心技術(shù)總監(jiān),目前負(fù)責(zé)蘇寧物流研發(fā)中心售后相關(guān)系統(tǒng)的架構(gòu)與開發(fā)管理工作,具有十多年互聯(lián)網(wǎng)一線研發(fā)及管理經(jīng)驗(yàn)。曾負(fù)責(zé)過B2C電商平臺(tái)、移動(dòng)新聞資訊平臺(tái),用戶上網(wǎng)行為分析大數(shù)據(jù)平臺(tái)及O2O社交應(yīng)用的研發(fā)工作。是DevOps的踐行者,在企業(yè)應(yīng)用架構(gòu)設(shè)計(jì)、高并發(fā)系統(tǒng)設(shè)計(jì)、大促保障、研發(fā)過程管理、穩(wěn)定性治理、安全開發(fā)上有豐富的經(jīng)驗(yàn)。
總結(jié)
以上是生活随笔為你收集整理的苏宁大促高并发要求下的售后服务运营能力承诺服务系统架构实战\n的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学JS的心路历程 -函式(三)this
- 下一篇: com.android.dex.DexI