memcached高可用群集部署(keepalive+magent)
memcahced高可用群集memcached群集作用主要解决服务器单点故障。不做群集部署,服务器之间不会复制
同步数据,一旦宕机数据就会丢失,无法有效的为后台web服务器等减轻并发连接压力。所以,
我们采用群集服务去解决这个问题,使用多台memcached做群集部署,即时有一两台服务器宕机,
也不会影响用户正常体验,同时也减少后台服务的并发连接压力。
http://s1.运维网.com/images/20180925/1537873891754246.png
实验环境
本文采用magent+keepalived实现memcached的群集部署
角色类型操作系统IP地址服务类型主服务器Centos7192.168.60.144/24 libevent、memcached、
magent、keepalived
从服务器Centos7192.168.60.143/24libevent、memcached、
keepalived
客户测试端Centos7192.168.60.140/24telnet
软件包地址
链接:https://pan.baidu.com/s/1tHnxoldZoX7U0aHnx6GlRg 密码:vl6l
部署服务
一、主从服务器安装memcached
1、安装环境包
yum install gcc gcc-c++ -y
2、解压缩
tar zxf libevent-2.1.8-stable.tar.gz -C /opt/ #解压libevent事件库包
tar zxf memcached-1.5.6.tar.gz -C /opt/ #解压memcached包
mkdir /opt/magent #创建magent解压目录
tar zxf magent-0.5.tar.gz -C /opt/magent #解压magent包
3、编译libevent和memcached
cd /opt/libevent-2.1.8-stable #编译libevent
./configure --prefix=/usr
make && make install
ln -s /usr/lib/libevent-2.1.so.6/usr/lib64/libevent-2.1.so.6
cd /opt/memcached-1.5.6/ #编译memcached
./configure--with-libevent=/usr
make && make intall
二、主服务器上配置magent(从服务器无需配置magent)
1、直接修改magent中的文件
cd /opt/magent
http://s1.运维网.com/images/20180925/1537868775933889.png
vim ketama.h #修改开头两行
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
vim Makefile #修改第一行
LIBS = -levent -lm
make #生成magent脚本
http://s1.运维网.com/images/20180925/1537868783981607.png
2、主服务器推送将生成从magent推送给从服务器
yum install openssh-clients -y #安装推送插件
scp magent root@192.168.60.143:/usr/bin/ #推送到从服务器/usr/bin目录下
三、主从服务器都安装keepalived,并修改配置文件
1、安装keepalived
yum install keepalived -y
2、修改配置文件
vim /etc/keepalived/keepalived.conf
http://s1.运维网.com/images/20180925/1537870296561525.png
3、从服务器复制主服务器上的配置文件
cd /etc/keepalived/
mv keepalived.conf keepalived.conf.bk #将原本的配置文件改名
yum install openssh-clients -y #安装推送插件
scp root@192.168.60.144:/etc/keepalived/keepalived.conf /etc/keepalived/ #复制配置文件
4、从服务器修改配置文件
● state BACKUP
●virtual_router_id 52
● priority 100
就以上三处需要修改,其他内容与主服务器相同。
四、主从服务器写入keepalived配置文件加载的脚本
1、创建目录
mkdir /opt/shell
2、写入如下脚本
vim magent.sh
#!/bin/bash
k=`ps -ef | grep keepalived | grep -v grep | wc -l`
if [ $k -ge 0 ];then
magent -u root -n 51200 -l 192.168.60.180 -p 12000 -s 192.168.60.144:11211 -b 192.168.60.143:11211
else
pkill -9 magent
fi
3、主从都启动keepalived服务
systemctl start keepalived.service #启动keepalived
netstat -ntap | grep 12000#查看端口号12000
ip add #查看虚拟ip
http://s1.运维网.com/images/20180925/1537872206528489.png
cat /var/log/messages #查看日志,验证主从关系
VRRP_Instance(VI_1) Transition to MASTER STATE
http://s1.运维网.com/images/20180925/1537872263482393.png
五、主从服务器启动memcached,客户端验证
1、启动memcached
memcached -m 512k -u root -d -l 192.168.60.144 -p 11211
memcached -m 512k -u root -d -l 192.168.60.143 -p 11211
2、先本地自测,看能否登陆memcached
yum install telnet -y
telnet 192.168.60.144 11211
telnet 192.168.60.143 11211
3、客户端使用虚拟ip登陆memcached
yum install telnet -y
telnet 192.168.60.180 12000 #端口为12000
4、在客户端写入数据,在主从上分别查看。
http://s1.运维网.com/images/20180925/1537872791770165.png
http://s1.运维网.com/images/20180925/1537872798810681.png
http://s1.运维网.com/images/20180926/1537891618188505.png
5、关闭其中一台keepalived依旧不影响客户端操作
完成以上测试magent+keepalived实现memcached高可用群集实验就算好了~
页:
[1]