memcached+keepalived+magent高群集

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

 

实验环境memcached主 192.168.13.128 (magent 、memcached 、libevent 、keeplived)memcached从 192.168.13.129 (memcached 、 libevent 、keeplived)client客户端 192.168.13.130 (telnet 测试工具)虚拟ip 192.168.13.1001,配置memcached主缓存节点和从缓存节点(两者配置相同,从中不需要安装magent)[root@master ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/Password for root@//192.168.100.3/LNMP-C7:  [root@master ~]# cd /mnt/memcached/[root@master memcached]# tar zxvf memcached-1.5.6.tar.gz -C /opt/[root@master memcached]# tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/  ##事件库[root@master memcached]# mkdir /opt/magent[root@master memcached]# tar zxvf magent-0.5.tar.gz -C /opt/magent/[root@master memcached]# yum install gcc gcc-c++ make -y[root@master memcached]# cd /opt/libevent-2.1.8-stable/[root@master libevent-2.1.8-stable]# ./configure --prefix=/usr/[root@master libevent-2.1.8-stable]# cd ../memcached-1.5.6/[root@master memcached-1.5.6]# ./configure \> --with-libevent=/usr[root@master magent]# systemctl stop firewalld.service [root@master magent]# setenforce 02,配置主服务器,安装magent代理[root@master memcached-1.5.6]# cd /opt/magent/[root@master magent]# vim ketama.h  ##修改magent配置文件##首行修改添加#ifndef SSIZE_MAX#define SSIZE_MAX 32767#endif //此项如果有就不需要添加[root@master magent]# vim Makefile  ##编辑Makefile配置文件##查找此项后面添加-lmLIBS = -levent -lm[root@master magent]# make ##编译后产生一个magent可执行程序[root@master magent]# yum install openssh-clients -y  [root@master magent]# cp magent /usr/bin/  ##放到/usr/bin中[root@master magent]# scp magent root@192.168.13.129:/usr/bin/   ##拷贝到从服务器/usr/bin中3,在主从服务器上配置安装keepalived[root@master magent]# yum install keepalived -y  ##安装keepalived服务[root@master magent]# vim /etc/keepalived/keepalived.conf  ##修改配置文件//定义一个函数,建议写在最前面(主服务器配置)vrrp_script magent {                script "/opt/shell/magent.sh"                interval 2            }做如下修改:router_id MAGENT_HA        //修改id名interface ens33            //修改网卡信息virtual_ipaddress {                192.168.13.100     //定义好虚拟ip地址        }   vrrp_instance VI_1 {.....//调用函数.以下三行代码写在vrrp模块内track_script {                magent            }##从服务器上配置如下(可通过scp直接拷贝主服务器配置文件到从服务器)router_id MAGENT_HB         //id名和第一台要不一样state BACKUP               //从服务器virtual_router_id 52       //id号和第一台不一样priority 90                 //优先级低与主服务器 [root@master keepalived]# mkdir /opt/shell[root@master keepalived]# cd /opt/shell/[root@master shell]# vim magent.sh   ##编辑magent脚本#!/bin/bashK=`ps -ef | grep keepalived | grep -v grep | wc -l`if [ $K -gt 0 ]; then        magent -u root -n 51200 -l 192.168.13.100 -p 12000 -s 192.168.13.128:11211 -b 192.168.13.129:11211elsepkill -9 magentfi//-n 51200             //定义用户最大连接数-l 192.168.13.100   //指定虚拟IP-p 12000             //指定端口号-s                   //指定主缓存服务器-b                   //指定从缓存服务器[root@master shell]# chmod +x magent.sh   ##执行权限[root@master shell]# systemctl start keepalived.service   ##开启服务[root@master shell]# netstat -natp | grep 12000  ##查看端口##验证主从主服务器 ----- 查看 /var/log/messages 文件,找到关键词:Transition to MASTER STATE从服务器 ----- 找到关键词:Entering BACKUP STATEip addr 命令 ----- 确定漂移地址生效4,开启主从服务器memcache主服务器:[root@master shell]# memcached -m 512k -u root -d -l 192.168.13.128 -p 11211   [root@master shell]# netstat -natp | grep 11211从服务器:[root@slave shell]# memcached -m 512k -u root -d -l 192.168.13.129 -p 11211 [root@slave shell]# netstat -ntap | grep 112115,用客户端登录[root@client ~]# yum install telnet -y  ##安装登录工具[root@client ~]# telnet 192.168.13.100 12000  ##用虚拟ip登录Trying 192.168.13.100...Connected to 192.168.13.100.Escape character is '^]'.add username 0 0 7   ##添加一个数据1234567STORED6,查看是否主从同步##在主服务器上查看是否有写入的数据[root@master shell]# telnet 192.168.13.128 11211Trying 192.168.13.128...Connected to 192.168.13.128.Escape character is '^]'.get usernameVALUE username 0 71234567END##在从服务器上查看是否有写入的数据[root@slave shell]# telnet 192.168.13.129 11211Trying 192.168.13.129...Connected to 192.168.13.129.Escape character is '^]'.get usernameVALUE username 0 71234567END7,宕机主服务器,查看是否可用,实现高可用[root@master shell]# systemctl stop keepalived.service[root@client ~]# telnet 192.168.13.100 12000  ##客户端仍然可以登录Trying 192.168.13.100...Connected to 192.168.13.100.Escape character is '^]'.谢谢阅读!

IPLC(International Private Leased Circuit,国际私有租用线路)即"国际专线",是指电信运营商提供给企业或机构用户专用的跨越国家或地区的端到端的通信线路。中国电信IPLC专线产品指依托中国电信覆盖全球的传送网络(SDH/MSTP/WDM传送网),为跨国或跨地区客户提供具有严格带宽保证、客户带宽独享、全透明的端到端国际专线业务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值