京東商城友存,超大型電商系統(tǒng)架構(gòu)設(shè)計(jì)原則與實(shí)踐祷膳!

來(lái)自京東商城技術(shù)團(tuán)隊(duì)的內(nèi)部分享材料,其中一些涉及太多技術(shù)細(xì)節(jié)的ppt沒(méi)有放出來(lái)屡立,但在文字中都有提到直晨。

京東商城系統(tǒng),融合了自營(yíng)模式膨俐、商城模式勇皇、三方平臺(tái)等模式,跟淘寶焚刺、天貓以商城模式為主的電商系統(tǒng)相比敛摘,業(yè)務(wù)模式上要豐富很多,包括許多WMS檩坚、TMS着撩、OMS的部分。國(guó)內(nèi)中小型電商公司匾委,如果要學(xué),最好是學(xué)習(xí)京東的業(yè)務(wù)架構(gòu)氓润,因?yàn)闃I(yè)務(wù)模式上相近一些赂乐。

01

超大型電商系統(tǒng)架構(gòu)目標(biāo)

1.構(gòu)建超大型電商交易平臺(tái),兼顧效率和性能咖气,達(dá)到高人效挨措、高時(shí)效和低成本的目標(biāo)。

2.低成本崩溪,增加服務(wù)的重用性浅役,提高開(kāi)發(fā)效率,降低人力成本伶唯;利用成熟開(kāi)源技術(shù)觉既,降低軟硬件成本;利用虛擬化技術(shù)乳幸,減少服務(wù)器成本瞪讼。

3.高擴(kuò)展,系統(tǒng)架構(gòu)簡(jiǎn)單清晰粹断,應(yīng)用系統(tǒng)間耦合低符欠,容易水平擴(kuò)展,業(yè)務(wù)功能增改方便快捷瓶埋。

4.高可用希柿,自動(dòng)化運(yùn)維诊沪。整體系統(tǒng)可用性99.99%,單個(gè)系統(tǒng)可用性99.999%曾撤。全年故障時(shí)間整個(gè)系統(tǒng)不超過(guò)50分鐘娄徊,單個(gè)系統(tǒng)故障不超過(guò)5分鐘。

02

京東商城業(yè)務(wù)架構(gòu)設(shè)計(jì)原則

1.業(yè)務(wù)平臺(tái)化

業(yè)務(wù)平臺(tái)化盾戴,相互獨(dú)立寄锐。如交易平臺(tái)、倉(cāng)儲(chǔ)平臺(tái)尖啡、物流平臺(tái)橄仆、支付平臺(tái)、廣告平臺(tái)等 衅斩∨韫耍基礎(chǔ)業(yè)務(wù)下沉,可復(fù)用畏梆。如用戶您宪、商品、類目奠涌、促銷宪巨、時(shí)效等。

2.核心業(yè)務(wù)溜畅、非核心業(yè)務(wù)分離

? 電商核心業(yè)務(wù)與非核心業(yè)務(wù)分離捏卓,核心業(yè)務(wù)精簡(jiǎn)(利于穩(wěn)定),非核心業(yè)務(wù)多樣化慈格。如怠晴,主交易服務(wù)、通用交易服務(wù) 浴捆。

3.區(qū)分主流程蒜田、輔流程

? 分清哪些是電商的主流程。運(yùn)行時(shí)选泻,優(yōu)先保證主流程的順利完成冲粤,輔流程可以采用后臺(tái)異步的方式。避免輔流程的失敗導(dǎo)致主流程的回滾滔金。如色解,下單時(shí),同步調(diào)用快照餐茵,異步通知臺(tái)賬科阎、發(fā)票 。

4.隔離不同類型的業(yè)務(wù)

? 交易業(yè)務(wù)是簽訂買(mǎi)家和賣(mài)家之間的交易合同忿族,需要優(yōu)先保證高可用性锣笨,讓用戶能快速下單蝌矛,履約業(yè)務(wù)對(duì)可用性沒(méi)有太高要求,可以優(yōu)先保證一致性 错英,閃購(gòu)業(yè)務(wù)對(duì)高并發(fā)要求很高入撒,應(yīng)該跟普通業(yè)務(wù)隔離。

京東電商系統(tǒng)-業(yè)務(wù)架構(gòu)圖? (來(lái)源于@京東技術(shù)部)

京東業(yè)務(wù)架構(gòu)實(shí)例:基礎(chǔ)業(yè)務(wù)下沉? ? (來(lái)源于@京東技術(shù)部)

03

應(yīng)用架構(gòu)設(shè)計(jì)原則

1椭岩、穩(wěn)定性原則

一切以穩(wěn)定為中心茅逮;架構(gòu)盡可能簡(jiǎn)單、清晰判哥;不過(guò)度設(shè)計(jì)献雅。

2、接耦/拆分

穩(wěn)定部分與易變部門(mén)分離塌计;核心業(yè)務(wù)與非核心業(yè)務(wù)分離挺身;電商主流程與輔流程分離;應(yīng)用與數(shù)據(jù)分離锌仅;服務(wù)與實(shí)現(xiàn)細(xì)節(jié)分離章钾。

3、抽象化

應(yīng)用抽象化:應(yīng)用只依賴服務(wù)抽象热芹,不依賴服務(wù)實(shí)現(xiàn)細(xì)節(jié)贱傀、位置。

數(shù)據(jù)庫(kù)抽象化:應(yīng)用只依賴邏輯數(shù)據(jù)庫(kù)剿吻,不需要關(guān)心物理庫(kù)的位置和分片窍箍。

服務(wù)器抽象化:應(yīng)用虛擬化部署,不需要關(guān)心實(shí)體機(jī)配置丽旅,動(dòng)態(tài)調(diào)配資源。

4纺棺、松耦合榄笙。

跨域調(diào)用異步化,不同業(yè)務(wù)域之間盡量異步接耦祷蝌。

非核心業(yè)務(wù)盡量異步化茅撞,核心和非核心業(yè)務(wù)之間,盡量異步接耦巨朦。

5米丘、容錯(cuò)設(shè)計(jì)。

服務(wù)自治:服務(wù)能彼此獨(dú)立修改糊啡、部署拄查、發(fā)布和管理。避免引發(fā)連鎖反應(yīng)棚蓄。

集群容錯(cuò):應(yīng)用系統(tǒng)集群堕扶,避免單點(diǎn)碍脏。

多機(jī)房容災(zāi):多機(jī)房部署,多活稍算。

04

京東商城應(yīng)用架構(gòu)分層

表現(xiàn)層典尾。包含首頁(yè)、列表頁(yè)糊探、詳情頁(yè)钾埂。

業(yè)務(wù)流程層。商品系統(tǒng)科平、交易系統(tǒng)褥紫、訂單系統(tǒng)、財(cái)務(wù)系統(tǒng)匠抗、物流系統(tǒng)等故源。

服務(wù)層,服務(wù)構(gòu)建層汞贸,其中包含:商品服務(wù)绳军、交易服務(wù)、訂單服務(wù)矢腻、財(cái)務(wù)服務(wù)门驾、物流服務(wù)。

在治理方面多柑,包括服務(wù)質(zhì)量層奶是、數(shù)據(jù)架構(gòu)層、治理層等竣灌。

京東應(yīng)用架構(gòu)分層? (來(lái)源于@京東技術(shù)部)

05

京東商城應(yīng)用架構(gòu)拆分原則

1聂沙、水平擴(kuò)展。也就是復(fù)制的能力初嘹,應(yīng)用系統(tǒng)實(shí)現(xiàn)多機(jī)集群及汉、提升并發(fā)能力,數(shù)據(jù)庫(kù)進(jìn)行讀寫(xiě)分離屯烦,如商品讀庫(kù)坷随、商品寫(xiě)庫(kù)。

2驻龟、垂直拆分温眉。指的是不同業(yè)務(wù)系統(tǒng)的拆分,如商品系統(tǒng)翁狐、交易系統(tǒng)类溢;數(shù)據(jù)庫(kù)方面也是相應(yīng)拆成商品庫(kù)、訂單庫(kù)谴蔑。

3豌骏、業(yè)務(wù)分片龟梦。同業(yè)務(wù)進(jìn)行分片,比如秒殺系統(tǒng)窃躲、常規(guī)下單系統(tǒng)计贰,要分開(kāi);數(shù)據(jù)庫(kù)方面蒂窒,如把訂單表按ID取模運(yùn)算后分庫(kù)分表躁倒。

4、水平拆分洒琢。服務(wù)層面秧秉,功能與非功能分開(kāi),穩(wěn)定業(yè)務(wù)與易變業(yè)務(wù)分開(kāi)衰抑;數(shù)據(jù)庫(kù)方面象迎,冷熱數(shù)據(jù)分離、歷史數(shù)據(jù)分離呛踊。

06

京東商城服務(wù)設(shè)計(jì)的依賴原則

1砾淌、依賴穩(wěn)定的部分。穩(wěn)定部分不依賴易變的部分谭网、易變的部分可以依賴穩(wěn)定的部分汪厨、堅(jiān)決避免循環(huán)依賴。

2愉择、跨域弱依賴劫乱。跨業(yè)務(wù)域調(diào)用的時(shí)候锥涕,盡可能異步弱依賴衷戈。

3、基于服務(wù)依賴层坠⊥讯瑁基于服務(wù)不能向上依賴流程服務(wù);組合服務(wù)窿春、流程服務(wù)可以向下依賴基本服務(wù)。條件是基本服務(wù)要穩(wěn)定采盒。

4旧乞、非功能性服務(wù)依賴。非功能性服務(wù)不能依賴功能性服務(wù)磅氨;功能性服務(wù)可依賴非功能性服務(wù)尺栖。條件:非功能性服務(wù)穩(wěn)定。

5烦租、平臺(tái)服務(wù)依賴延赌。平臺(tái)服務(wù)不依賴上層應(yīng)用除盏;上層應(yīng)用可依賴平臺(tái)服務(wù);條件:平臺(tái)服務(wù)穩(wěn)定挫以。

6者蠕、核心服務(wù)依賴。核心服務(wù)不依賴非核心服務(wù)掐松;非核心服務(wù)可依賴核心服務(wù)踱侣;條件:核心服務(wù)穩(wěn)定。

07

服務(wù)設(shè)計(jì)基本原則

1大磺、無(wú)狀態(tài)抡句。盡量不要把狀態(tài)數(shù)據(jù)保存在本機(jī),接口調(diào)用冪等性杠愧。

2待榔、可復(fù)用。復(fù)用顆粒度是有業(yè)務(wù)邏輯的抽象服務(wù)流济,不是服務(wù)實(shí)現(xiàn)細(xì)節(jié)锐锣。服務(wù)引用只依賴于服務(wù)抽象。

3袭灯、松耦合刺下。跨業(yè)務(wù)調(diào)用稽荧,盡可能異步解耦橘茉。必須同步調(diào)用時(shí),設(shè)置超時(shí)和隊(duì)列大小姨丈。相對(duì)穩(wěn)定的基本服務(wù)與易變流程服務(wù)分層畅卓。

4、可治理蟋恬。制定服務(wù)契約翁潘、服務(wù)可降級(jí)、服務(wù)可限流歼争、服務(wù)可開(kāi)關(guān)拜马、服務(wù)可監(jiān)控、白名單機(jī)制沐绒。

京東商城應(yīng)用架構(gòu)實(shí)例圖? (來(lái)源于@京東技術(shù)部)

08

京東商城數(shù)據(jù)架構(gòu)設(shè)計(jì)原則

1俩莽、統(tǒng)一數(shù)據(jù)視圖。保證數(shù)據(jù)的及時(shí)性乔遮,一致性扮超、準(zhǔn)確性、完整性。

2出刷、數(shù)據(jù)璧疗、應(yīng)用分離。應(yīng)用系統(tǒng)只依賴邏輯數(shù)據(jù)庫(kù)馁龟;應(yīng)用系統(tǒng)不直接訪問(wèn)其它宿主數(shù)據(jù)庫(kù)崩侠,只能通過(guò)服務(wù)訪問(wèn)。

3屁柏、數(shù)據(jù)異構(gòu)啦膜。源數(shù)據(jù)和目標(biāo)數(shù)據(jù)內(nèi)容相同時(shí),做索引異構(gòu)淌喻,如商品庫(kù)不同維度僧家。內(nèi)容不同時(shí),做數(shù)據(jù)庫(kù)異構(gòu)裸删,如訂單買(mǎi)家?guī)旌唾u(mài)家?guī)臁?/p>

4八拱、數(shù)據(jù)讀寫(xiě)分離。訪問(wèn)量大的數(shù)據(jù)庫(kù)做讀寫(xiě)分離涯塔,數(shù)據(jù)量大的數(shù)據(jù)庫(kù)做分庫(kù),不同業(yè)務(wù)域數(shù)據(jù)庫(kù)做分區(qū)隔離爹谭,重要數(shù)據(jù)配置備庫(kù)。

5、用Mysql等主流數(shù)據(jù)庫(kù)。除成本因素外,Mysql數(shù)據(jù)庫(kù)擴(kuò)展能力強(qiáng)配深,運(yùn)維積累了大量豐富經(jīng)驗(yàn)。

6缸托、合理使用緩存哺哼。數(shù)據(jù)庫(kù)有能力支撐時(shí),盡量不要引入緩存枢里。合理利用緩存做容災(zāi)豆胸。

(來(lái)源于@京東技術(shù)部)

(來(lái)源于@京東技術(shù)部)

09

京東商城技術(shù)架構(gòu)總覽

1、基本平臺(tái)。數(shù)據(jù)存取方面的技術(shù)組件包括:緩存服務(wù)有JFS/Jimstore尉尾、圖片服務(wù)JSS班套、即時(shí)服務(wù)JDW吆豹、索引服務(wù)Search、數(shù)據(jù)庫(kù)服務(wù)DBS宙橱。

2、集成層蘸拔。服務(wù)流程引擎PAF师郑、服務(wù)中間件SAF、MQ服務(wù)JDMQ调窍、數(shù)據(jù)庫(kù)中間件JDAL宝冕、調(diào)度服務(wù)JDWorker、業(yè)務(wù)規(guī)則服務(wù)JDRules陨晶、配置服務(wù)JDCenter猬仁、推送服務(wù)JMP。

3先誉、質(zhì)量層湿刽。監(jiān)控服務(wù)UMP、日志服務(wù)Loghub褐耳、風(fēng)控系統(tǒng)JDriskM诈闺、應(yīng)用管理jdcenter。

其它還包括治理層铃芦、虛擬平臺(tái)雅镊、運(yùn)營(yíng)管理等等。

(來(lái)源于@京東技術(shù)部)

10

京東商城系統(tǒng)運(yùn)維原則

1刃滓、可監(jiān)控仁烹。服務(wù)的TPS和RT是否符合SLA,是否出現(xiàn)超預(yù)期流量咧虎。

2卓缰、應(yīng)用可回滾,功能可降級(jí)砰诵。應(yīng)用出現(xiàn)問(wèn)題時(shí)征唬,要求能回滾到上一版本,或做功能降級(jí)茁彭。

3总寒、在線擴(kuò)容。超預(yù)期流量時(shí)理肺,應(yīng)用系統(tǒng)可選擇在線水平擴(kuò)展摄闸。

4善镰、安全保證。確保系統(tǒng)和保密性和完整性贪薪。具有足夠的防攻擊能力媳禁。

5、可容錯(cuò)性画切。核心應(yīng)用要求多活,避免單點(diǎn)設(shè)計(jì)囱怕,并且自身有容錯(cuò)和修復(fù)能力霍弹。故障恢復(fù)時(shí)間短。

6娃弓、可故障轉(zhuǎn)移典格。多機(jī)房部署,發(fā)生故障時(shí)能及時(shí)切換台丛。

(來(lái)源于@京東技術(shù)部)

以上跟大家分享了京東商城業(yè)務(wù)架構(gòu)耍缴、技術(shù)架構(gòu)、數(shù)據(jù)架構(gòu)挽霉,以及架構(gòu)原則防嗡、運(yùn)維原則。如果覺(jué)得本文對(duì)您有幫助侠坎,請(qǐng)點(diǎn)在看蚁趁、分享朋友圈,感謝您的支持实胸!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末他嫡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子庐完,更是在濱河造成了極大的恐慌钢属,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件门躯,死亡現(xiàn)場(chǎng)離奇詭異淆党,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)生音,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)宁否,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人缀遍,你說(shuō)我怎么就攤上這事慕匠。” “怎么了域醇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵台谊,是天一觀的道長(zhǎng)蓉媳。 經(jīng)常有香客問(wèn)我,道長(zhǎng)锅铅,這世上最難降的妖魔是什么酪呻? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮盐须,結(jié)果婚禮上玩荠,老公的妹妹穿的比我還像新娘。我一直安慰自己贼邓,他們只是感情好阶冈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著塑径,像睡著了一般女坑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上统舀,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天匆骗,我揣著相機(jī)與錄音,去河邊找鬼誉简。 笑死碉就,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的描融。 我是一名探鬼主播铝噩,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼窿克!你這毒婦竟也來(lái)了骏庸?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤年叮,失蹤者是張志新(化名)和其女友劉穎具被,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體只损,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡一姿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了跃惫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叮叹。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖爆存,靈堂內(nèi)的尸體忽然破棺而出蛉顽,到底是詐尸還是另有隱情,我是刑警寧澤先较,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布携冤,位于F島的核電站悼粮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏曾棕。R本人自食惡果不足惜扣猫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翘地。 院中可真熱鬧申尤,春花似錦、人聲如沸衙耕。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)臭杰。三九已至,卻和暖如春谚中,著一層夾襖步出監(jiān)牢的瞬間渴杆,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工宪塔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留磁奖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓某筐,卻偏偏與公主長(zhǎng)得像比搭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子南誊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容