Vecloud
作者Vecloud·2022-02-14 11:03
编辑·北京亿联云网络技术有限公司

memcached+keepalived+magent高群集

字数 4126阅读 611评论 0赞 0

简述 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 -lif [ $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 命令
CN2线路直连中国大陆,在国内访问速度非常快,特别是沿海地区,韩国CN2线路服务器访问速度比香港服务器快。韩国网络采用BGP智能多线,连接世界网络线路,不仅在我国,在世界范围内访问速度也非常大。
----- 确定漂移地址生效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 '^]'.谢谢阅读!

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关资料

X社区推广