優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利

利用應(yīng)用緩存

盡可能減少系統(tǒng)中的時(shí)間緩存。由于大多數(shù) RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))具有ACID屬性,要擴(kuò)展具有時(shí)間約來的系統(tǒng)非常難。要慎重考慮對(duì)于約來的需水,如要水從用戶看到物品直到購買它時(shí)它一直可用。對(duì)于某些邊緣情況,補(bǔ)償用戶的失望比不能拓展系統(tǒng)好得多。



在你常用的搜索引上簡單搜索一下,就能找到關(guān)于該主題的免費(fèi)好建議。我們要介紹的是兩個(gè)基礎(chǔ)要點(diǎn):

第一,如果你想以具有成本效益的方式進(jìn)行擴(kuò)展,必須采用應(yīng)用層緩存;

口第二,這種緩存方式必須從系統(tǒng)架構(gòu)的角度開發(fā),以使其長期有效。

按照服務(wù)或資源(Y軸)劃分平臺(tái)(或架構(gòu)),或者按照你對(duì)請(qǐng)求者或客戶了解的某一項(xiàng)進(jìn)行劃分(Z軸),會(huì)為服務(wù)請(qǐng)求提供巨大的數(shù)據(jù)可緩存性。問題是,采用不同的軸或原則劃分各自能獲得多大的好處隨著開發(fā)了新特性或功能,有了新的數(shù)據(jù)需求,這個(gè)問題的答案會(huì)改變。
 
那么實(shí)現(xiàn)方法就要隨之改變,以適應(yīng)不斷改變的業(yè)務(wù)需求。但識(shí)別這些改變的需求的過程是相同的。學(xué)習(xí)型的組織需要不斷分析產(chǎn)品流量、每個(gè)交易的成本以及用戶感知的響應(yīng)時(shí)間,以便在生產(chǎn)環(huán)境中出現(xiàn)瓶頸的早期跡象時(shí)就識(shí)別出來,把數(shù)據(jù)交給架構(gòu)組對(duì)產(chǎn)品進(jìn)行修改。

這個(gè)問題的關(guān)鍵是,哪種類型的劃分或細(xì)致劃分可以使系統(tǒng)或平臺(tái)在擴(kuò)展性和成本方面獲得最大的好處。通過實(shí)現(xiàn)正確的劃分并在應(yīng)用服務(wù)器上緩存數(shù)據(jù),完全可能用100臺(tái)或10萬臺(tái)服務(wù)器處理相當(dāng)于當(dāng)前生產(chǎn)環(huán)境流量的兩倍、三倍甚至十倍的流量。為了說明這一點(diǎn),讓我們看個(gè)常用的電子商務(wù)站點(diǎn)的例子,這是一個(gè)相當(dāng)?shù)湫偷膶W⒂跐M足業(yè)務(wù)需求SaaS站點(diǎn),還是一個(gè)社交網(wǎng)絡(luò)或在社交網(wǎng)站。

我們的電子商務(wù)站點(diǎn)具有很多功能,包括搜素、瀏覽、圖像查看(包括縮放)、賬戶更新、登錄、購物車、登出、建議物品,等等。對(duì)當(dāng)前生產(chǎn)環(huán)境流量的分析表明,最常用的功能(包括搜索、瀏覽和建議物品)涉及80%的交易,而這些交易涉及的商品不到總量的20%。這里可以利用帕累托法則,對(duì)這些類型的服務(wù)進(jìn)行Y軸(功能性的)劃分,讓相對(duì)較少的對(duì)象獲得較高的命中率。這種方法的緩存性比較高,動(dòng)態(tài)系統(tǒng)可以受益于以前相似的請(qǐng)求得到的結(jié)果。

我們還發(fā)現(xiàn)存在大量的超級(jí)用戶,他們的請(qǐng)求相當(dāng)頻繁。對(duì)于那些與用戶相關(guān)的功能,如登錄、購物車、賬戶更新(或其他賬戶信息)等,可以采用Z軸劃分。雖然我們可以對(duì)這些事件進(jìn)行假設(shè),但顯然從現(xiàn)有的盈利站點(diǎn)獲取真正的產(chǎn)品數(shù)據(jù)更有助于我們做決定。

再舉一個(gè)例子,假設(shè)我們有一個(gè)SaaS業(yè)務(wù),通過電話服務(wù)、電子郵件服務(wù)、聊天服務(wù)和關(guān)系管理系統(tǒng)幫助公司進(jìn)行客戶支持。在這個(gè)系統(tǒng)中,任何特定業(yè)務(wù)都有許多特有的原則。對(duì)于每個(gè)業(yè)務(wù),這些原則可能都需要大量的內(nèi)存來緩存這些規(guī)則以及業(yè)務(wù)運(yùn)維所必需的數(shù)據(jù)。如果你已經(jīng)得出了結(jié)論,即面向客戶的劃分或者說Z軸劃分是正確的方法,那么你是對(duì)的。但我們還想在數(shù)據(jù)庫和應(yīng)用方面都維持多租戶的假象。如何實(shí)現(xiàn)這一點(diǎn),并且把最常訪問的用戶緩存起來,以便進(jìn)行具有成本效

益的擴(kuò)展呢?我們]的答案還是帕累托法則。最大業(yè)務(wù)的20%可能占總交易量的80%(我們的大部分客戶都存在這種情況),我們可以將它們分布在幾個(gè)劃分的數(shù)據(jù)庫上。要獲得成本的杠桿作用,可以把80%6較小的用戶平均分布到所有劃分的數(shù)據(jù)庫上。這里的理論依據(jù)是訪問較少的公司緩存命中率較低,即使它們存在于自己之中。因此,我們可以讓較大的客戶從緩存中獲益,同時(shí)從較小的客戶那里得到成本杠桿。除非我們把較小的客戶放在它們專用的系統(tǒng)中,否則它們的的體驗(yàn)與大客戶不會(huì)有明顯的不同,而眾所周知,這樣做,我們]不能得到SaaS環(huán)境帶給我們的預(yù)期收益。

最后一個(gè)例子是處理社交網(wǎng)絡(luò)或交互式站點(diǎn)。你可能已經(jīng)預(yù)料到了我們?nèi)匀灰獞?yīng)用帕累托法則和從我們的生產(chǎn)環(huán)境得到的信息,幫助我們進(jìn)行決策。社交網(wǎng)絡(luò)通常會(huì)有少量的用戶產(chǎn)生令人難以置信的大流量。有時(shí),這些用戶可能是活躍的消費(fèi)者,有時(shí)他們則是活躍的生產(chǎn)者(其他用戶的目的地),而有時(shí)則兩者兼?zhèn)洹?br />
第一步,我們要識(shí)別是否有一小部分信息或子站點(diǎn)占據(jù)了大量的“讀”流量。在社交網(wǎng)絡(luò)中,這種節(jié)點(diǎn)可以在我們設(shè)計(jì)架構(gòu)時(shí)提供指引,使我們對(duì)那些生產(chǎn)者執(zhí)行Z軸劃分,從而在讀操作方面,使它們的節(jié)高具有高緩存性。假設(shè)帕累托法則成立(通常成立),我們用少量的服務(wù)器提供了將近80%的讀流量。我們的股東會(huì)很高興,因?yàn)橐苑浅5偷馁Y本密集度就可以服務(wù)于那些請(qǐng)求。

對(duì)于社交網(wǎng)絡(luò)中非常積極的內(nèi)容生產(chǎn)者和更新,又該如何呢?根據(jù)它們的內(nèi)容是否具有很高的消費(fèi)(讀)率或是否基本處于休眠狀態(tài),這個(gè)問題的答案有所不同。對(duì)于用戶具有高生產(chǎn)(寫更新)率和高消費(fèi)(讀) 率的情況,可以直接把它的內(nèi)容存發(fā)布到讀取它的那個(gè)分區(qū)或節(jié)點(diǎn)上。如果隨著這些節(jié)點(diǎn)越來越熱門,讀寫沖突成為問題了,那么我們可以使用讀復(fù)制和水平擴(kuò)展技術(shù)(X軸劃分),或者開始考慮如何對(duì)這些更新進(jìn)行排序,并異步地應(yīng)用它們隨著我們不斷地成熟,可以把這些技術(shù)混合起來使用。如果使用了從瀏覽器到CDN到頁面緩存和應(yīng)用緩存的各種緩存技術(shù)之后,仍然有問題,那么可以繼續(xù)細(xì)化我們的劃分。我們可以給特定用戶的更新分出級(jí)別,根據(jù)內(nèi)容分界線劃分它們(另一種類型的Y軸劃分),或者,我們可以繼續(xù)創(chuàng)建數(shù)據(jù)實(shí)例的副本(X軸劃分)。也許我們發(fā)現(xiàn)要讀的信息有特殊的地理偏向性,某些類型的新聞就屬于這種情況,那么可以根據(jù)請(qǐng)求的地理位置決定的邊界劃分?jǐn)?shù)據(jù),請(qǐng)求是我們了解的有關(guān)請(qǐng)求者的信息,因此,這是另一種類型的Z軸劃分。

但愿你已經(jīng)發(fā)現(xiàn)了這個(gè)原則中的模式。第一步是推測可能使用的劃分方法,并決定采用哪種劃分方法可以最大化網(wǎng)站建設(shè)緩存性。在應(yīng)用和支持層面的永久性數(shù)據(jù)存儲(chǔ)中實(shí)現(xiàn)這些劃分后,在生產(chǎn)環(huán)境中評(píng)估它們的有效性。基于生產(chǎn)數(shù)據(jù)進(jìn)一步細(xì)化你的方法,并迭代性地應(yīng)用帕累托法則和AKF擴(kuò)展立方,來細(xì)化和提高緩存命中率。

本文地址:http://m.cdrpkj.cn//article/3478.html
相關(guān)文章:
最新文章: