千家信息网

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

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,案例说明为解决memcached单点故障,需要实现memcached缓存的高可用。首先,需要实现Memcached的主主复制,指任意一台memcached服务器修改数据都会被同步到另外一台,但是mem
千家信息网最后更新 2025年12月02日Memcached高可用群集(Memcached主主复制+Keepalived)

案例说明

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

案例拓扑

案例环境

主机IP地址操作系统主要软件
Memcached 1192.168.37.128Centos7libevent;memcached;keepalived;magent
Memcached 1192.168.37.130Centos7libevent;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=/usrmake && make installcd /opt/memcached-1.5.6/   ./configure --with-libevent=/usrmake && make install
二、主服务器上安装magent

1、解压magent

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

2、编辑配置文件

cd /opt/magentvim ketama.h                 #文件开头修改  #ifndef SSIZE_MAX  #define SSIZE_MAX 32767  #endif                          #删除最后那个endifvim Makefile LIBS = -levent -lm         #注意空格 make                             #安装magentls                                    #查看magent可执行程序


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

yum install openssh-clients -y #安装推送插件
cp magent /usr/bin/ #将编译好的magent程序复制到从服务器
scp magent root@192.168.37.130:/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 -ycd /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

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

1、创建目录

mkdir /opt/shell

2、编写脚本

cd /opt/shellvim magent.sh #!/bin/bashK=`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:11211elsepkill -9 magentfi -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,再次访问,客户端仍然可以连接

服务 服务器 主从 文件 案例 地址 程序 缓存 配置 客户 客户端 数据 环境 脚本 软件 推送 编译 最大 操作系统 主机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中科网络技术研究所笔试 网络安全监管人员工资待遇 软件开发用哪种语言好学 沪科版网络技术应用教案 明日之后微魄峰服务器怎么找 王者荣耀英雄数据库怎么查 网络安全审查美国 2021中科曙光服务器销售额 微软表单数据库没了怎么办 人脸区分识别软件开发 数据库使用痕迹查询 马云会不会软件开发 方舟服务器怎么进 美国食品安全与大数据库 电力系统信息网络安全演讲稿 嵌入式软件开发适合年龄 web 安全 网络安全 敏捷软件开发java 汽车脚垫版型数据库 太原的互联网科技股份有限公司 u型病毒网络安全吗 连江创信联网络技术有限公司 虚拟汽车仪表用什么软件开发 云服务器平台哪个性价比高 2k服务器无法下载更新 我国网络安全法何时颁布的 服务器硬盘装笔记本电脑 上海银行软件开发工资高吗 nagios数据库监控插件 传统媒体互联网的科技创新企业
0