AWS的每個區域一般由多個可用區(AZ)組成,而可用區一般是由多個數據中心組成。AWS引入可用區設計主要是為了提升用戶應用程序的高可用性。因為可用區與可用區之間在設計上是相互獨立的,也就是說它們會有獨立的供電、獨立的網絡等,這樣假如一個可用區出現問題時也不會影響另外的可用區。在一個區域內,可用區與可用區之間是通過高速網絡連接,從而保證很低的延時。
3EVCache 的高可用性

AWS的每個區域一般由多個可用區(AZ)組成,而可用區一般是由多個
數據中心組成。AWS引入可用區設計主要是為了提升用戶應用程序的高可用性。因為可用區與可用區之間在設計上是相互獨立的,也就是說它們會有獨立的供電、獨立的網絡等,這樣假如一個可用區出現問題時也不會影響另外的可用區。在一個區域內,可用區與可用區之間是通過高速網絡連接,從而保證很低的延時。
EVCache實例通過將Amazon EC2放到多個可用區, 能夠預防應用的單點故障。無論在相同的物理區域內還是在不同的物理區域之間,在多個AZ上運行獨立的應用都是非常重要的。如果一個可用區失效了,在其它可用區上的應用可以繼續運行,從而實現高可用性。
由于跨越了多個亞馬遜
云服務可用區,EVCache集群是不會掛掉的。當其中的實例偶然掛掉時,通過一致性哈希跨集群分片來使緩存的影響降到最低。
在保持高可用性的同時,操作EVCache集群的總體成本很低,因為緩存沒有命中時訪問亞馬遜云服務服務的成本較高,如訪問SimpleDB、AWS S3、EC2上的Cassandra等等。EVCache 集群的總體成本在高穩定,線性擴展的條件下還是令人滿意的。
隱藏在需求后面的是數據或狀態所需要的每個請求服務,必須是跨地區可用的。高可靠性
數據庫和高性能緩存是支持分布式架構的基礎設施,一個典型場景是將緩存架構于數據庫前面或其它持久存儲前面。如果沒有緩存的全局復制,一個地區的的會員切換到另外一個地區時,會在新的地區緩存中沒有原地區的數據,這種情況稱為冷緩存。處理這種緩存數據丟失的辦法只有重新從數據庫加載,但是這種方式會延長響應時間并對數據庫形成巨大沖擊,EVCache 除了跨可用區復制之外,還提供了跨區域復制,對基于AWS的高可用性進行了增強。
4EVCache的典型應用場景
Netflix的用戶體驗重度依賴于大容量、低時延、全球可用的緩存數據層。例如,用戶坐在沙發上看電影或者電視節目,在用戶的每一次交互中都有緩存的身影,從會話存儲到視頻歷史,到用戶狀態,都得益于EVCache的穩定和高容錯性。
這里介紹一個典型的用例——向用戶推薦與已看歷史中節目類似的電影或者電視節目。
內容相似性推薦服務給出了與已看歷史中節目類似的電影或者電視節目的相似性列表。一旦計算出了相似性,就存儲在SimpleDB/S3 中,前端使用EVCache。當任何應用或者算法需要這些數據的時候,可以從 EVCache提取數據,并返回結果。具體過程如下:
一個客戶向Web應用發了一個頁面請求,處理這一請求需要得到一個電影或電視節目的相似性列表
Web應用查詢 EVCache 來得到這些數據,這樣場景的典型緩存命中率高于99.9%
如果緩存沒有命中, Web應用將調用相似性計算服務來計算這些數據
如果已經計算過的數據也沒有命中的話, 相似性計算服務將從 SimpleDB中讀取數據。如果在SimpleDB 沒有,相似性計算服務根據給出的電影或電視節目重新計算相似性
相似性計算服務在計算出電影或電視節目的數據后,將數據寫入到 EVCache中
最后,相似性計算服務生成客戶端所需要的響應并返回給客戶端
EVCache 是線性擴展的,通過容量監控,可以在一分鐘內擴容,在幾分鐘內完成重新均衡和數據預熱。
以上就是我們關于云服務融入分布式緩存
系統架構的簡要分析,希望對大家有所幫助。