千家信息网

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

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,memcached + keepalived 高可用群集memcached介绍Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的
千家信息网最后更新 2025年11月09日Centos7 下实现 memcached + keepalived 高可用群集

memcached + keepalived 高可用群集

memcached介绍

Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存
储在内存中,因为在内存中会统一维护一张巨大的Hash表,所以支持任意存储类型的
数据。很多网站通过使用 Memcached提高网站的访问速度,尤其是对于大型的需要频
繁访问数据的网站。
Memcached是典型的C/S架构,因此需要安装 Memcached服务端与 Memcached
API客户端。 Memcached服务端是用C语言编写的,而 Memcached API客户端可以用
任何语言来编写,如PHP、 Python、Perl等,并通过 Memcached协议与 Memcached服
务端进行通信。

memcached主从复制+keepalived高可用框架介绍

Memcached服务器修改数据都会被同步到
另外一台,但是 Memcached API客户端是无法判断连接到哪一台 Memcached服务
器的,所以需要设置VP地址,提供给 Memcached Apl客户端进行连接。可以使用
keepalived产生的VP地址连接主 Memcached服务器,并且提供高可用架构。

因为 Memcached主从复制这种架构,在程序连接主服务
器,在前端加VP地址,实现高可用架构。这里用 Keepalived实现,因而
Keepalived的作用是用来检测 Memcached服务器的状态是否正常。
Keepalived不断检测 Memcached主服务器的11211端口,如果检测到 Memcached
服务发生宕机或者死机等情况,就会将VP从主服务器移至从服务器,从而实现
Memcached的高可用性。

实验准备

一台主服务器
需要安装 magent memcached libevent keepalived
一台从服务器
需要安装 memcached libevent keepalived

实验步骤

在主服务器和从服务器上安装memcached 和 libevent

tar xzvf memcached-1.5.6.tar.gztar xzvf libevent-2.1.8-stable.tar.gzcd libevent-2.1.8./configure --prefix=/usr    ##指定安装路径make && make install   cd memcached-1.5.6./configure --with-libevent=/usrmake && make installln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6    ##主服务器上magent服务需要这个模块

在主服务器上安装magent

mkdir /magenttar xzvf magent-0.5.tar.gzcd /magentvim ketama.h修改#ifndef SSIZE_MAX#define SSIZE_MAX 32767vim MakefileLIBS = -levent -lmmakecp magent /usr/bin   ##方便系统识别命令

在主服务器上把magent 复制到从服务器上

yum install openssh-clientsscp magent root@192.168.x.x:/usr/bin

在主服务器上安装keepalived

vim /etc/keepalived/keepalived.confrouter-_id MAGENT_HA删除   vrrp_skip_check_adv_addr   vrrp_strict   vrrp_garp_interval 0   vrrp_gna_interval 0定义新函数vrrp_script magent{script"/opt/shell/magent.sh" interval 2       ##时间间隔}修改vrrp_instance下面INTERFACE ens33添加track_script {    magent}        ## 使用新函数定义一个虚拟IPvirtual_ipaddress {    192.168.x.x    }下面多余的部分可以全部删除

在从服务器上安装keepalived

yum install keepalived 从主服务器上把配置脚本复制到从服务器上scp /etc/keepalived/keepalived.conf root@192.168.x.x.:/etc/keepalived/keepalived.confvim /etc/keepalivedrouter_id MAGENT_HBstate BACKUP     ##从服务器virtual_router_id 52    ##ID不同priortity 90     ##优先级

在主服务器上配置 magent脚本

mkdir /opt/shell vim /opt/shell/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.x.x -p 12000 -s 192.168.x.x:11211 -b 192.168.x.x:11211elsepkill -9 magentfi-n 51200 //定义用户最大连接数-l 192.168.x.x //指定虚拟IP-p 12000  //指定端口号-s //指定主缓存服务器-b //指定从缓存服务器chmod +x magent.sh

在从服务器上配置 magent脚本

mkdir /opt/shell vim /opt/shell/magent.sh #!/bin/bash K=`ip addr | grep 192.168.x.x(虚拟IP) | grep -v grep | wc -l`if [ $K -gt 0 ]; then        magent -u root -n 51200 -l 192.168.x.x -p 12000 -s 192.168.x.x:11211 -b 192.168.x.x:11211elsepkill -9 magentfi  chmod +x magent.sh

主从服务器开启keepalived服务

systemctl start keepalived.servicenetstat -ntap |grep 12000如果有12000端口表示服务开启成功

登录memcached服务器

memcached -m 512k -u root -d -l 192.168.xx 主 -p  11211memcached -m 512k -u root -d -l 192.168.x.x 从 -p  11211netstat -ntap |grep 11211有11211端口表示服务开启成功

测试

在第三台服务器上安装 telnetyum install telnet -ytelnet 192.168.x.x(虚拟IP) 12000add username 0 0 71234567Stored quit## 通过虚拟IP登录 并创建一个用户telnet 192.168.x.x(主/从服务器) 11211get usernameVALUE username 0 71234567ENDquit##  在主从服务器上都能得到这个数据在主服务器上关掉 memcachedpkill -9 memcached192.168.x.x(虚拟IP) 12000add username 0 0 71234567Stored quit## 通过虚拟IP 写入数据telnet 192.168.x.x(从服务器) 11211get usernameVALUE username 0 71234567ENDquit## 从服务器依然能读取到

至此 memcached+keepalived 高可用群集完成

服务 服务器 数据 主从 客户 客户端 架构 内存 地址 端口 缓存 网站 脚本 检测 配置 成功 函数 用户 系统 语言 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 大一数据库技术及应用作业 校园网络安全法治教育观后感 上海机构养老软件开发公司 dns服务器在哪些国家 网络安全名词意思 网络安全周线上知识问答2021 删除对于job数据库 网络安全的标准由谁制定 软件开发使用合同范本 房地一体数据库质量检查实施细则 邯郸市园丁之家网络技术 服务器机柜导轨拆卸视频 手机网络安全面临的严峻形势 mc服务器设置主城 阿里云服务器注册地在哪 单机冒险岛数据库启动不了 哈工大网络安全考研分数线 订单服务器 卓越精算软件开发有限公司 肇庆聊天软件开发公司 建立数据库用的密码是起始密码吗 2018年全球网络安全报告 赛博朋克游戏服务器 我的世界服务器授权码有什么用 十二代服务器系列 长宁区电商软件开发答疑解惑 上海隆麟网络技术有限公司 大型数据库的安全运算 服务器 自动开机 有个软件进去显示服务器错误
0