一、主要目的
解决使用Magent代理Memcache节点出现故障恢复导致缓存返回为空的解决方案。
若不清楚此问题,可以翻看前一篇文章:http://blog.csdn.net/dailywater/article/details/50876865
二、基本介绍
Repcached,全称replication cached,高可用技术,简称复制缓冲区技术。
使用场景:它是一个单Master单Slave的方案,但它的Master和Slave都是可读可写的,而且可以相互同步,并且Master和Slave会自动切换(主变从,从变主自由切换)。如果Master宕机,Slave侦测到连接断了,它会自动Listen而成为Master,而如果Slave坏掉,Master也会侦测到连接断了,它就会重新等待新的Slave加入。
三、安装
下载地址:http://ncu.dl.sourceforge.net/project/repcached/repcached/2.2.1-1.2.8/memcached-1.2.8-repcached-2.2.1.tar.gz
安装命令如下:
# 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)冗余备份,占用内存较多