Memcached主从复制+keepalived架构

实现主从复制和高可用的方式

Memcached主从复制是指在主Mencached服务器上修改数据都会被同步到其他服务器上,MemcachedAPI客户端是无法判断连接到那一台Memcached服务器,所以需要VIP地址,提供给MemcachedAPI客户端进行连接。可以使用keepaived产生的VIP地址连接主Memcached服务器来完成,并且提供高可用架构。

环境准备
服务器 IP地址的 主要软件
主Memcached 192.168.100.21 libevent、memcached、magent、keepalived
从Memcached 192.168.100.22 libevent、memcached、magent
Client 192.168.100.23 telnet

安装环境包

yum -y install gcc gcc-c++ make

解压软件包

tar zxf memcached-1.5.9.tar.gz -C /opt/
tar zxf libevent-2.1.8-stable.tar.gz -C /opt/

编译安装libevent

cd libevent-2.1.8-stable/
./configure --prefix=/usr/
make && make install

编译安装memcached

cd memcached-1.5.9/
./configure --with-libevent=/usr
make && make install
优化启动
ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6
//memcached自带有复制功能,如果不建立软连接,则启动会失败

在主服务器上安装magent

magent是一个memcached代理软件,防止单点故障,缓存代理也可以着备份

cd /opt/magent
vim ketama.h                                    //修改文件
#ifndef SSIZE_MAX                         //修改
#define SSIZE_MAX 32767            //修改
#endif                                              //末行也有一行#ndif,删除
vi Makefile                                     //修改文件
LIBS = -levent -lm                         //此处为lm,不是一
make                                            //编译完成之后会生成一个magent可执行文件

让服务便于系统识别

cp /opt/magent/magent /usr/bin/
scp /opt/magent/magent [email protected]:/usr/bin/     //发送到从服务器上
主从服务器安装keepalived
yum -y install keepalived

修改主从服务器配置文件

vim/etc/keepalived/keepalived.cof
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id MAGENT_HA  //自定义不要和从服务器一样就OK
}
vrrp_script magent {
        script "/opt/shell/magent.sh" //定义一个函数,此时该脚本还未创建,要在实例外面定义
        interval 2
}
vrrp_instance VI_1 {
    state MASTER     //MASTER (主)BACKUP(从)
    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.100.100   #虚拟出来了VIP
    }
}

写主服务器shell脚本

#!/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.100.100 -p 12000 -s 192.186.100.21:11211 -b 192.168.100.22:11211
else
pkill -9 magent
fi
##参数解释
-n 51200                                   #定义用户最大连接数
-l 192.168.175.188                    #指定虚拟IP
-p 12000                                 #指定端口号
-s                                             #指定主缓存服务器
-b                                           #指定从缓存服务器
chmod +x magent.sh            #增加可执行权限

写从服务器脚本

make /opt/shell
vim magent.sh

#!/bin/bash
K=`ip addr | grep 192.168.100.100 | grep -v grep | wc -l`
if [ $K -gt 0 ]; then
        magent -u root -n 51200 -l 192.168.100.100  -p 12000 -s 192.168.100.21:11211 -b 192.168.100.22:11211
else
pkill -9 magent
fi
chmod +x magent.sh            //增加可执行权限

关闭主从服务器防火墙及selinux

systemctl stop firewalld.service
setenforce 0

开启主从服务器上keepalived

systemctl start keepalived.service
netstat -ntap | grep 12000        //端口开启可能有点延迟,稍作等待
ipa ddr                           //查看主服务器上是否绑定VIP



主从服务器上开启memcached

memcached -m 512k -u root -d -l 192.168.100.21 -p 11211    //主服务器
memcached -m 512k -u root -d -l 192.168.100.22 -p 11211    //从服务器
netstat -ntap | grep 11211

客户端测试

测试连通性
yum -y install telnet
telnet 192.168.100.100 12000   //采用VIP连接

测试单点故障

systemctl stop keepalived.service  //关闭主服务器keepalived服务
ipaddr   //查看VIP是否漂移到从服务器上

原文地址:http://blog.51cto.com/13660858/2151462

时间: 2024-11-10 12:08:55

Memcached主从复制+keepalived架构的相关文章

Memcached主从复制+keepalived高可用架构

实现主从复制和高可用的方式 Memcached主从复制是指在主Mencached服务器上修改数据都会被同步到其他服务器上,MemcachedAPI客户端是无法判断连接到那一台Memcached服务器,所以需要VIP地址,提供给MemcachedAPI客户端进行连接.可以使用keepaived产生的VIP地址连接主Memcached服务器来完成,并且提供高可用架构. 环境准备 系统版本:Centos7 服务器规划 服务器 IP地址 主要软件 主Memcached 172.16.10.24 libe

Memcached集群架构方面的问题(转)

add by zhj: 这是一个系列中的第二篇,该系列有四篇,英文原文没找到,译文见:http://blog.csdn.net/jarfield/article/details/4336035 ,附上另外三篇链接http://blog.csdn.net/jarfield/article/details/4322953,http://blog.csdn.net/jarfield/article/details/4341819, http://blog.csdn.net/jarfield/artic

高可用软件Keepalived学习之Keepalived架构学习

最近在测试新游戏的部署方案,我们正在测试的一款手游后端代码部署采用HAProxy+Keepalived的方式进行部署,所以顺便研究下Keepalived的详细资料. Keepalived的官方地址是http://www.keepalived.org/index.html Keepalived是一个用C语言编写的路由软件,它的目的是为Linux系统或基于Linux系统的基础架构提供简单而强壮的负载均衡和高可用机制.负载均衡框架依赖于LVS的内核模块并提供四层负载均衡功能.它可以根据负载均衡器后端的

部署Memcached+magent+keepalived高可用集群

Memcached+magent+keepalived高可用集群 magent是一款开源的代理服务软件,我们可以通过他来实现缓存数据的同步,当然这里说的同步不是说memcached之间就能互相通讯了, 而magent可以同时连接多个memcached节点, 通过magent绑定的VIP从客户端登录memcached写入数据,其他节点的memcached数据也会同步.? 案例环境 主机名称 IP 主要软件 memcached主 192.168.200.128 Magent.memcached.li

Redis 之 主从复制 + Keepalived 实现高可用

一.Redis 主从复制 + Keepalived 实现高可用 作用:保证Redis高可用,首先搭建Redis 主从复制,然后在主从两台机器上分别安装keepalived服务,把VIP定位在主Redis上,以供对外提供服务,然后在主服务机器上,添加守护进程,判断redis进程是否正常,如不正常,把keepalived服务停止,使VIP漂移到从服务器上,并且在从服务器上添加相应的守护进程,实时判断VIP是否在本机上,如在,立刻执行从库提升为主库. 二.网络拓扑图 三.分别在两台机器安装Redis

Memcached 集群架构与memcached-session-manager

Memcached 集群架构方面的问题_知识库_博客园https://kb.cnblogs.com/page/69074/ memcached-session-manager配置 - 学习中间件调优管理监控的专栏 - CSDN博客https://blog.csdn.net/big1980/article/details/8454333 memcached+magent实现memcached集群 - 快乐就好 - 博客园http://www.cnblogs.com/happyday56/p/346

Memcached 主主复制+ Keepalived 实现 Memcached 高可用架构集群

Memcached +keepalived 高可用集群 Memcached 主主复制这种架构,在程序连接时不知道应该连接哪个主服务器,所以需要在前端增加 VIP 地址,实现高可用架构.这里用 Keepalived 实现,因而 Keepalived 的作用就是用来检测 Memcached 服务器的状态是否正常. Keepalived 不断检测 Memcached 主服务器的11211端口,如果检测到 Memcached 服务发生宕机或者死机等情况,就会将 VIP 从主服务器移至从服务器,从而实现

memcached主从复制

Repcached介绍 Repchched项目地址:http://repcached.sourceforge.net/ 关于repcached"repcached"是一个补丁集合,它添加数据复制功能到memcached 1.2.x. 主要目的 实现冗余memcached系统. 主要功能 多主复制. 异步数据复制. 支持所有的memcached命令(set, add, delete, incr/decr, flush_all, cas). Memcached 1.4.x的Repcache

Memcached + Magent + keepalived高可用集群

一.前言 magent是一款开源的代理服务软件,我们可以通过它来实现缓存数据的同步,当然这里说的同步不是说memcached之间就能互相通讯了, 而magent可以同时连接多个memcached节点, 通过magent绑定的VIP从客户端登录memcached写入数据,其他节点的memcached数据也会同步. 二.架构部署 环境说明:1.配置 memcache 主缓存节点和从缓存节点(两台服务器配置相同) yum install gcc gcc-c++ make -y 1.tar zxvf m