memcached+keepalived+magent高群集
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,简述 magent是一款开源的代理服务软件,我们可以通过它来实现缓存数据的同步,当然这里说的同步不是说memcached之间就能互相通讯了, 而magent可以同时连接多个memcached节点, 通
千家信息网最后更新 2025年01月23日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.100
1,配置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 0
2,配置主服务器,安装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 11211
5,用客户端登录
[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 ##添加一个数据1234567STORED
6,查看是否主从同步
##在主服务器上查看是否有写入的数据[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 71234567END
7,宕机主服务器,查看是否可用,实现高可用
[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安全错误
数据库的锁怎样保障安全
嵌入式软件开发区小吃街成都
服务器级gpu景嘉微
网络技术侦查的概念
怎么使用toolbox进服务器
东莞酒店软件开发电话
北京推理服务器供应公司
数据库 接口方式
简述计算机网络安全及对策
界面开发用什么软件开发
秦皇岛软件开发学校
千万级数据库模糊匹配
互联网是高科技发明吗
什么是二次数据库
上海宏弈围棋服务器
假期网络安全护苗
逃跑吧少年移动服务器
服务器联想和惠普谁好
网络安全问题的案例
服务器限制和设置
国电通网络技术有限公司邮编
四川有哪些软件开发公司
获取数据库某个字段的长度
网络安全问题预防纠治
数据库建立关系时两张表能否打开
配置远程服务器
网络安全解决方案大全
网络安全好读书知识版权画报
上海新能源网络技术应用范围
软件开发口号
计算机网络安全论文500