Memcached高可用群集(Memcached主主复制+Keepalived)

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

内容简介:为解决memcached单点故障,需要实现memcached缓存的高可用。首先,需要实现其次,通过

案例说明

为解决 memcached 单点故障,需要实现memcached缓存的高可用。

首先,需要实现 Memcached的主主复制 ,指任意一台memcached服务器修改数据都会被同步到另外一台,但是memcached API无法判断连接哪一台服务器,因此需要VIP。

其次,通过 Keepalived 产生的VIP连接memcached服务器,提供高可用架构。

案例拓扑

Memcached高可用群集(Memcached主主复制+Keepalived)

案例环境

主机 IP地址 操作系统 主要软件
Memcached 1 192.168.37.128 Centos7 libevent;memcached;keepalived;magent
Memcached 1 192.168.37.130 Centos7 libevent;memcached;keepalived

安装软件包

链接: https://pan.baidu.com/s/1tHnxoldZoX7U0aHnx6GlRg 密码:vl6l

案例实施

一、主从服务器安装memcached

1、安装环境包

yum install gcc gcc-c++ make -y systemctl stop firewalld.service setenforce 0

2、解压libevent、memecached包

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

3、手工编译安装(注意:libevent在先,memcached在后)

cd /opt/libevent-2.1.8-stable/
    ./configure --prefix=/usr
make && make install

cd /opt/memcached-1.5.6/
   ./configure --with-libevent=/usr
make && make install

二、主服务器上安装magent

1、解压magent

mkdir /opt/magent

tar zxvf magent-0.5.tar.gz -C /opt/magent/ #代理,从服务器不需装

2、编辑配置文件

cd /opt/magent
vim ketama.h                 #文件开头修改
  #ifndef SSIZE_MAX
  #define SSIZE_MAX 32767
  #endif                          #删除最后那个endif

vim Makefile 
LIBS = -levent -lm         #注意空格 

make                             #安装magent
ls                                    #查看magent可执行程序

Memcached高可用群集(Memcached主主复制+Keepalived) 3、将magent程序复制到memcached从服务器

yum install openssh-clients -y #安装推送插件

cp magent /usr/bin/ #将编译好的magent程序复制到从服务器

scp magent root@192.168.37.130:/usr/bin

Memcached高可用群集(Memcached主主复制+Keepalived)

三、主服务器上安装keepalived

yum install keepalived -y

vim /etc/keepalived/keepalived.conf 

//12行
router_id MAGENT_HA
删除13-16
//1行下添加
vrrp_script magent {
     script "/opt/shell/magent.sh"
     interval 2                   #时间间隔2s
}
vrrp_instance VI_1 {    
......
interface ens33             #修改
......
track_script {                 #调用-添加 ;注意括号
       magent
}
virtual_ipaddress          #修改
           192.168.37.188
     }                                #定义漂移地址
}                                     #剩余全删除

Memcached高可用群集(Memcached主主复制+Keepalived)

四、从服务器上安装keepalived

yum install keepalived -y
cd /etc/keepalived/
mv keepalived.conf keepalived.conf.bk           #修改配置文件名

scp keepalived.conf root@192.168.37.130:/etc/keepalived/    #主服务器上推送
vi keepalived.conf
  router_id MAGENT_HB
  state BACKUP
  virtual_router_id 52
  priority 90

Memcached高可用群集(Memcached主主复制+Keepalived)

五、主从服务器写入keepalived配置文件加载的脚本

1、创建目录

mkdir /opt/shell

2、编写脚本

cd /opt/shell
vim 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.37.188 -p 12000 -s 192.168.37.128:11211 -b 192.168.37.130:11211
else
pkill -9 magent
fi 

-n 51200                   //定义用户最大连接数
-l 192.168.37.188   //指定虚拟IP
-p 12000                  //指定端口号
-s                              //指定主缓存服务器
-b                             //指定从缓存服务器
chmod +x magent.sh                #添加执行权限

3、主从服务器开启keepalived服务

systemctl start keepalived.service

netstat -ntap | grep 12000 #开启较慢,确认magent运行

Memcached高可用群集(Memcached主主复制+Keepalived)

4、确认主从服务器漂移地址生效

//主服务器:

Memcached高可用群集(Memcached主主复制+Keepalived)

//从服务器 :

Memcached高可用群集(Memcached主主复制+Keepalived)

六、主从服务器开启memecached

//主服务器:

memcached -m 512k -u root -d -l 192.168.37.128 -p 11211 netstat -ntap | grep 11211 yum install telnet -y telnet 192.168.37.128 11211

Memcached高可用群集(Memcached主主复制+Keepalived) //从服务器:

memcached -m 512k -u root -d -l 192.168.37.130 -p 11211 netstat -ntap | grep 11211 yum install telnet -y telnet 192.168.37.130 11211

Memcached高可用群集(Memcached主主复制+Keepalived)

七、客户端测试

1、连接VIP,写入数据

yum install telnet -y telnet 192.168.37.188 12000 add username 0 0 4 1234
Memcached高可用群集(Memcached主主复制+Keepalived)

2、主从服务器可以看到写入的内容

Memcached高可用群集(Memcached主主复制+Keepalived)

3、断掉一台memcached,再次访问,客户端仍然可以连接

Memcached高可用群集(Memcached主主复制+Keepalived)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

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

Convergence Culture

Convergence Culture

Henry Jenkins / NYU Press / 2006-08-01 / USD 30.00

"Convergence Culture" maps a new territory: where old and new media intersect, where grassroots and corporate media collide, where the power of the media producer, and the power of the consumer intera......一起来看看 《Convergence Culture》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具