Memcached 高可用集群架构

通常我们通过memcached 缓存业务数据减轻数据库的压力实现系统的高性能,但是,在高并发的情况下如果memcached不可用的话,相应的请求都会压到后端的数据库上。大量的请求压到数据库上,使数据库响应变慢,导致服务阻塞,最终可能产生雪崩效应导致整个系统不可用,如何防止这样的问题?搭建高可用的memcached集群是防止此问题的一个途径。

下面描述了如和通过使用memcached replication 版本以及keepalived 实现高可用集群

软件准备

1:install memcached replication 版本

      wget http://sourceforge.net/projects/repcached/files/latest/download?source=files

       ./configure --enable-replication && make && make install 


2:install keepalived

       如果遇到问题可以参考

软件配置

   通过keepalived 向客户端提供VIP地址、实现Failover。

   keepalived 配置如下:

   【backup】

vrrp_instance VI_MEM_USER {

        virtual_router_id 51

        track_interface {

                eth0

        }

        priority 100

        advert_int 1

        interface eth0

        virtual_ipaddress {

                192.168.56.200/24

        }

}

 【master】

vrrp_instance VI_MEM_USER {

        virtual_router_id 51

        track_interface {

                eth0

        }

        priority 150

        nopreempt

        advert_int 1

        interface eth0

        virtual_ipaddress {

                192.168.56.200/24

        }

}


   【注意】

   通过在master上配置 非抢占nopreempt 防止 master --backup 之间的频繁切换。master,backup同过priority区分,在此可以不配 state。

使用

      1:启动 memcahed   ,memcached -vv -x ip1 -d ; memcached -vv -x ip2 -d, 实现双向复制

      2  : 客户端可以通过VIP 192.168.56.200 来访问 集群

缺点

     集群中只可以有两个memcached实例

猜你喜欢

转载自movenut.iteye.com/blog/1653721