方案说明:

通过一系列测试,发现通过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