内容简介:Memcached 主主复制是指在任意一台 Memcached 服务器修改数据都会被同步到另外一台,但是Memcached API 客户端是无法判断链接到那一台服务器的,所以需要设置 VIP 地址,提供给 Memcached API 客户端进行链接。可以使用keepalived 产生的 VIP 地址链接主 Memcached 服务器,并且提供高可用架构。
Memcached 主主案例 :
Memcached 主主复制是指在任意一台 Memcached 服务器修改数据都会被同步到另外一台,但是Memcached API 客户端是无法判断链接到那一台服务器的,所以需要设置 VIP 地址,提供给 Memcached API 客户端进行链接。可以使用keepalived 产生的 VIP 地址链接主 Memcached 服务器,并且提供高可用架构。
实验环境 :
主机 | IP地址 | 操作系统 | 主要软件包 |
---|---|---|---|
Memcached 1 | 192.18.217.128 | CentOS 7.3 x86_64 | memcached libevent magent |
Memcached 2 | 192.18.217.129 | CentOS 7.3 x86_64 | memcached libevent |
客户端 | 192.18.217.130 | CentOS 7.3 x86_64 | Telnet |
案例实施 :
在两台服务器上安装 :
systemctl stop firewalld.service setenforce 0 tar xf memcached-1.5.6.tar.gz -C /opt/ #缓存服务 tar xf libevent-2.1.8-stable.tar.gz -C /opt/ #事件通知库 yum install gcc gcc-c++ make -y #安装环境包 cd /opt/libevent-2.1.8-stable ./configure --prefix=/usr #指定工作目录 make && make install cd /opt/memcached-1.5.6 ./configure \ --with-libevent=/usr #指定libevent的安装路径 make && make install ln -s /usr/local/memcached/bin/* /usr/local/bin/ #让系统识别命令 memcached -d -m 32m -p 11211 -u root #启动 memcached netstat -anpt | grep 11211 #查看 memcached 端口 yum install telnet -y [root@localhost memcached-1.5.6]# telnet 127.0.0.1 11211 #进入缓存数据库 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'.
在主缓存服务器配置 :
mkdir /opt/magent tar zxvf magent-0.5.tar.gz -C /opt/magent/ ketama.c magent.c ketama.h Makefile cd /opt/magent/ vim ketama.h #编辑配置文件 #ifndef SSIZE_MAX #define SSIZE_MAX 32767 #endif vim Makefile LIBS = -levent -lm make #生成的mgent程序让系统识别 cp magent /usr/bin/ #将magent可执行文件加入usr可执行命令中 scp magent root@192.168.217.129:/usr/bin/ #发送到从缓存服务器上
在主缓存服务器配置 :
1.配置 keepalived :
yum install keepalived -y #两台服务器安装 keepalived vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived vrrp_script magent { #添加脚本路径 script "/opt/shell/magent.sh" interval 2 ...... router_id 0001 #删除以下4行 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { #调用脚本 magent } virtual_ipaddress { 192.168.217.100 #虚拟IP } } 以下内容可以删除
2.编写 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.217.100 -p 12000 -s 192.168.217.128:11211 -b 192.168.217.129:11211 else pkill -9 magent fi #参数说明 : -n 51200 #定义用户最大连接数 -l 192.168.217.100 #虚拟IP -p 12000 #指定端口号 -s #指定主缓存服务器 -b #指定从缓存服务器 chmod +x magent.sh #添加执行权限 systemctl start keepalived.service netstat -antp | grep magent #查看12000端口是否开启
配置从缓存服务器 :
1.配置从缓存服务器 keepalived :
yum install keepalived -y vim /etc/keepalived/keepalived.conf ...... priority 90 #修改优先级 辨别活跃和备份 其它一样 ......
2.编写从缓存服务器 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.217.100 -p 12000 -s 192.168.217.128:11211 -b 192.168.217.129:11211 else pkill -9 magent fi #参数说明 : -n 51200 #定义用户最大连接数 -l 192.168.217.100 #虚拟IP -p 12000 #指定端口号 -s #指定主缓存服务器 -b #指定从缓存服务器 chmod +x magent.sh #添加执行权限 systemctl start keepalived.service netstat -antp | grep magent #查看12000端口是否开启
客户端测试 :
1.数据测试 ,添加数据。在主从缓存服务查看是否有 :
yum install telnet -y telnet 192.168.217.100 12000 #进入缓存数据库 Trying 192.168.217.100... Connected to 192.168.217.100. Escape character is '^]'. add username 0 0 7 #添加键值数据 1234567 STORED
2.故障测试 :
退出缓存数据库,把活跃 keepalived 关闭 ,在进入数据库 ,实现故障切换 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Magent搭建Memcached高可用群集
- Magent + Keepalived实现Memcached高可用群集
- Memcached高可用群集(Memcached主主复制+Keepalived)
- 领会Memcached高可用群集(Memcached主主复制+Keepalived)
- LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
- RabbitMQ 群集安装
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
程序员的职业素养
Robert C.Martin / 章显洲、余晟 / 人民邮电出版社 / 2012-9-1 / 49.00元
本书是编程大师Bob 大叔40 余年编程生涯的心得体会, 讲解成为真正专业的程序员需要什么样的态度、原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。 本书适合所有程序员,也可供所有想成为具备职业素养的职场人士参考。一起来看看 《程序员的职业素养》 这本书的介绍吧!