Centos7 下实现 memcached + keepalived 高可用群集
admin
2023-05-21 01:42:24
0

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.gz
tar xzvf libevent-2.1.8-stable.tar.gz

cd libevent-2.1.8
./configure --prefix=/usr    ##指定安装路径

make && make install   

cd 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服务需要这个模块

在主服务器上安装magent

mkdir /magent
tar xzvf magent-0.5.tar.gz

cd /magent
vim ketama.h
修改
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767

vim Makefile
LIBS = -levent -lm

make

cp magent /usr/bin   ##方便系统识别命令

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

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

在主服务器上安装keepalived

vim /etc/keepalived/keepalived.conf
router—_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
}        ## 使用新函数

定义一个虚拟IP
virtual_ipaddress {
    192.168.x.x
    }

下面多余的部分可以全部删除

在从服务器上安装keepalived

yum install keepalived 

从主服务器上把配置脚本复制到从服务器上
scp /etc/keepalived/keepalived.conf root@192.168.x.x.:/etc/keepalived/keepalived.conf

vim /etc/keepalived
router_id MAGENT_HB
state BACKUP     ##从服务器
virtual_router_id 52    ##ID不同
priortity 90     ##优先级

在主服务器上配置 magent脚本

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.x.x -p 12000 -s 192.168.x.x:11211 -b 192.168.x.x:11211
else
pkill -9 magent
fi

-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:11211
else
pkill -9 magent
fi  

chmod +x magent.sh

主从服务器开启keepalived服务

systemctl start keepalived.service

netstat -ntap |grep 12000

如果有12000端口表示服务开启成功

登录memcached服务器

memcached -m 512k -u root -d -l 192.168.xx 主 -p  11211
memcached -m 512k -u root -d -l 192.168.x.x 从 -p  11211

netstat -ntap |grep 11211

有11211端口表示服务开启成功

测试

在第三台服务器上安装 telnet
yum install telnet -y

telnet 192.168.x.x(虚拟IP) 12000
add username 0 0 7
1234567
Stored 
quit
## 通过虚拟IP登录 并创建一个用户

telnet 192.168.x.x(主/从服务器) 11211
get username
VALUE username 0 7
1234567
END
quit
##  在主从服务器上都能得到这个数据

在主服务器上关掉 memcached
pkill -9 memcached

192.168.x.x(虚拟IP) 12000
add username 0 0 7
1234567
Stored 
quit
## 通过虚拟IP 写入数据

telnet 192.168.x.x(从服务器) 11211
get username
VALUE username 0 7
1234567
END
quit
## 从服务器依然能读取到

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

相关内容

热门资讯

特朗普:与伊朗的谈判将分两阶段... △当地时间8月3日,美国总统特朗普在白宫回答记者提问。当地时间8月3日,美国总统特朗普在白宫回答记者...
汇艺银河里首届微醺节圆满收官 ... 多元业态协同联动,探索郑东商圈夜间消费新场景首届汇艺银河里微醺节圆满收官。活动立足郑州高铁东站商圈核...
西班牙警方:约7.35万名移民... △8月3日,西班牙北非飞地休达,从摩洛哥入境的移民聚集在海滩上。当地时间8月3日,西班牙警方表示,约...
美军称继续海上封锁伊朗,已改变... 当地时间8月3日,美国中央司令部表示,美军继续严格执行对伊朗的海上封锁。截至当天,美军已改变44艘商...
“控制”格陵兰岛,特朗普罕见列... 据美国《新闻周刊》和英国《独立报》8月2日报道,美国总统特朗普日前在接受采访时声称,格陵兰岛将在他本...
脑机接口,新突破,深度布局的1... (来源:逍遥财情) 8月1日,两项关于脑机接口行业的新国家标准开始实施,这两项标准相当于为整个行业制...
特朗普:与伊朗的谈判已开始,计... 当地时间8月3日,美国总统特朗普在社交平台“真实社交”(Truth Social)发文称,与伊朗的谈...
唐山电缆测绘现场案例 唐山电缆测绘现场案例 探测背景: 本次服务对象为唐山某测绘公司,因后期甲方需开展开挖作业,需提前明确...
聚焦能源与前沿科技!山西启动重... 为持续完善全省科技创新平台体系,夯实基础研究根基、打通科技成果产业化链条,加快培育新质生产力,赋能全...
四川:到2026年底推动阿里云... 《四川省推进算力设施优化布局提质建设和算电融合发展实施方案(2026—2028年)》近日印发。其中提...