Memcached高可用搭建过程
一、Memcached作用
2)在无数的大型网站中,Memory Cache起着至关重要的作用,往往这些大型网站会用上百台Memory Cache服务器。
3)而在中小型的项目中,适当使用Memory Cache(性能与成本之间的妥协)也是非常有必要的。
二、高可用架构
1)memcache负责缓存对象。
2)repcached负责单主单从的同步备份。
3)haproxy负责Magent的负载均衡。
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
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
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
3)配置keepalived
因为我之前配置过keepalived,所以这里只需要添加相关的配置即可。
可以参考http://blog.****.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