1. 程式人生 > >Memcache引入Repcached元件做HA高可用方案

Memcache引入Repcached元件做HA高可用方案

二、基本介紹
Repcached,全稱replication cached,高可用技術,簡稱複製緩衝區技術。
使用場景:它是一個單Master單Slave的方案,但它的Master和Slave都是可讀可寫的,而且可以相互同步,並且Master和Slave會自動切換(主變從,從變主自由切換)。如果Master宕機,Slave偵測到連線斷了,它會自動Listen而成為Master,而如果Slave壞掉,Master也會偵測到連線斷了,它就會重新等待新的Slave加入。

# mkdir repcached
# cd repcached
# wget http://ncu.dl.sourceforge.net/project/repcached/repcached/2.2.1-1.2.8/memcached-1.2.8-repcached-2.2.1.tar.gz
# tar -xzvf memcached-1.2.8-repcached-2.2.1.tar.gz # cd memcached-1.2.8-repcached-2.2.1 # ./configure --enable-replication --program-transform-name=S/memcached/repcached/ # make # make install

安裝完成後,該目錄下生成了幾個可執行檔案:
這裡寫圖片描述

輸入命令memcached -help,出現如下命令,則說明安裝成功:
這裡寫圖片描述

請注意幾個地方:
1、此次repcached安裝是把memcache和repcached一起安裝了。
2、此命令多了-x,-X等命令引數
3、最新版的repcached啟動命令為memcached 加上各種引數,之前老版本的repcached啟動命令則為repcached加引數,請注意區分。

四、啟動
命令檢視memcached -help
引數基本上與memcache的一致。
請注意這兩個引數:
-x:指定複製操作的IP
-X:指定複製操作的port

示例:
memcached -p 11311 -X 11314 -l 192.168.0.100 -v -d -u root
memcached -p 11312 -X 11314 -x 192.168.0.100 -v -d -u root
命令說明:11311 為Master,11312為Slave。
注意Master節點是不需要指定複製操作IP的,Slave要指定複製操作 IP。
如下截圖所示(作者把這兩條命令寫在了startRepcached.sh檔案中):

這裡寫圖片描述

四、測試
1、使用telnet命令連線,在11311節點上新增快取物件
這裡寫圖片描述

2、在11312節點上獲取該快取物件,看能否正常獲取
這裡寫圖片描述

如上圖所示,能夠在11312節點上獲取快取物件,說明repcache元件已正常工作。

有個細節請留意:
11311是Master節點,但Master宕機後,11312就由Slave變成Master,下次再啟動11311時,只能以Slave的命令啟動了,因為Master角色已被11312佔用了。

五、Repcached元件方案分析
優點:
1)能夠實現memcached節點冗餘備份
2)主從之間可以互相讀寫

缺點:
1)只支援一主一從備份,單對單
2)冗餘備份,佔用記憶體較多