目标是做一个高可用的redis集群供 sensu使用。redis集群采用Sentinel + Redis 配置三节点。
配置详情可参考之前一篇博文Redis集群配置
Sentinel可以做到当master挂掉后,自动选举出新的master,然后它并不是一个proxy。因此我们需要一个proxy提供一个ip给client使用,本文使用HaProxy做代理。考虑到HaProxy单节点故障问题,使用Keepalived做HaProxy主从,从而实现一个高可用的Redis集群。
HaProxy:
我使用的HaProxy版本是1.4.21,可以去官网下。
[安装]
tar zxvf haproxy-1.4.21.tar.gz
mv haproxy-1.4.21 /usr/local/haproxy
cd /usr/local/haproxy
make install
[修改配置文件]
mkdir conf
cd conf
vim haproxy.cfg
一个最简单的配置例子
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
chroot /usr/local/haproxy
uid 99
gid 99
daemon
#debug
#quiet
defaults
log global
mode tcp
option redispatch
option dontlognull
retries 2
maxconn 2000
balance roundrobin
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen proxy 10.166.224.37:6379 #对client提供的VIP
#三个redis实例
server redis_10.122.224.36 10.166.224.36:6379 check inter 2000 rise 2 fall 5
server redis_10.122.224.35 10.166.224.35:6379 check inter 2000 rise 2 fall 5
server redis_10.122.224.33 10.166.224.33:6379 check inter 2000 rise 2 fall 5
[启动]
/usr/local/haproxy/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
下面关于Redis的文章您也可能喜欢,不妨参考下: