Redis的哨兵模式Sentinel

sentinel功能

redis的sentinel系统用于管理多个redis服务器,该系统主要执行三个任务:监控、提醒、自动故障转移。

1、监控(Monitoring): Redis Sentinel实时监控主服务器和从服务器运行状态,并且实现自动切换

2、提醒(Notification):当被监控的某个 Redis 服务器出现问题时, Redis Sentinel 可以向系统管理员发送通知, 也可以通过 API 向其他程序发送通知。这个需要我们指定相关的代码,比如发邮件、事务的处理等等

3、自动故障转移(Automatic failover): 当一个主服务器不能正常工作时,Redis Sentinel 可以将一个从服务器升级为主服务器, 并对其他从服务器进行配置,让它们使用新的主服务器。当应用程序连接Redis 服务器时, Redis Sentinel会告之新的主服务器地址和端口

注意:在使用sentinel监控主从节点的时候,从节点需要是使用动态方式配置的,如果直接修改配置文件,后期sentinel实现故障转移的时候会出问题

主观下线和客观下线:

1、主观下线状态:当一个sentinel认为一个redis服务连接不上的时候,会给这个服务打个标记为下线状态。

2、客观下线状态:当多个sentinel认为一个redids连接不上的时候,则认为这个redis服务确实下线了。这里的多个sentinel的个数可以在配置文件中设置。一般集群中一半的从节点都认为主机下线了,就进行主机选举机制,选出新的主机节点

sentinel配置

  • sentinel monitor mymaster 192.168.33.130 6379 2     #最后一个参数视情况决定 ,一般为从节点数量的一半;最后一个参数为需要判定客观下线所需的主观下线sentinel个数,这个参数不可以大于sentinel个数
  • 启动sentinel    redis-sentinel sentinel.conf

sentinel的一些命令

  • INFO   sentinel的基本状态信息
  • SENTINEL masters   列出所有被监视的主服务器,以及这些主服务器的当前状态
  • SENTINEL slaves <master name>  列出给定主服务器的所有从服务器,以及这些从服务器的当前状态
  • SENTINEL get-master-addr-by-name <master name>  返回给定名字的主服务器的 IP 地址和端口号
  • SENTINEL reset <pattern>  重置所有名字和给定模式 pattern 相匹配的主服务器。重置操作清除主服务器目前的所有状态, 包括正在执行中的故障转移, 并移除目前已经发现和关联的, 主服务器的所有从服务器和 Sentinel
  • SENTINEL failover <master name>  当主服务器失效时, 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移,但是它会给其他sentinel发送一个最新的配置,其他sentinel会根据这个配置进行更新
发布了53 篇原创文章 · 获赞 1 · 访问量 1148

猜你喜欢

转载自blog.csdn.net/CHYabc123456hh/article/details/104526918