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)冗餘備份,佔用記憶體較多