數(shù)據(jù)訪問熱點,比如詳情系統(tǒng)中某些熱點商品的訪問度非常高,即使是Tar緩存這種 Cache本身也有瓶頸問題,一旦請求量達(dá)到單機的極限也會存在熱點保護(hù)問題。有時候看起來好像很容易解決,比如只需要做好限流,但是一且某個熱點觸發(fā)了一臺機器的限流閥值,那么整臺機器 Cache的數(shù)據(jù)都將無效,進(jìn)而間接導(dǎo)致 Cache被擊穿,請求都落到應(yīng)用的數(shù)據(jù)庫中,出現(xiàn)雪崩現(xiàn)象。所以這類問題需要與具體的 Cache產(chǎn)品結(jié)合才能有比較好的解決方案。
一個通用的解決思路是:在 Cache的 client.端做本地的 Localcache,當(dāng)發(fā)現(xiàn)熱點數(shù)據(jù)時直接 Cache在 client里,而不要請求到 Cache的 Server。
數(shù)據(jù)更新熱點。數(shù)據(jù)更新問題除了前面介紹的熱點隔離和排隊處理之外,還有些場景對商品的 lastmodifytime字段更新會非常頻繁,在某些場景下這些多條SQL是可以合并的,一定時間內(nèi)只執(zhí)行最后一條SQL就行了,這樣可以減少對數(shù)據(jù)庫的 update操作。另外,熱點商品的自動遷移理論上也可以在數(shù)據(jù)路由層完成,利用前面介紹的熱點實時發(fā)現(xiàn)功能,自動從普通庫里把熱點數(shù)據(jù)遷移出來放到單獨的熱點庫中。
按照某種維度建立的索引產(chǎn)生的熱點數(shù)據(jù),比如實時搜索中按照商品維度關(guān)聯(lián)的評價數(shù)據(jù)。有些熱點商品的評價非常多,導(dǎo)致搜索系統(tǒng)在按照商品ID建立評價數(shù)據(jù)的索引時,內(nèi)存已經(jīng)存不了了。交易維度關(guān)聯(lián)訂單信息也同樣有這些問題。這類熱點數(shù)據(jù)需要做數(shù)據(jù)的散列,需要再增加一個維度,重新組織數(shù)據(jù)。
全局基礎(chǔ)設(shè)施優(yōu)化:資源調(diào)度優(yōu)化
全局基礎(chǔ)設(shè)施的優(yōu)化。我們做應(yīng)用層的優(yōu)化一般都比較關(guān)注網(wǎng)站建設(shè)軟件本身的優(yōu)化,但是支撐應(yīng)用運行的基礎(chǔ)環(huán)境,往往有更大的優(yōu)化空間?;A(chǔ)設(shè)施包括基礎(chǔ)應(yīng)用容器如JDK、 Tomcat、VM,操作系統(tǒng)和文件系統(tǒng)甚至硬件設(shè)備,它們其實都有優(yōu)本章我們重點闡述資源調(diào)度的優(yōu)化,因為它最具普追性、價值也更大 化的空間,而且由于基礎(chǔ)設(shè)施的優(yōu)化是事關(guān)全局的,所以通用性會更廣、收益會更大。
本文地址:http://m.cdrpkj.cn//article/4542.html