利用應(yīng)用緩存

2022-05-06    分類: 網(wǎng)站建設(shè)

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

在你常用的搜索引上簡單搜索一下,就能找到關(guān)于該主題的免費(fèi)好建議。我們要介紹的是兩個基礎(chǔ)要點(diǎn):
第一,如果你想以具有成本效益的方式進(jìn)行擴(kuò)展,必須采用應(yīng)用層緩存;
口第二,這種緩存方式必須從系統(tǒng)架構(gòu)的角度開發(fā),以使其長期有效。
按照服務(wù)或資源(Y軸)劃分平臺(或架構(gòu)),或者按照你對請求者或客戶了解的某一項進(jìn)行劃分(Z軸),會為服務(wù)請求提供巨大的數(shù)據(jù)可緩存性。問題是,采用不同的軸或原則劃分各自能獲得多大的好處隨著開發(fā)了新特性或功能,有了新的數(shù)據(jù)需求,這個問題的答案會改變。
那么實現(xiàn)方法就要隨之改變,以適應(yīng)不斷改變的業(yè)務(wù)需求。但識別這些改變的需求的過程是相同的。學(xué)習(xí)型的組織需要不斷分析產(chǎn)品流量、每個交易的成本以及用戶感知的響應(yīng)時間,以便在生產(chǎn)環(huán)境中出現(xiàn)瓶頸的早期跡象時就識別出來,把數(shù)據(jù)交給架構(gòu)組對產(chǎn)品進(jìn)行修改。
這個問題的關(guān)鍵是,哪種類型的劃分或細(xì)致劃分可以使系統(tǒng)或平臺在擴(kuò)展性和成本方面獲得大的好處。通過實現(xiàn)正確的劃分并在應(yīng)用服務(wù)器上緩存數(shù)據(jù),完全可能用100臺或10萬臺服務(wù)器處理相當(dāng)于當(dāng)前生產(chǎn)環(huán)境流量的兩倍、三倍甚至十倍的流量。為了說明這一點(diǎn),讓我們看個常用的電子商務(wù)站點(diǎn)的例子,這是一個相當(dāng)?shù)湫偷膶W⒂跐M足業(yè)務(wù)需求SaaS站點(diǎn),還是一個社交網(wǎng)絡(luò)或在社交網(wǎng)站。
我們的電子商務(wù)站點(diǎn)具有很多功能,包括搜素、瀏覽、圖像查看(包括縮放)、賬戶更新、登錄、購物車、登出、建議物品,等等。對當(dāng)前生產(chǎn)環(huán)境流量的分析表明,最常用的功能(包括搜索、瀏覽和建議物品)涉及80%的交易,而這些交易涉及的商品不到總量的20%。這里可以利用帕累托法則,對這些類型的服務(wù)進(jìn)行Y軸(功能性的)劃分,讓相對較少的對象獲得較高的命中率。這種方法的緩存性比較高,動態(tài)系統(tǒng)可以受益于以前相似的請求得到的結(jié)果。
我們還發(fā)現(xiàn)存在大量的超級用戶,他們的請求相當(dāng)頻繁。對于那些與用戶相關(guān)的功能,如登錄、購物車、賬戶更新(或其他賬戶信息)等,可以采用Z軸劃分。雖然我們可以對這些事件進(jìn)行假設(shè),但顯然從現(xiàn)有的盈利站點(diǎn)獲取真正的產(chǎn)品數(shù)據(jù)更有助于我們做決定。
再舉一個例子,假設(shè)我們有一個SaaS業(yè)務(wù),通過電話服務(wù)、電子郵件服務(wù)、聊天服務(wù)和關(guān)系管理系統(tǒng)幫助公司進(jìn)行客戶支持。在這個系統(tǒng)中,任何特定業(yè)務(wù)都有許多特有的原則。對于每個業(yè)務(wù),這些原則可能都需要大量的內(nèi)存來緩存這些規(guī)則以及業(yè)務(wù)運(yùn)維所必需的數(shù)據(jù)。如果你已經(jīng)得出了結(jié)論,即面向客戶的劃分或者說Z軸劃分是正確的方法,那么你是對的。但我們還想在數(shù)據(jù)庫和應(yīng)用方面都維持多租戶的假象。如何實現(xiàn)這一點(diǎn),并且把最常訪問的用戶緩存起來,以便進(jìn)行具有成本效
益的擴(kuò)展呢?我們]的答案還是帕累托法則。大業(yè)務(wù)的20%可能占總交易量的80%(我們的大部分客戶都存在這種情況),我們可以將它們分布在幾個劃分的數(shù)據(jù)庫上。要獲得成本的杠桿作用,可以把80%6較小的用戶平均分布到所有劃分的數(shù)據(jù)庫上。這里的理論依據(jù)是訪問較少的公司緩存命中率較低,即使它們存在于自己之中。因此,我們可以讓較大的客戶從緩存中獲益,同時從較小的客戶那里得到成本杠桿。除非我們把較小的客戶放在它們專用的系統(tǒng)中,否則它們的的體驗與大客戶不會有明顯的不同,而眾所周知,這樣做,我們]不能得到SaaS環(huán)境帶給我們的預(yù)期收益。
最后一個例子是處理社交網(wǎng)絡(luò)或交互式站點(diǎn)。你可能已經(jīng)預(yù)料到了我們?nèi)匀灰獞?yīng)用帕累托法則和從我們的生產(chǎn)環(huán)境得到的信息,幫助我們進(jìn)行決策。社交網(wǎng)絡(luò)通常會有少量的用戶產(chǎn)生令人難以置信的大流量。有時,這些用戶可能是活躍的消費(fèi)者,有時他們則是活躍的生產(chǎn)者(其他用戶的目的地),而有時則兩者兼?zhèn)洹?br/>第一步,我們要識別是否有一小部分信息或子站點(diǎn)占據(jù)了大量的“讀”流量。在社交網(wǎng)絡(luò)中,這種節(jié)點(diǎn)可以在我們設(shè)計架構(gòu)時提供指引,使我們對那些生產(chǎn)者執(zhí)行Z軸劃分,從而在讀操作方面,使它們的節(jié)高具有高緩存性。假設(shè)帕累托法則成立(通常成立),我們用少量的服務(wù)器提供了將近80%的讀流量。我們的股東會很高興,因為以非常低的資本密集度就可以服務(wù)于那些請求。
對于社交網(wǎng)絡(luò)中非常積極的內(nèi)容生產(chǎn)者和更新,又該如何呢?根據(jù)它們的內(nèi)容是否具有很高的消費(fèi)(讀)率或是否基本處于休眠狀態(tài),這個問題的答案有所不同。對于用戶具有高生產(chǎn)(寫更新)率和高消費(fèi)(讀) 率的情況,可以直接把它的內(nèi)容存發(fā)布到讀取它的那個分區(qū)或節(jié)點(diǎn)上。如果隨著這些節(jié)點(diǎn)越來越熱門,讀寫沖突成為問題了,那么我們可以使用讀復(fù)制和水平擴(kuò)展技術(shù)(X軸劃分),或者開始考慮如何對這些更新進(jìn)行排序,并異步地應(yīng)用它們隨著我們不斷地成熟,可以把這些技術(shù)混合起來使用。如果使用了從瀏覽器到CDN到頁面緩存和應(yīng)用緩存的各種緩存技術(shù)之后,仍然有問題,那么可以繼續(xù)細(xì)化我們的劃分。我們可以給特定用戶的更新分出級別,根據(jù)內(nèi)容分界線劃分它們(另一種類型的Y軸劃分),或者,我們可以繼續(xù)創(chuàng)建數(shù)據(jù)實例的副本(X軸劃分)。也許我們發(fā)現(xiàn)要讀的信息有特殊的地理偏向性,某些類型的新聞就屬于這種情況,那么可以根據(jù)請求的地理位置決定的邊界劃分?jǐn)?shù)據(jù),請求是我們了解的有關(guān)請求者的信息,因此,這是另一種類型的Z軸劃分。
但愿你已經(jīng)發(fā)現(xiàn)了這個原則中的模式。第一步是推測可能使用的劃分方法,并決定采用哪種劃分方法可以大化網(wǎng)站建設(shè)緩存性。在應(yīng)用和支持層面的永久性數(shù)據(jù)存儲中實現(xiàn)這些劃分后,在生產(chǎn)環(huán)境中評估它們的有效性?;谏a(chǎn)數(shù)據(jù)進(jìn)一步細(xì)化你的方法,并迭代性地應(yīng)用帕累托法則和AKF擴(kuò)展立方,來細(xì)化和提高緩存命中率。

分享文章:利用應(yīng)用緩存
文章源于:http://www.bm7419.com/news16/150716.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、微信小程序、網(wǎng)站維護(hù)網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司