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

案例说明

为解决memcached单点故障,需要实现memcached缓存的高可用。
首先,需要实现Memcached的主主复制,指任意一台memcached服务器修改数据都会被同步到另外一台,但是memcached API无法判断连接哪一台服务器,因此需要VIP。
其次,通过Keepalived产生的VIP连接memcached服务器,提供高可用架构。

案例拓扑

案例环境

主机 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可执行程序


3、将magent程序复制到memcached从服务器

yum install openssh-clients -y #安装推送插件
cp magent /usr/bin/ #将编译好的magent程序复制到从服务器
scp magent [email protected]:/usr/bin

三、主服务器上安装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
     }                                #定义漂移地址
}                                     #剩余全删除   

四、从服务器上安装keepalived

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

scp keepalived.conf [email protected]:/etc/keepalived/    #主服务器上推送
vi keepalived.conf
  router_id MAGENT_HB
  state BACKUP
  virtual_router_id 52
  priority 90

五、主从服务器写入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运行

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

//从服务器 :

六、主从服务器开启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 -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

七、客户端测试

1、连接VIP,写入数据

yum install telnet -y
telnet 192.168.37.188 12000
add username 0 0 4
1234


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

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

原文地址:http://blog.51cto.com/13784264/2294123

时间: 2024-10-31 11:22:41

Memcached高可用群集(Memcached主主复制+Keepalived)的相关文章

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

10月3号我写了高性能内存缓存对象缓存Memcached原理 (Memcached核心概念,部署),本片将Memcached高可用群集(Memcached主主复制+Keepalived)掌握一下. memcached高可用集群原理及介绍: memcached在实现分布式群集部署时,memcached服务之间是不能进行通讯的,分布式也是通过客户端的算法吧数据保存在不同的memcached中,所以当我们做完群集客户端往一个memcached节点写入数据后,另外两个节点是查询不到的. 那么如何结局额这

Memcached高可用群集

Memcached高可用群集 主服务器安装Memcached.magent.libevent 安装 libevent memcached magent (主服务器) [[email protected] asd] cd /opt/libevent-2.1.8-stable [[email protected] libevent-2.1.8-stable] ./configure --prefix=/usr/ [[email protected] asd] cd /opt/memcached-1.

高可用群集HA介绍与LVS+keepalived高可用群集

一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅仅为LVS提供方案,Keepaliced支持故障自动切换(Failover),支持节点健康状态检查(Health Checking),官方网站http://www.keepalived.org/ Keepalived采用VRRP的热备份协议实现Linux服务器的多机热备功能,VRRP,虚拟路由冗余协

memcached高可用群集部署

环境部署 服务器角色 IP地址 需要安装的软件包 主缓存服务器 192.168.142.130 Telnet.libevent.memcached.keepalived.magent 从缓存服务器 192.168.142.131 Telnet.libevent.memcached.keepalived 客户端 192.168.142.132 Telnet 第一步:配置memcached主缓存服务器 #挂载软件包 mount.cifs //192.168.142.1/memcached /mnt

Centos7 下实现 memcached + keepalived 高可用群集

memcached + keepalived 高可用群集 memcached介绍 Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的Hash表,所以支持任意存储类型的数据.很多网站通过使用 Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问数据的网站.Memcached是典型的C/S架构,因此需要安装 Memcached服务端与 MemcachedAPI客户端. Memcached服务端是用C语言编写的,而

LVS+keepalived 高可用群集

LVS+keepalived 高可用群集 实验目的: 使用 keepalived 实现 LVS 双机热备. 实验环境: 主机 操作系统 IP地址 主要软件 LVS 负载调度器 CentOS 7.3 x86_64 192.168.217.128 keepalived LVS 负载调度器 CentOS 7.3 x86_64 192.168.217.129 keepalived web 服务器 1 CentOS 7.3 x86_64 192.168.217.130 http web 服务器 2 Cen

Memcached+magent实现主从同步 +keepalived高可用群集

Memcached+magent实现主从同步 +keepalived高可用群集 简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 实验部署 主机名称 IP地址 主要服务软件 memcach

Apache+lvs高可用+keepalive(主从+双主模型)

Apache+lvs高可用+keepalive(主从+双主模型)???? keepalive实验准备环境: httpd-2.2.15-39.el6.centos.x86_64 keepalived-1.2.13-1.el6.x86_64.rpm ? ? ???? 实验拓扑图: ? ? ? ? LVS+Keepalived 实现高可用的前端负载均衡器 ? node15: 1.安装httpd [[email protected] ~]# yum intsall -y httpd 2.配置httpd

memcached高可用

memcached-1.2.8-repcached-2.2.tar.gz tar zxvf memcached-1.2.8-repcached-2.2.tar.gz cd memcached-1.2.8-repcached-2.2 ./configure --prefix=/usr/local/repcached --with-libevent=/usr/local/libevent/ --enable-replication --program-transform-name=s/memcach