美文网首页redis
redis哨兵集群搭建

redis哨兵集群搭建

作者: 番茄不爱炒鸡蛋 | 来源:发表于2018-12-08 14:30 被阅读0次

    今天我们介绍redis的哨兵集群的搭建过程。
    之前的文章中我们介绍了redis 的主从搭建的方式,但是主从集群的方式有个弊端,就是在主数据库宕机之后,整个集群没法再对外提供服务。所以redis在3.0版本之前提供了一种哨兵的解决方案。
    所谓的哨兵模式,简单来说是在之前主从集群的基础上多增加一个哨兵节点去监控主数据库的状态,一旦主数据库无法对外提供服务,则会将其中一台从数据库升级为主数据库继续对外提供服务。

    准备工作:三台虚拟机(192.168.204.201,192.168.204.202,192.168.204.203),并在这三台机器上搭建好redis的主从集群。

    作为哨兵的服务可以安装在搭建主从集群的机器上,也可以不在,哨兵服务也可以是集群,也可以是单台,本示例中我们只是演示,因此只部署一台哨兵服务。

    1.在202机器(从)上讲哨兵的配置文件复制到redis的etc目录下:
    cp /usr/redis-2.8.3/sentinel.conf /usr/redis/etc/
    2.将哨兵程序复制到redis的bin目录下:
    cp /usr/redis-2.8.3/src/redis-sentinel /usr/redis/bin/
    3.进入redis下的etc目录,并修改哨兵的配置文件sentinel.conf
    cd /usr/redis/etc
    vi sentinel.conf
    4.修改如下配置
    -- 当前Sentinel服务运行的端口
    port 26379
    -- 哨兵监听的主服务器
    sentinel monitor mymaster 192.168.204.201 6379 1
    -- 3s内mymaster无响应,则认为mymaster宕机了
    sentinel down-after-milliseconds mymaster 3000
    -- 如果10秒后,mysater仍没启动过来,则启动failover
    sentinel failover-timeout mymaster 10000
    -- 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
    sentinel parallel-syncs mymaster 1
    5.此时我们分别启动三台机器上的redis服务
    ./redis-server /usr/redis/etc/redis.conf
    6.启动哨兵程序
    ./redis-sentinel /usr/redis/etc/sentinel.conf

    哨兵程序启动后的日志
    如上图我们可以看到哨兵程序会对201机器进行一个监听
    7.此时我们kill掉201机器上的redis进程
    杀掉201机器中的redis进程
    哨兵日志中显示主机已经切换为203机器
    8.此时我们分别查看202和203机器上redis的信息
    203机器
    202机器

    至此,我们已经将redis的哨兵集群搭建完成。

    哨兵集群的优点:同时监控,提醒,自动故障转移。
    监控(Monitoring):Sentinel会不断地检查你的主服务器和从服务器是否允许正常。
    提醒(Notification):当被监控的某个Redis服务器出现问题时,Sentinel可以通过API向管理员或者其他应用程序发送通知。
    自动故障迁移(Automatic failover):
    a.当一个主服务器不能正常工作时,Sentinel会开始一次自动故障迁移操作,他会将失效主服务器的其中一个从服务器升级为新的主服务器,并让失效主服务器的其他从服务器改为复制新的主服务器;
    b.客户端试图连接失败的主服务器时,集群也会向客服端返回新主服务器的地址,使集群可以使用新主服务器代替失效服务器。

    但是redis的哨兵程序尽量不要和redis实例部署在一起,以免机器宕机对哨兵也产生影响,并且哨兵程序最好也是集群部署(至少三台),避免其存在单点问题而影响整个集群的健壮性。

    相关文章

      网友评论

        本文标题:redis哨兵集群搭建

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