当前位置:Gxlcms > mysql > Magent搭建Memcached集群

Magent搭建Memcached集群

时间:2021-07-01 10:21:17 帮助过:20人阅读

Magent搭建Memcached集群Memcached集群介绍由于Memcached服务器与服务器之间没有任何通讯,并且不进行任何数据复制备份,所以当任何服务器节点出现故障时,会出

Magent搭建Memcached集群



Memcached集群介绍


由于Memcached服务器与服务器之间没有任何通讯,并且不进行任何数据复制备份,所以当任何服务器节点出现故障时,会出现单点故障,如果需要实现HA,则需要通过另外的方式来解决。


通过Magent缓存代理,防止单点现象,缓存代理也可以做备份,通过客户端连接到缓存代理服务器,缓存代理服务器连接缓存连接服务器,缓存代理服务器可以连接多台Memcached机器可以将每台Memcached机器进行数据同步。如果其中一台缓存服务器down机,系统依然可以继续工作,如果其中一台Memcached机器down掉,数据不会丢失并且可以保证数据的完整性。

搭建Memcached集群


Magent的架构方案已经在上一篇博文《Magent介绍》中有详细描述。现以如下图示例架构方案说明Magent如何搭建Memcached集群,而在生产环境需要根据自身业务特点设计健壮的架构方案。

clip_image002

现有测试机:192.168.11.51/52/68

先在三台测试机上安装好libevent和memcached,启动memcached实例;

然后在51和52上安装好magent,启动magent实例。

安装和启动memcached实例


详细步骤,请参见之前的博文《Memcached 1.4.22安装和配置》,分别启动如下实例:

/usr/local/bin/memcached -d -m 256 -u memcached -l 192.168.11.51 -p 11211 -c 1024 -P /var/run/memcached/memcached.pid /usr/local/bin/memcached -d -m 256 -u memcached -l 192.168.11.52 -p 11211 -c 1024 -P /var/run/memcached/memcached.pid /usr/local/bin/memcached -d -m 256 -u memcached -l 192.168.11.68 -p 11211 -c 1024 -P /var/run/memcached/memcached.pid

安装和启动magent实例


笔者在测试magent-0.6.tar.gz时,该版本在与最新版memcached运行下不够稳定,如下配置以magent-0.5.tar.gz为示例。


1. 安装magent到/usr/local下:

cd /usr/local mkdir magent cd magent wget (若无法直接访问,可先下载安装包后上传到服务器上) tar zxvf magent-0.5.tar.gz


2. 修改配置:
在ketama.h文件开头添加

#ifndef SSIZE_MAX #define SSIZE_MAX 32767 #endif


ln -s /usr/lib64/libm.so /usr/lib64/libm.a /sbin/ldconfig sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile vi Makefile



CFLAGS = -Wall -O2 -g

修改为:

CFLAGS = -lrt -Wall -O2 -g

保存


3. 编译:

make


输出如下信息:

gcc -lrt -Wall -O2 -g -c -o magent.o magent.c gcc -lrt -Wall -O2 -g -c -o ketama.o ketama.c gcc -lrt -Wall -O2 -g -o magent magent.o ketama.o -levent –lm


4. 查看命令帮助:

./magent –h


memcached agent v0.4 Build-Date: Apr 21 2015 09:21:10 Usage: -h this message -u uid -g gid -p port, default is 11211. (0 to disable tcp support) -s ip:port, set memcached server ip and port -b ip:port, set backup memcached server ip and port -l ip, local bind ip address, default is 0.0.0.0 -n number, set max connections, default is 4096 -D don't go to background -k use ketama key allocation algorithm -f file, unix socket path to listen on. default is off -i number, set max keep alive connections for one memcached server, default is 20 -v verbose


5. 启动magent实例

/usr/local/magent/magent -u root -n 4096 -l 192.168.11.51 -p 11200 -s 192.168.11.51:11211 -s 192.168.11.52:11211 -b 192.168.11.68:11211 /usr/local/magent/magent -u root -n 4096 -l 192.168.11.52 -p 11200 -s 192.168.11.51:11211 -s 192.168.11.52:11211 -b 192.168.11.68:11211

测试流程

人气教程排行