Memcached高可用搭建过程

一、Memcached作用

1)Memory Cache — 使用内存作为数据的缓冲,加快数据的读取,减少DB服务器的负担。
2)在无数的大型网站中,Memory Cache起着至关重要的作用,往往这些大型网站会用上百台Memory Cache服务器。
3)而在中小型的项目中,适当使用Memory Cache(性能与成本之间的妥协)也是非常有必要的。

二、高可用架构

Memcached高可用搭建过程
1、组件承担的角色 
1)memcache负责缓存对象。 
2)repcached负责单主单从的同步备份。 
3)haproxy负责Magent的负载均衡。
4)对外提供一个vip访问。

2、集群思路 
1)利用repcached对memcache进行1对1的主备设计。 
2)所有节点均提供主备,避免单点故障发生。

3、部署环境

系统:centos 7.4 x64

环境采用 2个主memcache  2个haproxy

角色              Ip地址                  部署软件

HAproxy01 192.168.166.21(A)    HAproxy+keepalived

HAproxy02192.168.166.22(B)    HAproxy+keepalived

Memcached01  192.168.166.31(主)Memcache-1.2.8-repcached-2.2

Memcached02  192.168.166.32(主)Memcache-1.2.8-repcached-2.2



haproxy与keepalived这里就不在详解了,可以参考http://blog.csdn.net/sj349781478/article/details/78862315


1)安装memcached-repcached
1.下载
wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz
tar -zxf memcached-1.2.8-repcached-2.2.tar.gz
2.安装libevent-devel包:
 yum install libevent-devel -y
3.编译安装repcached
 cd memcached-1.2.8-repcached-2.2
 ./configure --enable-replication --program-transform-name=s/memcached/repcached/
 make
 make install
这里编译会遇到个小问题,把报错输入百度可以查到
4.启动master,端口默认是11211      IP: 192.168.166.31
/usr/local/bin/repcached -p 11211 -x 192.168.166.31 -v -d -u root
5.启动slave 端口任意,默认同步端口11211    IP: 192.168.166.32
/usr/local/bin/repcached -p 11211 -x 192.168.166.32 -v -d -u root
6.加入开机自启动
vi /etc/rc.d/rc.local
/usr/local/bin/repcached -d -m 1024 -p 11211 -u root -c 1024  -x 192.168.166.31 -X 11211


2)HAproxy配置

vi /etc/haproxy/haproxy.cfg

listen memcached_repcache_cluster 0.0.0.0:11211
 mode  tcp
 option tcplog
 balance roundrobin
 server memcache01 192.168.166.31:11211 check inter 5000 rise 2 fall 2
 server memcache02 192.168.166.32:11211 check inter 5000 rise 2 fall 2


配置完需要重启HAproxy

# service haproxy restart

Memcached高可用搭建过程

3)配置keepalived

因为我之前配置过keepalived,所以这里只需要添加相关的配置即可。

可以参考http://blog.csdn.net/sj349781478/article/details/78862315

vi /etc/keepalived/keepalived.conf

主机

vrrp_instance memcache {
    state MASTER
    interface eth1
    virtual_router_id 29
    priority  150
    authentication {
        auth_type PASS
        auth_pass 29
    }
    virtual_ipaddress {
    192.168.166.29
    }
    track_script {
         chk_haproxy
    }
    notify_master "/etc/keepalived/scripts/haproxy_master.sh"
}

备机

vrrp_instance memcache {
    state BACKUP
    interface eth1
    virtual_router_id 29
    priority  100
    authentication {
      auth_type PASS
      auth_pass 29
    }
    virtual_ipaddress {
    192.168.166.29
    }
    track_script {
         chk_haproxy
    }
    notify_master "/etc/keepalived/scripts/haproxy_master.sh"
}


重新启动keepalived