數據訪(fǎng)問(wèn)熱點(diǎn),比如詳情系統中某些熱點(diǎn)商品的訪(fǎng)問(wèn)度非常高,即使是Tar緩存這種 Cache本身也有瓶頸問(wèn)題,一旦請求量達到單機的極限也會(huì )存在熱點(diǎn)保護問(wèn)題。有時(shí)候看起來(lái)好像很容易解決,比如只需要做好限流,但是一且某個(gè)熱點(diǎn)觸發(fā)了一臺機器的限流閥值,那么整臺機器 Cache的數據都將無(wú)效,進(jìn)而間接導致 Cache被擊穿,請求都落到應用的數據庫中,出現雪崩現象。所以這類(lèi)問(wèn)題需要與具體的 Cache產(chǎn)品結合才能有比較好的解決方案。

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