方案說明:
通過一系列測試,發現通過magent代理多臺memcache有個問題,就是當master掛了之後再次啓動就會把用戶踢出去,也就是sesson miss。爲了解決該問題,需要在此基礎上利用repcached進行雙主的數據同步。
Repcached介紹
repcached:全稱 replication cached是由日本人發明的memcached的高可用性技術,簡稱複製緩衝區技術。
使用場景:它是一個單master單 slave的方案,但它的 master/slave都是可讀寫的,而且可以相互同步,如果 master 宕機, slave偵測到連接斷了,它會自動 listen而成爲 master;而如果 slave壞掉, master也會偵測到連接斷,它就會重新 listen等待新的 slave加入;
部署環境
系統:centos 6.6 x64
測試環境採用2magent 2個主memcache 一個備份memcache
角色 Ip地址 部署軟件
Magent01 10.150.21.66(主) magent
Magent02 10.150.21.78(備) magent
Memcache01 10.150.21.67(主) Memcache-1.4.10, repcached-2.3.1-1.4.10.patch
Memcache02 10.150.21.68(主) Memcache-1.4.10, repcached-2.3.1-1.4.10.patch
Memcache03 10.150.21.69(備) Memcache-1.4.10,
repcached-2.3.1-1.4.10.patch
安裝步驟
Magent安裝配置省略。。。。。
在Memcache01 ,Memcache02,Memcache03節點上操作
tar zxvf memcached-1.4.10.tar.gz
cd memcached-1.4.10
gzip -cd ../repcached-2.3.1-1.4.10.patch.gz | patch -p1
./configure --enable-replication
make
make install
服務啓動
Memcache01
/usr/local/bin/memcached -d -m 1024 -p 11211 -u root -c 1024 -x 10.150.21.68 -X 11212
Memcache02
/usr/local/bin/memcached -d -m 1024 -p 11211 -u root -c 1024 -x 10.150.21.67 -X 11212
Memcache03
/usr/local/bin/memcached -d -m 1024 -p 11211 -u root -c 1024
Magent01
magent -u root -n 51200 -l 10.150.21.66 -p 12000 -s 10.150.21.67:11211 -s 10.150.21.68:11211 -b 10.150.21.69:11211
magent02
magent -u root -n 51200 -l 10.150.21.78 -p 12000 -s 10.150.21.67:11211 -s 10.150.21.68:11211 -b 10.150.21.69:11211
至此ok