方案说明:
通过一系列测试,发现通过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