1. 程式人生 > >Memcached學習筆記之六:memcached高可用叢集原理及介紹

Memcached學習筆記之六:memcached高可用叢集原理及介紹

首先我要宣告的是為什麼叫分散式叢集?
因為我們要達到的目的是要把快取放到2臺搭建在不同的伺服器上面的memcached,所以我們如果兩個memcached中放的是一樣的資料,那麼就是叢集,如果是根據業務不同而放不一樣的資料就是分散式!

memcached在實現分散式群集部署時,memcached服務之間是不能進行通訊的,分散式也是通過客戶端的演算法吧資料儲存在不同的memcached中,所以當我們做完群集客戶端往裡面寫入資料時,會出現下面的情況。

客戶端往一個memcached節點寫入資料後,另外兩個節點是查詢不到的。

那麼如何結局額這個問題,就是接下來要做的了。

memcached這種群集之間不能相互通訊導致了這種情況,這在訪問量很大的web網站中是不允許的。所以我們就要使用到一個magent開源軟體來解決這個問題。

magent是一款開源的代理服務軟體,我們可以通過他來實現快取資料的同步,當然這裡說的同步不是說memcached之間就能互相通訊了,而是magent可以備份資料,而magent可以同時連線多個memcached節點,當memcached重啟或者宕機恢復後可以從magent指定的memcached的備份節點中恢復丟失的快取資料。

通過上圖來說明一下原理:

magent在啟動時會指定主的memcached節點與備份的memcached節點,假設我們指定了兩個主的快取節點,一個備份節點,當客戶端寫入時會通過演算法寫在其中一個指定的主快取節點中,並把資料備份到memcached備份節點中,當寫節點重啟後或者宕機恢復後會從備份節點中恢復丟失的快取資料。

同時magent還可以使用keepalived來實現高可用。

具體配置步驟看下一篇