客戶信息的增長(zhǎng)速度超過(guò)了其他所有數(shù)據(jù)的增長(zhǎng),或者你需要在要擴(kuò)展的某些客戶群之間執(zhí)行故障隔離。Z軸拆分除了有助于擴(kuò)展客戶群,還適用于其他不能采用Y軸拆分方法的大型數(shù)據(jù)集合。
通常被稱為數(shù)據(jù)分片,即把數(shù)據(jù)集合或服務(wù)分割成幾片。這些數(shù)據(jù)片一般大小相同,但如果有必要的話,也有可能大小不同。這樣做的原因之一就是讓你推出的應(yīng)用能夠先只影響小部分客戶,當(dāng)你認(rèn)為自己已經(jīng)發(fā)現(xiàn)并解決了主要問(wèn)題后,再逐漸應(yīng)用于更多的客戶,從而降低了風(fēng)險(xiǎn)。
通常,我們都是根據(jù)對(duì)請(qǐng)求者或客戶的了解進(jìn)行分片的。假設(shè)我們提供的是打卡和考勤管理系統(tǒng),而客戶是雇員數(shù)大于1000的企業(yè)級(jí)客戶,我們負(fù)責(zé)對(duì)每個(gè)客戶的員工進(jìn)行考勤跟蹤。我們可能會(huì)決定按照公司進(jìn)行分片,即每個(gè)公司都有自己專用的Web頁(yè)面、應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器??紤]到我們還想利用多租戶架構(gòu)帶來(lái)的節(jié)約成本的好處,那么可以把幾家小公司劃分到一個(gè)數(shù)據(jù)片中。擁有許多員工的大公司可以有專用的硬件,而員工相對(duì)較少的小公司則可以共同存在于較大的數(shù)據(jù)片中。利用員工和公司之間的關(guān)系把系統(tǒng)劃分成了可擴(kuò)展的幾部分,從而能夠采用較少的、成本較低的硬件,實(shí)現(xiàn)橫向擴(kuò)展。
如果我們是手機(jī)廣告服務(wù)提供商,就必須了解終端用戶所用設(shè)備及其運(yùn)營(yíng)商,兩者都很引人注目,都可用于劃分?jǐn)?shù)據(jù)。如果我們是電子商務(wù)運(yùn)營(yíng)商,那么可以根據(jù)用戶的所在地劃分用戶群,這樣能有效地利用配送中心的可用庫(kù)存?;蛘咭部梢愿鶕?jù)客戶的新老程度、購(gòu)買次數(shù)和購(gòu)買金額劃分客戶。如果這些方法都失敗了,那么可以利用在用戶注冊(cè)時(shí)分配給他的用戶ID的模數(shù)或散列表進(jìn)行劃分。
為什么要拆分相近的東西呢?對(duì)于高速增長(zhǎng)的公司來(lái)說(shuō),答案顯而易見(jiàn)。響應(yīng)請(qǐng)求的速度部分是由遠(yuǎn)近位置不同的緩存命中率決定的。該速度決定了一個(gè)系統(tǒng)能夠處理多少個(gè)事務(wù),從而決定了處理一定數(shù)量的請(qǐng)求,需要多少個(gè)系統(tǒng)。一種極端情況,是對(duì)數(shù)據(jù)不做劃分,那么當(dāng)我們要響應(yīng)一個(gè)用戶的請(qǐng)求,從而需要遍歷一塊巨大的數(shù)據(jù)時(shí),事務(wù)處理的速度會(huì)慢得令人難以忍受。當(dāng)響應(yīng)請(qǐng)求的速度至關(guān)重要,而響應(yīng)請(qǐng)求要查詢的數(shù)據(jù)巨大時(shí),拆分不同的東西或者拆分相近的東西就勢(shì)在必行了。
拆分相近的東西顯然并不局限于拆分客戶,但是根據(jù)我們的咨詢經(jīng)驗(yàn),拆分客戶是最常見(jiàn)也最簡(jiǎn)單的方法。有時(shí),我們也推薦拆分產(chǎn)品目錄。不過(guò)對(duì)于要把各種各樣的產(chǎn)品目錄拆分成草坪躺椅和尿布這樣的數(shù)據(jù)項(xiàng)的情況,我們會(huì)把它歸為拆分不同的在西我們也曾幫助客戶利用事務(wù)ID的模數(shù)或散列表進(jìn)行劃分。在這種情況下,我們對(duì)請(qǐng)求者一無(wú)所知,但我們卻有一個(gè)能夠利用的單一增長(zhǎng)的網(wǎng)站建設(shè)數(shù)值。對(duì)于要保存事務(wù)日志以便將來(lái)能夠研究其中錯(cuò)誤的系統(tǒng),可以采用這種類型的劃分。
本文地址:http://m.cdrpkj.cn//article/3455.html