memcached+keepalived+magent高群集
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,简述 magent是一款开源的代理服务软件,我们可以通过它来实现缓存数据的同步,当然这里说的同步不是说memcached之间就能互相通讯了, 而magent可以同时连接多个memcached节点, 通
千家信息网最后更新 2025年12月01日memcached+keepalived+magent高群集
简述
magent是一款开源的代理服务软件,我们可以通过它来实现缓存数据的同步,当然这里说的同步不是说memcached之间就能互相通讯了, 而magent可以同时连接多个memcached节点, 通过magent绑定的VIP从客户端登录memcached写入数据,其他节点的memcached数据也会同步。
实验环境
memcached主 192.168.13.128 (magent 、memcached 、libevent 、keeplived)memcached从 192.168.13.129 (memcached 、 libevent 、keeplived)client客户端 192.168.13.130 (telnet 测试工具)虚拟ip 192.168.13.1001,配置memcached主缓存节点和从缓存节点(两者配置相同,从中不需要安装magent)
[root@master ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/Password for root@//192.168.100.3/LNMP-C7: [root@master ~]# cd /mnt/memcached/[root@master memcached]# tar zxvf memcached-1.5.6.tar.gz -C /opt/[root@master memcached]# tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/ ##事件库[root@master memcached]# mkdir /opt/magent[root@master memcached]# tar zxvf magent-0.5.tar.gz -C /opt/magent/[root@master memcached]# yum install gcc gcc-c++ make -y[root@master memcached]# cd /opt/libevent-2.1.8-stable/[root@master libevent-2.1.8-stable]# ./configure --prefix=/usr/[root@master libevent-2.1.8-stable]# cd ../memcached-1.5.6/[root@master memcached-1.5.6]# ./configure \> --with-libevent=/usr[root@master magent]# systemctl stop firewalld.service [root@master magent]# setenforce 02,配置主服务器,安装magent代理
[root@master memcached-1.5.6]# cd /opt/magent/[root@master magent]# vim ketama.h ##修改magent配置文件##首行修改添加#ifndef SSIZE_MAX#define SSIZE_MAX 32767#endif //此项如果有就不需要添加[root@master magent]# vim Makefile ##编辑Makefile配置文件##查找此项后面添加-lmLIBS = -levent -lm[root@master magent]# make ##编译后产生一个magent可执行程序[root@master magent]# yum install openssh-clients -y [root@master magent]# cp magent /usr/bin/ ##放到/usr/bin中[root@master magent]# scp magent root@192.168.13.129:/usr/bin/ ##拷贝到从服务器/usr/bin中3,在主从服务器上配置安装keepalived
[root@master magent]# yum install keepalived -y ##安装keepalived服务[root@master magent]# vim /etc/keepalived/keepalived.conf ##修改配置文件//定义一个函数,建议写在最前面(主服务器配置)vrrp_script magent { script "/opt/shell/magent.sh" interval 2 }做如下修改:router_id MAGENT_HA //修改id名interface ens33 //修改网卡信息virtual_ipaddress { 192.168.13.100 //定义好虚拟ip地址 } vrrp_instance VI_1 {.....//调用函数.以下三行代码写在vrrp模块内track_script { magent }##从服务器上配置如下(可通过scp直接拷贝主服务器配置文件到从服务器)router_id MAGENT_HB //id名和第一台要不一样state BACKUP //从服务器virtual_router_id 52 //id号和第一台不一样priority 90 //优先级低与主服务器 [root@master keepalived]# mkdir /opt/shell[root@master keepalived]# cd /opt/shell/[root@master shell]# vim magent.sh ##编辑magent脚本#!/bin/bashK=`ps -ef | grep keepalived | grep -v grep | wc -l`if [ $K -gt 0 ]; then magent -u root -n 51200 -l 192.168.13.100 -p 12000 -s 192.168.13.128:11211 -b 192.168.13.129:11211elsepkill -9 magentfi//-n 51200 //定义用户最大连接数-l 192.168.13.100 //指定虚拟IP-p 12000 //指定端口号-s //指定主缓存服务器-b //指定从缓存服务器[root@master shell]# chmod +x magent.sh ##执行权限[root@master shell]# systemctl start keepalived.service ##开启服务[root@master shell]# netstat -natp | grep 12000 ##查看端口##验证主从主服务器 ----- 查看 /var/log/messages 文件,找到关键词:Transition to MASTER STATE从服务器 ----- 找到关键词:Entering BACKUP STATEip addr 命令 ----- 确定漂移地址生效4,开启主从服务器memcache
主服务器:[root@master shell]# memcached -m 512k -u root -d -l 192.168.13.128 -p 11211 [root@master shell]# netstat -natp | grep 11211从服务器:[root@slave shell]# memcached -m 512k -u root -d -l 192.168.13.129 -p 11211 [root@slave shell]# netstat -ntap | grep 112115,用客户端登录
[root@client ~]# yum install telnet -y ##安装登录工具[root@client ~]# telnet 192.168.13.100 12000 ##用虚拟ip登录Trying 192.168.13.100...Connected to 192.168.13.100.Escape character is '^]'.add username 0 0 7 ##添加一个数据1234567STORED6,查看是否主从同步
##在主服务器上查看是否有写入的数据[root@master shell]# telnet 192.168.13.128 11211Trying 192.168.13.128...Connected to 192.168.13.128.Escape character is '^]'.get usernameVALUE username 0 71234567END##在从服务器上查看是否有写入的数据[root@slave shell]# telnet 192.168.13.129 11211Trying 192.168.13.129...Connected to 192.168.13.129.Escape character is '^]'.get usernameVALUE username 0 71234567END7,宕机主服务器,查看是否可用,实现高可用
[root@master shell]# systemctl stop keepalived.service[root@client ~]# telnet 192.168.13.100 12000 ##客户端仍然可以登录Trying 192.168.13.100...Connected to 192.168.13.100.Escape character is '^]'.谢谢阅读!
服务
服务器
配置
数据
文件
缓存
登录
主从
客户
客户端
节点
同步
关键
关键词
函数
地址
工具
拷贝
代理
相同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
帝国后台数据库配置
phpstorm和数据库
思特奇内存数据库
vue富文本框保存数据到数据库
软件开发人员年龄
我国第一部网络安全部门规章
我的世界创服务器教程
中国现有互联网前沿科技
数据库记录表
方舟怎么给服务器管理
海尔软件开发待遇
国电通网络技术有限公司咨询师
网络安全创业要求
网络安全保障的意义
北京兴业恒生网络技术
计算机网络技术在学校学什么
红瑞软件开发工作室
顽鹿竞技几个服务器
亿级规模用什么数据库
图数据库技术的十大案例
软件开发公司盗用设计
网络安全靠人民的稿子
数据库需求分析阶段
中科电集团网络安全
操作系统编程数据库
海康威视 管理服务器
台州电脑软件开发流程八个步骤
手机邮箱无法连接到服务器
静安区营销软件开发市场价格
广州博彩软件开发公司