转发:https://idc.wanyunshuju.com/li/581.html
关于实现 memcached 缓存集群可以有多种方式,一种是使用 Repcached(memcached同步补丁),Repcached 优点主要是数据冗余,两台 memcached 都可以进行读写操作,缺点是只支持单对单,指支持 1.2.x 版本,所以受到的局限性很大。另外可以使用开源软件 Magent实现 Memcached 群集。通过 Magent 缓存代理,防止单点现象,缓存代理也可以做备份,可以用 keepalived 软件实现高可用。
通过 magent 缓存代理,防止单点现象,缓存代理也可以做备份,通过客户端连接到缓存代理服务器,缓存代理服务器连接缓存服务器,缓存代理服务器可以连接多台 memcached机器,可以将每台 memcached 机器进行数据同步,如果其中一台缓存服务器宕机,系统依然可以继续工作,数据不会丢失并且可以保证数据的完整性。但是如果缓存代理服务器故障,那么缓存代理服务器将无法继续提供服务,所以用 keepalived 软件实现高可用。
Memcached群集案例
案例环境 :
主缓存节点 Master :192.168.2.11 magent 、memcached 、libevent 、keepalived
备缓存节点 Backup :192.168.2.12 magent 、memcached 、libevent 、keepalived
客户端 Client : 192.168.2.13 telnet
实验前先关闭三台机器的 防火墙及 selinux 。
1 、主/备缓存节点编译安装 libevent
[root@master ~]# tar xf libevent-1.4.9-stable.tar.gz -C /usr/src/
[root@master ~]# cd /usr/src/libevent-1.4.9-stable/
[root@master libevent-1.4.9-stable]# ./configure --prefix=/usr && make && make install
备缓存节点与主相同
2 、主/备缓存节点编译安装 memcached
[root@master libevent-1.4.9-stable]# cd
[root@master ~]# tar xf memcached-1.2.6.tar.gz -C /usr/src/
[root@master ~]# cd /usr/src/memcached-1.2.6/
[root@master memcached-1.2.6]# ./configure --with-libevent=/usr/ && make && make install
备缓存节点与主相同
3 、主、备缓存节点安装 magent (这个软件一般要翻墙才能下载)
[root@master ~]# mkdir magent
[root@master ~]# tar xf magent-0.5.tar.gz -C magent/
[root@master ~]# cd magent/
[root@master magent]# ls
ketama.c ketama.h magent.c Makefile
[root@master magent]# vim ketama.h
1 #ifndef SSIZE_MAX //手动添加此三行在文件开头处
2 #define SSIZE_MAX 32767
3 #endif
[root@master magent]# ldconfig
[root@master magent]# sed -i '1 s/$/ -lm/' Makefile
[root@master magent]# head -1 Makefile
LIBS = -levent -lm
[root@master magent]# make
gcc -Wall -O2 -g -c -o magent.o magent.c
gcc -Wall -O2 -g -c -o ketama.o ketama.c
gcc -Wall -O2 -g -o magent magent.o ketama.o -levent -lm
[root@master magent]# ls
ketama.c ketama.h ketama.o magent magent.c magent.o Makefile
[root@master magent]# cp magent /usr/bin/
[root@master magent]# scp magent 192.168.2.12:/usr/bin/
运维交流QQ群: