• redis哨兵机制及配置


    Redis哨兵机制

    什么是哨兵机制

    Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务:

    ·        监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。

    ·        提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。

    ·        自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master, 并让失效Master的其他Slave改为复制新的Master; 当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。

    哨兵(sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master.

    每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的”主观认为宕机” Subjective Down,简称sdown).

    若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称odown),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置.

    虽然哨兵(sentinel) 释出为一个单独的可执行文件 redis-sentinel ,但实际上它只是一个运行在特殊模式下的 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动哨兵(sentinel).

    哨兵(sentinel) 的一些设计思路和zookeeper非常类似

    当master出现问题或者宕机的情况下,redis的哨兵机制底层选举一个服务器做主服务器(主服务器master有读写的权限)(然而从服务器slave只有读的权限)

    当所有服务器出现宕机由keepalived 监听机制,自动重启,如果失败,则以邮件方式通知运维人员

    二redis中哨兵的配置

    实现步骤:

    1.拷贝到etc目录

    cp sentinel.conf  /usr/local/redis/etc

    2.修改sentinel.conf配置文件

    sentinel monitor mymast  192.168.110.133 6379 1  #主节点 名称 IP 端口号 选举次数

    sentinel auth-pass mymaster 123456 

    3. 修改心跳检测 5000毫秒

    sentinel down-after-milliseconds mymaster 5000

    4.sentinel parallel-syncs mymaster 2 --- 做多多少合格节点

    5. 启动哨兵模式

    ./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &

    刚刚配置由于粗心写错了IP

    然后删掉了sentinel.conf,重新配置的(复制到etc下面的sentinel.conf)

    rm sentinel.conf 

    y

    然后重启liunx

    开启防火墙 service iptables stop

    配置好了后开启哨兵

    如图所示就可以了

    192.168.26.4 为master

    192.168.26.5 为slave

     192.168.26.6 为slave(且为哨兵)

    ,测试关闭主服务器 shutdown

    192.168.26.5 开启redis后输入info查看主从信息(可以看见master转换为 192.168.26.6 )

  • 相关阅读:
    html 滚动条
    mybatis的select、insert、update、delete语句
    eclipse 删除工作空间中.metadata 再加入以前的maven项目编译出错解决方法
    JavaDailyReports10_18
    JavaDailyReports10_17
    JavaDailyReports10_16
    JavaDailyReports10_15
    JavaDailyReports10_14
    JavaDailyReports10_13
    JavaDailyReports10_12
  • 原文地址:https://www.cnblogs.com/jhjlcr/p/10411391.html
Copyright © 2020-2023  润新知