美文网首页JAVA技术文章
redis的sentinel哨兵3节点failover主从复制

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

作者: rejoice001 | 来源:发表于2017-12-07 19:53 被阅读20次

    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

    相关文章

      网友评论

        本文标题:redis的sentinel哨兵3节点failover主从复制

        本文链接:https://www.haomeiwen.com/subject/afvjixtx.html