Magent搭建Memcached高可用群集

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

内容简介: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高可用群集》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Python源码剖析

Python源码剖析

陈儒 / 电子工业出版社 / 2008-6 / 69.80元

作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的支持。此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入到C/C++程序中,为自己的系统添加动态扩展和动态编程的能力。. 为了更好地利用Python语言,无论是使用Python语言本身,还是将Python与C/C++交互使用,深刻理解Pyth......一起来看看 《Python源码剖析》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具