Magent搭建Memcached高可用群集
admin
2023-03-08 11:41:16
0

Magent缓存代理介绍

      因为Memcached服务器与服务器之间没有任何通讯,所以当任何服务器节点出现故障时,会出现单点故障。通过Magent缓存代理,防止单点现象。通过客户端连接到缓存代理服务器,缓存代理服务器可以连接多台Memcached机器并同时将每台Memcached机器进行数据同步。如果其中一台缓存服务器down机,系统依然可以继续工作,如果其中一台Memcached机器down掉,数据不会丢失并且可以保证数据的完整性。

原理演示图:

Magent搭建Memcached高可用群集


实验环境介绍:

三台服务器:

master/slave/client

Magent搭建Memcached高可用群集


实验步骤

在master和slave上同时安装libevent、memcached

master&&slave:

systemctl stop firewalld.service

setenforce 0

tar zxvf memcached-1.5.6.tar.gz -C /opt

tar zxvf libevent-2.1.8-stable.tar.gz -C /opt

yum install gcc gcc-c++ -y

cd /opt/libevent-2.1.8-stable/

./configure --prefix=/usr/local

make && make install

cp /usr/local/lib/libevent-2.1.so.6 /usr/lib64/


cd /opt/memcached-1.5.6/

./configure --with-libevent=/usr/local

make && make install

在master上安装配置magent

master:

mkdir /opt/magent

tar zxvf magent-0.5.tar.gz -C /opt

vim /opt/magent/ketama.h

     #ifndef SSIZE_MAX

     #define SSIZE_MAX 32767

     #endif

vim /opt/magent/Makefile

     LIBS = -levent -lm                 此处为英文单词‘l’,不是1

make

将magent命令复制到slave服务器上

注:标记地方为需要更改的位置

yum install openssl-clients -y

cp magent /usr/bin

scp magent root@192.168.218.157:/usr/bin

yum install keepalived -y

vim /etc/keepalived/keepalived.conf

       ! Configuration File for keepalived

        global_defs {

        notification_email {

        acassen@firewall.loc

        failover@firewall.loc

        sysadmin@firewall.loc

       }

        notification_email_from Alexandre.Cassen@firewall.loc

        smtp_server 192.168.200.1

        smtp_connect_timeout 30

        router_id MAGENT_HA

        }

       vrrp_script magent {

       script "/opt/shell/magent.sh"             脚本位置

       interval 2                                                  检测脚本为2秒

       }

       vrrp_instance VI_1 {

       state MASTER

       interface ens33

       virtual_router_id 51

       priority 100

      advert_int 1

      authentication {

      auth_type PASS

      auth_pass 1111

      }

      track_script {                   调用vrrp_script magent

           magent

     }

     virtual_ipaddress {

      192.168.218.16

      }

       }

从服务器上安装配置keepalived

slave:

yum install openssl-clients -y

yum install keepalived -y

cd /etc/keepalived/

mv keepalived.conf keepalived.conf.bk

master:

cd /etc/keepalived/

scp keepalived.conf root@192.168.218.157:/etc/keepalived/keepalived.conf

slave:

vim /etc/keepalived/keepalived.conf

            global_defs {

            router_id MAGENT_HB

           vrrp_instance VI_1 {

            state BACKUP

            virtual_router_id 52

             priority 90

master:

mkdir /opt/shell

vim /opt/shell/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.218.16 -p 12000 -s 192.168.218.130:11211 -b 192.168.218.157:11211
         else
            pkill -9 magent
       fi

chmod +x /opt/shell/magent.sh

systemctl start keepalived.servic

netstat -ntap | grep 12000                  #此时检查应有12000端口号

slave:

mkdir /opt/shell

vim /opt/shell/magent.sh

       #!/bin/bash
       K=`ip addr | grep 192.168.218.16 | grep -v grep | wc -l`
       if [ $K -gt 0 ];then
          magent -u root -n 51200 -l 192.168.218.16 -p 12000 -s 192.168.218.130:11211 -b 192.168.218.157:11211
       else
           pkill -9 magent
       fi


#magent -u指定用户、-n指定连接数量、-l指定漂移地址、-p指定端口、-s指定主服务器地址、-b指定从服务器地址

chmod +x /opt/shell/magent.sh

systemctl start keepalived.servic

netstat -ntap | grep 12000                   #此时检查应有12000端口号

master:

memcached -m 512k -u root -d -l 192.168.218.130 -p 11211

netstat -ntap | grep 11211

slave:

memcached -m 512k -u root -d -l 192.168.218.157 -p 11211

netstat -ntap | grep 11211

测试:

master:

yum install telnet -y

telnet 192.168.218.130 11211

slave:

yum install telnet -y

telnet 192.168.218.157 11211

client:

yum install telnet -y

telnet 192.168.218.16 12000

         Trying 192.168.218.16...

         Connected to 192.168.218.16.

         Escape character is '^]'.

         add username 0 0 7                #写入一段数据

         1231231

          STORED

slave:

telnet 192.168.218.157 11211

          Trying 192.168.218.157...

          Connected to 192.168.218.157.

         Escape character is '^]'.

         get username

         VALUE username 0 7

        1231231                                  #在主服务器和从服务器上可以看到同步过来的数据

        END



相关内容

热门资讯

玩家分享攻略“白金岛游戏.开挂... 您好:白金岛游戏这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游...
最新民调:台湾近六成民众不认为... 海峡导报综合报道 12月23日,“台湾民意基金会”公布民进党政党形象,其中近六成民众认为,民进党不是...
【第一消息】“新大圣炸金花.是... 【第一消息】“新大圣炸金花.是不是有挂?”外卦神器下载您好,新大圣炸金花这个游戏其实有挂的,确实是有...
终于了解“闲来玩游戏.可以开挂... 有 亲,根据资深记者爆料闲来玩游戏是可以开挂的,确实有挂(咨询软件无需打...
【第一消息】“新世界拼三张.是... 家人们!今天小编来为大家解答新世界拼三张透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里...
今日重大通报“传送屋.有没有挂... 您好:传送屋这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏中...
终于了解“福建麻将.开挂神器?... 有 亲,根据资深记者爆料福建麻将是可以开挂的,确实有挂(咨询软件无需打开...
终于懂了“玄龙二厅.辅助开挂神... 有 亲,根据资深记者爆料玄龙二厅是可以开挂的,确实有挂(咨询软件无需打开...
国家文物局工作组已赴南京开展工... 国家文物局对近日媒体报道的“南京博物院《江南春》图卷现身拍卖市场”等相关情况高度重视,已成立工作组并...
nova15系列及全场景新品发... 2025年12月22日,nova15系列及全场景新品发布会正式举行,带来nova15系列、华为Mat...