千家信息网

Memcached集群

发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,配置memcached主缓存节点和从缓存节点-----两台配置相同开启三台虚拟机:192.168.80.100 配置memcached主缓存节点 192.168.80.101 配置
千家信息网最后更新 2024年10月19日Memcached集群
配置memcached主缓存节点和从缓存节点-----两台配置相同开启三台虚拟机:192.168.80.100      配置memcached主缓存节点 192.168.80.101      配置memcached从缓存节点192.168.80.102
1.关闭防火墙机及Selinux[重要](三台开始都要启动)systemctl stop firewalld          //关闭防火墙setenforce 0                           //关闭监控
2.安装环境包yum install gcc gcc-c++ make -y

3.编译安装libevent(必须先安装)安装上传软件yum install lrz* -y

#解压tar xf libevent-2.1.8-stable.tar.gz -C /opttar xf memcached-1.5.6.tar.gz -C /opt/#切换到libevent目录cd /opt/libevent-2.1.8-stable/

#配置./configure --prefix=/usr/local/libevent
#编译及安装make && make install
3.编译安装memcached#切换到memcachedcd /opt/memcached-1.5.6/
#配置(指定libevent路径)./configure \--prefix=/usr/local/memcached \--with-libevent=/usr/local/libevent/
#编译及安装make && make install
4.优化启动(支持复制功能的Mencached需要安装后的libevent-2.1.so.6模块,不然启动服务会报错)ln -s /usr/local/libevent/lib/libevent-2.1.so.6.0.2  /usr/lib64/libevent-2.1.so.6 
5.分别在两台服务器上启动memcached#主服务器cd /usr/local/memcached/bin/./memcached -d -m 32m -l 192.168.80.100 -p 11211 -u root#从服务器cd /usr/local/memcached/bin/./memcached -d -m 32m -l 192.168.80.101 -p 11211 -u root6.检查memcached是否启动netstat -anpt | grep memcached netstat -ntap | grep 11211

magent在主服务器安装,从服务器不用安装编译安装magent1.创建magent目录mkdir /opt/magent2.解压tar xf magent-0.5.tar.gz -C /opt/magent3.切换到目录cd /opt/magent4.让动态链接库为系统所共享/sbin/ldconfig

5.编辑ketama.h,添加文件头部信息    vi ketama.h    #ifndef SSIZE_MAX    #define SSIZE_MAX 32767

6.修改Makefilevi Makefile     //libevent安装路径在/usr/local/libevent中使用以下内容:LIBS = -levent -lm  -L /usr/local/libevent/libINCLUDE=-I /usr/local/libevent/include

Magent + Keepalived实现Memcached高可用群集7.编译(完成后会生成一个manage的可执行文件)make

8.复制mgent命令到系统管理中,便于使用cp /opt/magent/magent /usr/bin/9.发送至从服务器scp /opt/magent/magent root@192.168.80.101:/usr/bin

安装keepalivedyum -y install keepalived
1.编辑keepalived配置文件 vi /etc/keepalived/keepalived.conf     把里面内容删除添加以下内容! Configuration File for keepalivedglobal_defs {      router_id magent_H1         #指定router_id}vrrp_script magent {                 #定义函数    script "/root/shell/magent.sh"    interval 2}vrrp_instance VI_1 {    state MASTER    interface ens32             #本地网卡名称    virtual_router_id 51       #id主从一致    priority 100                    #主优先级大于从优先级    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }track_script {                  #调用函数        magent    }virtual_ipaddress {         #vip地址        192.168.80.188    }}

2.建立shell目录mkdir /root/shell3.创建magent.sh脚本vi /root/shell/magent.sh#!/bin/bashKeepalived=`ps -ef | grep keepalived | grep -v grep | wc -l`if [ $Keepalived -gt 0 ]; then        magent -u root -n 51200 -l 192.168.80.188 -p 12000 -s 192.168.80.100:11211 -b 192.168.80.101:11211else        pkill -9 magentfi
参数说明:      -n 51200                #定义用户最大连接数      -l 192.168.175.188                #指定虚拟IP      -p 12000                   #指定端口号      -s                              #指定主缓存服务器      -b                              #指定从缓存服务器

4.赋予脚本执行权限chmod +x /root/shell/magent.sh5.启动keepalived服务systemctl enable keepalivedsystemctl start keepalivednetstat -anpt | grep 12000

6.检查keepalived服务状态systemctl status keepalived

7.检查vip地址ip addr show ens32

netstat -anpt | grep 11211

在从服务器上操作1.安装keepalivedyum -y install keepalived
2.将主服务器上keepalived配置文件复制过来scp root@192.168.80.100:/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf 

3.编辑keepalived配置文件vi /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {      router_id magent_H2              #指定router_id}vrrp_script magent {                #定义函数    script "/root/shell/magent.sh"    interval 2}vrrp_instance VI_1 {    state BACKUP    interface ens33             #本地网卡名称    virtual_router_id 51        #id主从一致    priority 90             #主优先级大于从优先级    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {         #vip地址        192.168.80.188    }    track_script {              #调用函数        magent    }}

4.新建shell目录mkdir /root/shell5.创建magent.sh脚本vi /root/shell/magent.sh#!/bin/bashKeepalived=`ip addr | grep 192.168.80.188 | grep -v grep | wc -l`if [ $Keepalived -gt 0 ]; then        magent -u root -n 51200 -l 192.168.80.188 -p 12000 -s 192.168.80.100:11211 -b 192.168.80.101:11211else        pkill -9 magentfi

6.赋予脚本执行权限chmod +x /root/shell/magent.sh7.启动keepalived服务systemctl enable keepalivedsystemctl start keepalived

8.检查keepalived服务状态systemctl status keepalived

9.检查vip地址ip addr show ens32

在客户端测试1.安装telnet客户端yum install telnet -y

2.连接memcached测试复制功能//连接vip进行测试,插入user键值telnet 192.168.80.188 12000Trying 192.168.80.188...Connected to 192.168.80.188.Escape character is '^]'.set user 0(标签) 0(缓存时间永不过期) 5(缓存内容)12345STOREDget userVALUE user 0 512345ENDquitConnection closed by foreign host.//连接Memcached1,查询user键值,可以获取,成功!telnet 192.168.80.100 11211Trying 192.168.80.100...Connected to 192.168.80.100.Escape character is '^]'.get userVALUE user 0 512345ENDquitConnection closed by foreign host.

//连接Memcached2,查询user键值,也可以获取,成功![root@centos7-1 ~]# telnet 192.168.80.101 11211Trying 192.168.80.101...Connected to 192.168.80.101.Escape character is '^]'.get userVALUE user 0 512345ENDquitConnection closed by foreign host.

测试单点故障停止主服务器,去连接漂移地址,查看有木有出现内容
0