首页 > 其他 > 详细

Redis哨兵工作原理与部署

时间:2021-06-12 17:52:18      阅读:28      评论:0      收藏:0      [点我收藏+]

工作流程

1、监控阶段

  • 哨兵先连接master服务器,并获取、保存master的详细信息(包括master、slave以及sentinel的信息),连接会保持
  • 哨兵获取了master的信息后,又与master的slaves进行连接和信息的获取,连接同样会保持
  • master的各个哨兵互相建立连接,同步信息

2、通知阶段

? 哨兵会不断获取它监听的主从服务器的状态,并与其他哨兵共享这些信息

3、故障转移阶段

  • 哨兵监听到master宕机,将master状态标记为SRI_S_DOWN(主观下线),将信息传递给其他哨兵

  • 其他哨兵收到这个消息后,判断master是否宕机

  • 超过一定数量(配置文件中定义这个数)哨兵认为服务器宕机,则将服务器状态标记为SRI_O_DOWN(客观下线),并重新选举主服务器

  • 哨兵投票选举出进行重新配置主服务器的哨兵

  • 进行配置的哨兵挑选出新的master

    选择原则:

    • 在线的
    • 响应快的
    • 与原master连接密切的
    • 优先级高的

    发送指令:

    • 向新master发送:slaveof no noe
    • 向其他slave发送:slave of 新master IP 端口

部署

  • 哨兵配置文件:sentinel.conf

    • 复制文件:cat sentinel.conf | grep -v "#" |grep -v "^$" > ./conf/sentinel-26379.conf
    • 配置信息:
      • port 26379 #哨兵端口
      • dir /tmp
      • sentinel monitor mymaster 127.0.0.1 6379 2 #哨兵主机名 主机IP 主机端口,2表示多少哨兵认为主机宕机,则确认主机宕机
      • sentinel down-after-milliseconds mymaster 30000 #连接30秒后无响应,则认为服务器宕机
      • sentinel parallel-syncs mymaster 1 #值越小,压力越小,速度越慢
      • sentinel failover-timeout mymaster 180000 #多长时间未完成同步,则认为服务器宕机
  • 启动命令:redis-sentinel 配置文件

    • 启动主从服务器以及其他哨兵后,哨兵获取master、slave以及其他sentinel信息,哨兵配置文件如下

      技术分享图片

    • 关闭主服务器后,哨兵重新选出主服务器,下图选出端口号6381的slave作为其他salve的新的master
      技术分享图片

    • 配置文件变化

技术分享图片

Redis哨兵工作原理与部署

原文:https://www.cnblogs.com/coding-haven/p/14878353.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!