客戶(hù)信息的增長(cháng)速度超過(guò)了其他所有數據的增長(cháng),或者你需要在要擴展的某些客戶(hù)群之間執行故障隔離。Z軸拆分除了有助于擴展客戶(hù)群,還適用于其他不能采用Y軸拆分方法的大型數據集合。
通常被稱(chēng)為數據分片,即把數據集合或服務(wù)分割成幾片。這些數據片一般大小相同,但如果有必要的話(huà),也有可能大小不同。這樣做的原因之一就是讓你推出的應用能夠先只影響小部分客戶(hù),當你認為自己已經(jīng)發(fā)現并解決了主要問(wèn)題后,再逐漸應用于更多的客戶(hù),從而降低了風(fēng)險。

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