当前位置: 首页 > news >正文

做纺织行业的网站织梦做网站详细教程

做纺织行业的网站,织梦做网站详细教程,网站建设柳市,简单干净的网站Redis原理篇——哨兵机制 1.Redis哨兵2.哨兵工作原理2.1.哨兵作用2.2.状态监控2.3.选举leader2.4.failover 1.Redis哨兵 主从结构中master节点的作用非常重要,一旦故障就会导致集群不可用。那么有什么办法能保证主从集群的高可用性呢? 2.哨兵工作原理 …

Redis原理篇——哨兵机制

    • 1.Redis哨兵
    • 2.哨兵工作原理
      • 2.1.哨兵作用
      • 2.2.状态监控
      • 2.3.选举leader
      • 2.4.failover

1.Redis哨兵

主从结构中master节点的作用非常重要,一旦故障就会导致集群不可用。那么有什么办法能保证主从集群的高可用性呢?

2.哨兵工作原理

Redis提供了哨兵(Sentinel)机制来监控主从集群监控状态,确保集群的高可用性。

2.1.哨兵作用

哨兵集群作用原理图:

在这里插入图片描述

哨兵的作用如下:

  • 状态监控Sentinel 会不断检查你的 masterslave 是否按预期工作
  • 故障恢复(failover):如果 master 故障,Sentinel 会将一个 slave 提升为 master 。当故障实例恢复后会成为 slave
  • 状态通知Sentinel 充当 Redis 客户端的服务发现来源,当集群发生 failover 时,会将最新集群信息推送给 Redis 的客户端

那么问题来了, Sentinel 怎么知道一个 Redis 节点是否宕机呢?

2.2.状态监控

官方文档:

High availability with Redis Sentinel

Sentinel 基于心跳机制监测服务状态,每隔1秒向集群的每个节点发送ping命令,并通过实例的响应结果来做出判断:

  • 主观下线(sdown):如果某sentinel节点发现某Redis节点未在规定时间响应,则认为该节点主观下线。
  • 客观下线(odown):若超过指定数量(通过 quorum 设置)的sentinel都认为该节点主观下线,则该节点客观下线。quorum值最好超过Sentinel节点数量的一半,Sentinel节点数量至少3台。

如图:

在这里插入图片描述
一旦发现master故障,sentinel需要在salve中选择一个作为新的master,选择依据是这样的:

  • 首先会判断 slave 节点与 master 节点断开时间长短,如果超过 down-after-milliseconds * 10 则会排除该slave节点
  • 然后判断 slave 节点的 slave-priority值,越小优先级越高,如果是 0 则永不参与选举(默认都是1)。
  • 如果 slave-prority 一样,则判断 slave 节点的 offset 值,越大说明数据越新,优先级越高
  • 最后是判断 slave 节点的 run_id 大小,越小优先级越高(通过 info server 可以查看 run_id )。

问题来了,当选出一个新的master后,该如何实现身份切换呢?
大概分为两步:

  • 在多个 sentinel 中选举一个 leader
  • leader 执行 failover

2.3.选举leader

首先,Sentinel 集群要选出一个执行 failoverSentinel 节点,可以成为 leader 。要成为 leader 要满足两个条件:

  • 最先获得超过半数的投票
  • 获得的投票数不小于 quorum
    sentinel 投票的原则有两条:
  • 优先投票给目前得票最多的
  • 如果目前没有任何节点的票,就投给自己
    比如有3个 sentinel 节点,s1s2s3 ,假如 s2 先投票:
  • 此时发现没有任何人在投票,那就投给自己。s2 得 1 票
  • 接着 s1s3 开始投票,发现目前 s2 票最多,于是也投给 s2s2 得 3 票
  • s2 称为 leader ,开始故障转移
    不难看出,谁先投票,谁就会称为 leader ,那什么时候会触发投票呢?
    答案是 第一个确认 master 客观下线的人会立刻发起投票,一定会成为 leader

OK,sentinel找到 leader 以后,该如何完成 failover 呢?

2.4.failover

我们举个例子,有一个集群,初始状态下 7001 为 master ,7002 和 7003 为 slave

在这里插入图片描述

假如 master 发生故障,slave1 当选。则故障转移的流程如下:

  1. sentinel 给备选的 slave1 节点发送 slaveof no one 命令,让该节点成为 master

在这里插入图片描述

  1. sentinel 给所有其它 slave 发送 slaveof 192.168.150.101 7002 命令,让这些节点成为新 master ,也就是 7002slave 节点,开始从新的 master 上同步数据。

在这里插入图片描述

  1. 最后,当故障节点恢复后会接收到哨兵信号,执行 slaveof 192.168.150.101 7002 命令,成为 slave

在这里插入图片描述

参考:

https://www.bilibili.com/video/BV1S142197x7?p=145&vd_source=f586bbf89de5904ba5a05a8c1d18f1c4

http://www.yayakq.cn/news/265245/

相关文章:

  • 如何在一个数据库做两个网站网站建设调研通知
  • 重庆有哪些做网站 小程序的wap版网站 加app提示
  • 重庆微信营销网站建设要如何做才能拥有自己的网站呢
  • 河北省承德市兴隆县建设局网站可以定制东西的软件
  • Wordpress屏蔽模仿站爬虫ip跨境电子商务主要学什么
  • 中山商城网站建设企业做网站好处
  • 番禺网站建设公司排名云游戏免费平台
  • 网站做百度推广有没有效果黑龙江省建设厅官网
  • 动易网站 设置背景图片疯狂购网站开发商
  • 国内专门做旅游攻略的网站哈尔滨招聘网最新招聘信息网
  • 期末作业制作网站网站建设必会的软件有哪些
  • 方正园林建设监理中心网站投资公司企业文化
  • 网站开发选题依据关键词搜索引擎又称为
  • 电子商务网站开发的课程介绍做视频网站用什么源码
  • 重庆高端网站开发网站 cms 免费
  • 不同网站模块分析红色网站建设的作用和意义
  • 深圳市建设行业主管部门官方网站个体户可以做网站么
  • 乐清建设路小学校园网站北京哪家公司做网站
  • 网站只做优化wordpress设置不显示摘要
  • 德州建网站wordpress 建资源县好不好
  • ppt做长图网站wang域名建的网站
  • 员工支付做网站的费用分录广东建设信息网站首页6
  • 做网站交易平台新乡做网站推广
  • 建设网站目标上饶网站建设兼职
  • 做一个什么样的网站设计公司企业计划书
  • 毕业设计代做网站代码一个网站多个域名备案吗
  • 如何在百度上做网站推广网络营销系统推广方案
  • 网站如何批量上传产品网站建设龙岗
  • 贵港住房城乡建设厅网站哈尔滨互联网公司
  • 记事本做网站文字居中招聘运营专员