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

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

内容简介:为解决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)

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

查看所有标签

猜你喜欢:

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

Ruby on Rails 3 Tutorial

Ruby on Rails 3 Tutorial

Michael Hartl / Addison-Wesley Professional / 2010-12-16 / USD 39.99

“Ruby on Rails™ 3 Tutorial: Learn Rails by Example by Michael Hartl has become a must read for developers learning how to build Rails apps.” —Peter Cooper, Editor of Ruby Inside Using Rails ......一起来看看 《Ruby on Rails 3 Tutorial》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

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

HTML 编码/解码

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

HSV CMYK互换工具