千家信息网

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

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Memcached+magent实现主从同步 +keepalived高可用群集简介Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和
千家信息网最后更新 2026年11月03日Memcached+magent实现主从同步 +keepalived高可用群集

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

简介

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

实验部署

主机名称IP地址主要服务软件
memcached主服务器172.16.10.138memcached,libevent,magent,keepalived
memcached从服务器172.16.10.137memcached,libevent,keepalived
客户端172.16.10.134telnet测试
  • 配置memcached主缓存节点服务器
tar xf libevent-2.1.8-stable.tar.gz -C /opttar xf memcached-1.5.6.tar.gz -C /opttar xf magent-0.5.tar.gz -C /optcd /opt/libevent-2.1.8./configure --prefix=/usr   #指定安装路径make && make install    #编译安装cd /opt/memcached-1.5.6./configure --with-libevent=/usr      #指定安装路径make && make install               #编译安装ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6     #主服务器上magent服务需要这个模块

cd /opt/magent

vim ketama.h #ifndef SSIZE_MAX                        #修改#define SSIZE_MAX 32767             #修改   #endifvim MakefileLIBS = -levent -lm                      #修改,添加-lm make 

cp mgent /usr/bin #把生成的mgent程序让系统识别

  • 配置memcached从缓存节点服务器
tar xzvf memcached-1.5.6.tar.gz -C /opttar xzvf libevent-2.1.8-stable.tar.gz -C /optcd /opt/libevent-2.1.8./configure --prefix=/usrmake && make installcd /opt/memcached-1.5.6./configure --with-libevent=/usrmake && make i nstallln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6    #主服务器上magent服务需要这个模块
  • 主服务器将magent文件复制到从服务器

yum install openssh-clients

scp magent root@172.16.10.137:/usr/bin/ //把产生的magent文件直接复制到从服务器。

  • 主服务器安装keepalived服务,修改配置文件

yum -y install keepalived

vim /etc/keepalived/keepalived.conf

router_id MAGENT_HA                                #router_id主从不能相同,要修改vrrp_script magent {    script "/opt/shell/magent.sh"    interval 2          }        #定义一个新函数,每2s自动执行这个脚本                        vrrp_instance VI_1 {state MASTER  #这边是主服务器,从服务器是BACKUP      interface ens33   #网卡接口是ens33                          virtual_router_id 51                              priority 100    #优先级,从服务器小于主服务器         advert_int 1authentication {         auth_type PASS         auth_pass 1111      }track_script {        magent      #触发执行magent脚本                 }virtual_ipaddress {        172.16.10.200    #虚拟IP(vip)       }      }将下面多余的配置全部删除
  • 主服务器安装keepalived服务,修改配置文件

yum -y install keepalived

vim /etc/keepalived/keepalived.conf

router_id MAGENT_HB    #router_id主从不相同                vrrp_script magent {        script "/opt/shell/magent.sh"        interval 2          }    #定义一个新函数,每2s自动执行这个脚本  vrrp_instance VI_1 {state MASTER   #这边是从服务器,是BACKUP  interface ens33    #网卡接口是ens33virtual_router_id 51                       priority 90   #优先级,从服务器小于主服务器   advert_int 1authentication {auth_type PASSauth_pass 1111      }track_script {    magent     #触发执行magent脚本      }virtual_ipaddress {        172.16.10.200                                               #虚拟IP(vip)       }      }            将下面多余的配置全部删除
  • 主服务器编写magnet脚本

mkdir /opt/shell

vim /opt/shell/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.58.100 -p 12000 -s 192.168.58.135:11211 -b 192.168.58.132:11211      else      pkill -9 magent      fi      -n 51200 #定义用户最大连接数      -l 192.168.58.100 #指定虚拟IP      -p 12000  #指定端口号      -s #指定主缓存服务器      -b #指定从缓存服务器       #这个脚本意思就是一旦检测到系统进程中有keepalived进程,就执行magent这条命令,如果没有,则将magent进程杀死。总得来说就是,主服务器上没有keepslived进程,magent就会和从服务器连接。            chmod +x /opt/shell/magent.sh        #给脚本添加执行权限
  • 从服务器编写magent脚本

mkdir -p /opt/shell

vim /opt/shell/magent.sh#!/bin/bashK=`ip addr | grep 192.168.58.100 | grep -v grep | wc -l`if [ $K -gt 0 ]; thenmagent -u root -n 51200 -l 192.168.58.100 -p 12000 -s 192.168.58.135:11211 -b 192.168.58.132:11211elsepkill -9 magentfi  #从服务器的脚本意思就是检测到虚拟ip漂移是否到自己身上,如果VIP进行漂移到从服务器之后,就会执行magent这条命令,目的就是在主服务器宕掉的时候,从服务器能够正常启动。
  • 实验验证

首先使用客户机安装telnet,远程连接VIP节点,写入用户之后,主从缓存服务器会自动获取下载该用户。

服务 服务器 脚本 缓存 进程 配置 就是 数据 文件 主从 客户 数据库 用户 系统 节点 相同 优先级 内存 函数 动态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 为想互联网科技怎么样 互联网科技开发公司 有木互联网科技 互联网金融 科技创新 互联网科技网站 丰台科技园 互联网公司 云创客互联网科技公司 南山科技园互联网公司有哪些 来此购互联网科技有限公司 全球顶尖互联网科技公司 千方科技属于互联网企业吗 互联网科技人工智能实验室 长沙茂晟互联网科技有限公司 富国互联网科技002692 半导体是互联网高科技吗 东营紫格互联网科技 科技互联网公司两年变化 科技互联网专业工作会议发言稿 互联网领先科技成果宣传视频 六子台科技互联网展会 互联网科技博主是什么意思 承德科技产业互联网发展 顶级互联网科技成果有哪些 贵州叶脉互联网科技有限公司所属行业 健康食品互联网创新科技园项目 996高科技互联网公司 佛山市拉法互联网科技有限公司 深圳互联网科技的发展 黑云互联网科技有限公司 上海互联网科技园景观
0