扫码阅读
手机扫码阅读

Redis—听说你速度跟甲斗一样快?——哨兵

105 2024-07-21

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:Redis—听说你速度跟甲斗一样快?——哨兵
文章来源:
咸鱼运维杂谈
扫码关注公众号
Redis主从复制架构摘要

前言

本文接续上文讨论,探索使用Redis主从复制架构后的业务稳定性与高效性提升。在该架构中,master节点对外提供服务,而slave节点同步master的数据。这种配置允许在master节点发生宕机时,手动将slave节点提升为master以继续服务,同时slave也可分担读请求,减轻master压力。

架构不足及改进

当前架构的不足之处在于master宕机后,需要手动干预将slave提升为master,这个过程耗时且可能影响业务。为了解决这一问题,提出了自动故障切换的机制,即哨兵(sentinel)机制。

Sentinel机制配置

Sentinel机制的配置包括监控、判断节点下线、故障转移等。配置示例如下:

  • sentinel monitor mymaster 192.168.149.128 6379 2 - 监控主节点。
  • sentinel down-after-milliseconds mymaster 10000 - 主节点不响应的超时判定。
  • sentinel parallel-syncs mymaster 1 - 故障转移时同步操作的从节点数量限制。
  • sentinel failover-timeout mymaster 30000 - 故障转移超时时间。

此外还有auth-pass、notification-script以及client-reconfig-script等配置。

哨兵工作原理

哨兵节点彼此、与master和slave节点定时发送消息,以确认存活状态。节点若在指定时间内未响应,会被标为主观宕机(SDOWN),若多数哨兵同意,则标记为客观宕机(ODOWN),随后通过选举新的master并自动修改配置。

哨兵工作任务

哨兵节点的工作任务包括发送ping、收发hello消息、标记主观下线、确认客观下线、发送INFO命令、移除主观下线状态、执行故障切换以及更新客户端的redis-master连接信息。

Leader选举与节点发现

故障切换前,需要选举leader。选举基于先来先得原则,成功的sentinel将完成failover过程。节点间的发现机制基于哨兵自动发现,哨兵通过info命令和发布订阅消息通信模式互相发现。

实验部署

部署实验涉及配置master和slave节点,以及哨兵节点。相关命令用于监控、故障切换等操作。一旦master宕机,sentinel将自动进行failover以选出新的master。

想要了解更多内容?

查看原文:Redis—听说你速度跟甲斗一样快?——哨兵
文章来源:
咸鱼运维杂谈
扫码关注公众号