memcached 的高可用配置和验证

搭建memcached 主主复制

(1)、搭建memcached 主主复制架构

Memcached 的复制功能支持多个 Memcached 之间相互复制(双向复制,主备都是可读可写的),可以解决 Memcached 的容灾问题。

memcached 本身不支持相互复制,需要卸载rpm 安装的memcached ,换带有支持复制功能的memcached;

yum -y remove memcached

(2)、环境准备

假设有两台服务器用于 Memcached 主主复制,分别为 Server A(192.168.1.20)和 Server B(192.168.1.21)。确保两台服务器都运行 CentOS 7 系统,并且网络可以正常通信。

(3)、安装依赖

在两台服务器上都执行以下命令安装编译所需的依赖:

yum install -y gcc make libevent-devel 

(4)、下载并安装支持复制的 Memcached(repcached)

repcached 是实现 Memcached 复制功能的扩展,以下是安装步骤:

1. 下载 repcached
wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz
还有一个文件:

可以从我的飞书文档下载(点击下面链接网页):

Docs

2. 解压文件
上传后查看:
[root@localhost ~]# ls
预计输出:
memcached-1.2.8-repcached-2.2.tar.gz
解压缩:
[root@localhost ~]# tar zxvf memcached-1.2.8-repcached-2.2.tar.gz

3. 配置编译选项

cd memcached-1.2.8-repcached-2.2

./configure --prefix=/usr/local/memcached  --enable-replication --with-libevent=/usr/lib64/

4. 编译并安装

make 
make install 

若有报错,请修改下面两个文件:

memcached.c文件:

vi   memcached.c   //改成如下样子,删了两行内容
​
55  /* FreeBSD 4.x doesn't have IOV_MAX exposed. */
    56  #ifndef IOV_MAX
    57  # define IOV_MAX 1024
    58  #endif

replication.c文件

vim replication.c
#查看
 head -n 12 replication.c

重新编译:

 make clean
 make &&make install

(5)、配置主主复制

1. 启动 Server 1的 Memcached
#创建对应的用户
useradd  memcached
​
#进到对应目录启动服务
cd /usr/local/memcached/bin
./memcached -d -u memcached  -m 64 -l 192.168.1.20 -p 11211 -x 192.168.1.21 
​
注:若配合调度器上面的指令改成
./memcached -d -u memcached  -m 64 -l 0.0.0.0 -p 11211 -x 192.168.1.21 
​
​
启动服务后一定要查看进程,看到底服务启动没
[root@gyh ~]# netstat -naptl |grep memcached
​
注:netstat 这个网络指令来源于net-tools 这个软件包,没有就自己安装!
yum -y insatll net-tools
​
#停掉服务的方法
pkill -9 memcached

参数说明:

  • -d:以守护进程模式运行。
  • -u root:以 root 用户身份运行。
  • -m 64:分配 64MB 内存给 Memcached。
  • -l 192.168.1.20:监听的 IP 地址。
  • -p 11211:监听的端口。
  • -x 192.168.1.21:指定要同步数据的对端服务器 IP。

2. 启动 Server B 的 Memcached

useradd  memcached 
​cd /usr/local/memcached/bin
./​memcached -d -u memcached -m 64 -l 192.168.1.21 -p 11211 -x 192.168.1.20 
​注:若配合调度器上面的指令改成
./memcached -d -u memcached -m 64 -l 0.0.0.0 -p 11211 -x 192.168.1.20 
​启动服务后一定要查看进程,看到底服务启动没
netstat -naptl |grep memcached​

参数含义与 Server A 类似,只是监听 IP 和同步对端 IP 相反。

6)验证主主复制

1. 在 Server A 插入数据
[root@server1 bin]# telnet 192.168.1.20 11211
Trying 192.168.1.20...
Connected to 192.168.1.20.
Escape character is '^]'.
set key1 0 0 3
yin
STORED
quit

2. 在 Server B 验证数据

telnet 192.168.1.11 11211 
get test_key 

如果能获取到在 Server A 上插入的数据,说明主主复制配置成功。同理,在 Server B 上插入数据,也应该能在 Server A 上获取到。 注意:同步的前提,使用相同用户启动服务

搭建memcached 主主复制+keepalived 高可用

(1)在两个节点上都安装keepalived

yum -y install keepalived ipvsadm

(2)在192.168.1.20的 /etc/keepalived/keepalived.conf上的配置

vrrp_script chk_memcached {
    script "/usr/bin/pgrep memcached"
    interval 2 
    weight -20 
}
vrrp_instance VI_1 {
    state MASTER 
    interface ens33 
    virtual_router_id 51 
    priority 100 
    advert_int 1 
    authentication {
        auth_type PASS 
        auth_pass 123456 
    }
    virtual_ipaddress {
        192.168.8.15/24 
    }
    track_script {
        chk_memcached 
    }
}

在192.168.1.21上的配置

vrrp_script chk_memcached {
    script "/usr/bin/pgrep memcached"
    interval 2
    weight -20
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.8.15/24
    }
    track_script {
        chk_memcached
    }
}

(3)启动keepalived

systemctl start keepalived 
systemctl enable keepalived 

(4) 测试故障切换

手动停止memcached: 在 192.168.1.20(master)

pkill -9 memcached

观察vip 飘逸

ip addr show ens33
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值