简述

magent是一款开源的代理服务软件,我们可以通过它来实现缓存数据的同步,当然这里说的同步不是说memcached之间就能互相通讯了,而magent可以同时连接多 个memcached节点,通过magent绑定的从客户端登录memcached写入数据,其他节点的memcached数据也会同步。

实验:

准备三台服务器,两台做主从,一台做客户端
主服务器地址:192.168.49.128
从服务器地址:192.168.49.130
浮动IP:192.168.49.188

解压安装包
yum install gcc gcc-c++ make -y
tar zxvf memcached-1.5.6.tar.gz -C /opt
tar zxvf libevent-2.1.8-stable.tar.gz -C /opt
#创建magent文件夹                      (从服务器不用装这个)
mkdir /opt/magent
tar zxvf magent-0.5.tar.gz -C /opt/magent/                    
#到libevent执行文件
cd /opt/libevent-2.1.8-stable/
./configure --prefix=/usr/
make && make install
cd ../memcached-1.5.6/
./configure --with-libevent=/usr
make && make install
#安装软件包
yum install keepalived -y
#关闭防火墙
systemctl stop firewalld.service 
setenforce 0
① 主服务器地址

cd /opt/magent/
vim ketama.h
在这里插入图片描述
vim Makefile
在这里插入图片描述

make
yum install openssh-clients -y
cp magent /usr/bin/
scp magent root@192.168.49.129:/usr/bin/
#输入对方root的密码
 vim /etc/keepalived/keepalived.conf 

在这里插入图片描述
在这里插入图片描述
#插入
在这里插入图片描述

vrrp_script magent {
        script "/opt/shell/magent.sh"
        interval 2
}

在这里插入图片描述

② 从服务器
cd /etc/keepalived/
#不用这个文件修改一个名字
mv keepalived.conf keepalived.conf.bk
yum install openssh-clients -y
#去复制主服务器修改好的keepalived.conf
#去主服务器输入!
cd /etc/keepalived/
scp keepalived.conf root@192.168.49.129:/etc/keepalived/
#从服务器查看

在这里插入图片描述
vim keepalived.conf
在这里插入图片描述
在这里插入图片描述

两台服务器

cd /opt/shell/
vim magent.sh
在这里插入图片描述

#!/bin/bash
K=`ps -ef | grep keepalived | grep -v grep | wc -l`
if [ $K -gt 0 ]; then
        magent -u root -n 51200 -l 192.168.49.188 -p 12000 -s 192.168.49.128:11211 -b 192.168.49.129:11211
else
pkill -9 magent
fi

chmod +x magent.sh

#启动服务
systemctl start keepalived.service
在这里插入图片描述

主服务器:memcached -m 512k -u root -d -l 192.168.49.128 -p 11211
在这里插入图片描述
从服务器:memcached -m 512k -u root -d -l 192.168.49.129 -p 11211
在这里插入图片描述

测试:三台机器都安装

yum install telnet -y
在客户端创建表格主服务器和从服务器都可以看见
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
#关掉主服务器的 keepalived.service
systemctl stop keepalived.service
客户端还可以用
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐