redis的sentinel哨兵3节点failover主从复制

来源:互联网 发布:淘宝商铺怎么开通花呗 编辑:程序博客网 时间:2024/04/25 01:32
1、安装3个linux节点
参照单机版的安装:http://blog.csdn.net/jiongyi1/article/details/78114709
分别是centos1,centos2,centos3
并且在3台机器配置/etc/hosts文件:
192.168.56.2 centos1
192.168.56.3 centos2
192.168.56.4 centos3

2、配置读写分离
假设centos1是master,
那么只需要在centos2和centos3的6379.conf配置:
slaveof masterip masterport
开启6379端口
参考:centos7永久开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
Then remember to reload the firewall for changes to take effect.
firewall-cmd --reload

3、配置3个sentinel,实现failover
创建目录
mkdir /etc/sentinel #sentinel.conf配置文件存储目录
mkdir -p /var/sentinel/5000 #sentinel存储数据目录
mkdir -p /var/log/redis #日志存放目录

复制sentinel.conf
cp sentinel.conf /etc/sentinel/5000.conf
编辑5000.conf
port 5000 #默认是26379
bind centos1 #配置真实ip也可以,另外2台为centos2、centos3
daemonize yes # 后台运行
logfile /var/log/redis/sentinel_5000.log #日志文件
dir /var/sentinel/5000 #数据存储目录
sentinel monitor mymaster centos1 6379 2 #centos1 为redis(非sentinel)的master
sentinel down-after-milliseconds mymaster 30000 #sentinel 与redis master失联超时时间,超过即sdown(主观)
sentinel failover-timeout mymaster 60000 #slave 升级为master的超时时间,具体含义见文档(我也不清楚,包括1、slave 向新的master同步数据,2、所有slave更新master信息、3、取消slave变为 master(slave还没完全执行完slaveof no one))
sentinel parallel-syncs mymaster 1 # 执行failover(salve to master)时,同时最多有多少个slave向新的master同步数据,数量越多,failover时间越长
开启5000端口
firewall-cmd --zone=public --add-port=5000/tcp --permanent
Then remember to reload the firewall for changes to take effect.
firewall-cmd --reload

经过以上就配置完成了
3、启动哨兵进程

在centos1,centos2,centos3三台机器上,分别启动三个哨兵进程,组成一个集群,观察一下日志的输出
下面2种方式都可
redis-sentinel /etc/sentinel/5000.conf
redis-server /etc/sentinel/5000.conf --sentinel

日志里会显示出来,每个哨兵都能去监控到对应的redis master,并能够自动发现对应的slave

哨兵之间,互相会自动进行发现,用的就是之前说的pub/sub,消息发布和订阅channel消息系统和机制

4、检查哨兵状态

redis-cli -h centos1 -p 5000

sentinel master mymaster
SENTINEL slaves mymaster
SENTINEL sentinels mymaster

SENTINEL get-master-addr-by-name mymaster




原创粉丝点击