Magent搭建Memcached高可用群集

栏目: 数据库 · 发布时间: 5年前

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

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
 
 

以上所述就是小编给大家介绍的《Magent搭建Memcached高可用群集》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Geometric Folding Algorithms

Geometric Folding Algorithms

Erik D Demaine / Cambridge University Press / 2008-8-21 / GBP 35.99

Did you know that any straight-line drawing on paper can be folded so that the complete drawing can be cut out with one straight scissors cut? That there is a planar linkage that can trace out any alg......一起来看看 《Geometric Folding Algorithms》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具