官术网_书友最值得收藏!

3.1 業(yè)務(wù)場(chǎng)景:億級(jí)訂單數(shù)據(jù)如何實(shí)現(xiàn)快速讀寫

這次項(xiàng)目的對(duì)象是電商系統(tǒng)。該系統(tǒng)中大數(shù)據(jù)量的實(shí)體有兩個(gè):用戶和訂單。每個(gè)實(shí)體涵蓋的數(shù)據(jù)量見表3-1。

表3-1 數(shù)據(jù)量

某天,領(lǐng)導(dǎo)召集IT部門人員開會(huì),說:“根據(jù)市場(chǎng)推廣的趨勢(shì),我們的訂單很快就會(huì)上億,每天會(huì)有100萬的新訂單。不要問我這個(gè)數(shù)據(jù)怎么出來的,總之,領(lǐng)導(dǎo)交代,讓IT部門提前做好技術(shù)準(zhǔn)備,以防到時(shí)候系統(tǒng)撐不住”。

那時(shí)候同事們內(nèi)心是這樣想的:“又聽市場(chǎng)吹牛吧”。領(lǐng)導(dǎo)看了同事們的表情,也知道大家在想什么,他說:“我知道你們不相信,我也不相信。但是現(xiàn)在領(lǐng)導(dǎo)給大家任務(wù)了,要求系統(tǒng)可以支持上億訂單和每日百萬新訂單,服務(wù)器可以采購(gòu)。”

做這個(gè)規(guī)劃之前,存儲(chǔ)訂單的數(shù)據(jù)庫(kù)表是一個(gè)單庫(kù)單表。可以預(yù)見,在不久的將來數(shù)據(jù)庫(kù)的I/O和CPU就可能支撐不住,因?yàn)橛唵蜗到y(tǒng)原來就不是很快。

然后項(xiàng)目組做了簡(jiǎn)單的功能,插入一些測(cè)試數(shù)據(jù),訂單量到2000萬的時(shí)候,響應(yīng)時(shí)長(zhǎng)就不可接受了。

為了使系統(tǒng)能承受這種日百萬級(jí)新訂單的壓力,項(xiàng)目組探討過很多解決方案,最終決定使用分表分庫(kù):先將訂單表拆分,再進(jìn)行分布存儲(chǔ)。

原來的訂單表就是一個(gè)sale數(shù)據(jù)庫(kù)里面的一張order表,之后就會(huì)創(chuàng)建多個(gè)order數(shù)據(jù)庫(kù)order1,order2,order3,order4,……,每個(gè)數(shù)據(jù)庫(kù)里面又有多張訂單表t_order_1,t_order_2,t_order_3,……。

當(dāng)然,訂單子表也是多張:t_order_item_1,t_order_item_2,t_order_item_3,……。

訂單數(shù)據(jù)根據(jù)一定的規(guī)律分布存儲(chǔ)在不同order庫(kù)里的不同order表中。

其實(shí)項(xiàng)目組并不是一開始就打算用分表分庫(kù),當(dāng)初也評(píng)估了一下拆分存儲(chǔ)的其他技術(shù)方案。接下來介紹當(dāng)時(shí)是怎么選型的。

主站蜘蛛池模板: 高陵县| 石泉县| 门源| 西安市| 塘沽区| 句容市| 汽车| 凤庆县| 迁安市| 和田市| 汉沽区| 宜都市| 当涂县| 新河县| 屏东市| 黄平县| 漯河市| 赤水市| 太仓市| 巴彦淖尔市| 依安县| 峨山| 梨树县| 酉阳| 湟源县| 沂南县| 昭苏县| 中超| 德昌县| 磴口县| 永福县| 上杭县| 钟祥市| 荔浦县| 措勤县| 桦南县| 浦江县| 新邵县| 周宁县| 阿城市| 广德县|