博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Memcached主主复制+Keepalived高可用群集
阅读量:5773 次
发布时间:2019-06-18

本文共 3525 字,大约阅读时间需要 11 分钟。

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.servicesetenforce 0tar 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 installln -s /usr/local/memcached/bin/* /usr/local/bin/  #让系统识别命令memcached -d -m 32m -p 11211 -u root    #启动 memcachednetstat -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/magenttar zxvf magent-0.5.tar.gz -C /opt/magent/ketama.cmagent.cketama.hMakefilecd /opt/magent/vim ketama.h    #编辑配置文件#ifndef SSIZE_MAX#define SSIZE_MAX 32767#endifvim Makefile   LIBS = -levent -lmmake   #生成的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 keepalivedvrrp_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/shellvim /opt/shell/magent.sh#!/bin/bashK=`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:11211elsepkill -9 magentfi#参数说明 :-n 51200  #定义用户最大连接数-l 192.168.217.100   #虚拟IP-p 12000  #指定端口号-s        #指定主缓存服务器-b        #指定从缓存服务器chmod +x magent.sh        #添加执行权限systemctl start keepalived.servicenetstat -antp | grep magent   #查看12000端口是否开启

配置从缓存服务器 :

1.配置从缓存服务器 keepalived :

yum install keepalived -y        vim /etc/keepalived/keepalived.conf......    priority 90             #修改优先级 辨别活跃和备份  其它一样    ......

2.编写从缓存服务器 magent 脚本 :

mkdir /opt/shellvim /opt/shell/magent.sh#!/bin/bashK=`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:11211elsepkill -9 magentfi#参数说明 :-n 51200  #定义用户最大连接数-l 192.168.217.100   #虚拟IP-p 12000  #指定端口号-s        #指定主缓存服务器-b        #指定从缓存服务器chmod +x magent.sh        #添加执行权限systemctl start keepalived.servicenetstat -antp | grep magent   #查看12000端口是否开启

客户端测试 :

1.数据测试 ,添加数据。在主从缓存服务查看是否有 :

yum install telnet -ytelnet 192.168.217.100 12000   #进入缓存数据库Trying 192.168.217.100...Connected to 192.168.217.100.Escape character is '^]'.add username 0 0 7  #添加键值数据1234567STORED

2.故障测试 :

退出缓存数据库,把活跃 keepalived 关闭 ,在进入数据库 ,实现故障切换 。

转载于:https://blog.51cto.com/13640803/2151608

你可能感兴趣的文章
算法面试题解答(一)
查看>>
ES6笔记(3)-- 解构赋值
查看>>
面试准备之JVM的组成、垃圾回收机制
查看>>
作业13-web基础
查看>>
【NOIP 2015 D1 T2】信息传递(图论--带权并查集/bfs)
查看>>
JavaScript语言知识收藏
查看>>
C项目实践--贪吃蛇(1)
查看>>
Redhat enterpise6 安装unix2dos/dos2unix
查看>>
notepad++插件无法安装的解决方法
查看>>
nubia Z5 mini 小牛 黑砖qhsusb dload修复
查看>>
php nginx 实时输出的简单实现方法简介
查看>>
extern “c” 用法
查看>>
QT显示中文的几个问题
查看>>
SQLite中的execSQL()和rawQuery()方法
查看>>
Python基本的数据清洗
查看>>
详解php的curl几个函数
查看>>
Halcon算子翻译——case
查看>>
halcon算子翻译——change_domain
查看>>
Shell 环境变量也是变量
查看>>
java jdk8 lambda表达式
查看>>