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)

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

查看所有标签

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

We Are the Nerds

We Are the Nerds

Christine Lagorio-Chafkin / Hachette Books / 2018-10-2 / USD 18.30

Reddit hails itself as "the front page of the Internet." It's the third most-visited website in the United States--and yet, millions of Americans have no idea what it is. We Are the Nerds is an eng......一起来看看 《We Are the Nerds》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具