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

Redis之Sentinel(哨兵)机制

一、Sentinel是什么?

Sentinel(哨岗、哨兵)是Redis的高可用性(high availability)解决方案:由一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。

二、连接

对于每个被Sentinel监视的主服务器来说,Sentinel会创建两个连向主服务器的异步网络连接:
❑一个是命令连接,这个连接专门用于向主服务器发送命令,并接收命令回复。
❑另一个是订阅连接,这个连接专门用于订阅主服务器的__sentinel__:hello频道。
命令连接主要用于sentinel给服务器发送命令,订阅连接可以让各sentinel之间相互感知

三、sentinel检测下线与选举领头sentinel

  • Sentinel配置文件中的down-after-milliseconds选项指定了Sentinel判断实例进入主观下线所需的时间长度:如果一个实例在down-after-milliseconds毫秒内,连续向Sentinel返回无效回复,那么Sentinel会修改这个实例所对应的实例结构,在结构的flags属性中打开SRI_S_DOWN标识,以此来表示这个实例已经进入主观下线状态
  • 当Sentinel将一个主服务器判断为主观下线之后,为了确认这个主服务器是否真的下线了,它会向同样监视这一主服务器的其他Sentinel进行询问,看它们是否也认为主服务器已经进入了下线状态(可以是主观下线或者客观下线)。当Sentinel从其他Sentinel那里接收到足够数量的已下线判断之后,Sentinel就会将从服务器判定为客观下线,并对主服务器执行故障转移操作
    所有在线的Sentinel都有被选为领头Sentinel的资格:最先向目标Sentinel发送设置要求的源Sentinel将成为目标Sentinel的局部领头Sentinel,而之后接收到的所有设置要求都会被目标Sentinel拒绝

四、Redis重新选主

按照以下规则过滤筛选
(1)删除处于下线或断线状态的从服务器
(2)删除列表中最近5秒内没有回复过领头sentinel的从服务器
(3)从服务器启动时,配置文件可配置优先级,按配置的优先级进行排序,找优先级最大
(4)优先级相同的,找复制偏移量最大的从服务器选为主服务器
选好主服务器之后,领头sentinel便可以向新主服务器发送slave of no one命令让其成为新主服务器
接着让其他从服务器执行slave of命令成为新主的从服务器

http://www.lryc.cn/news/144294.html

相关文章:

  • 加密的PDF文件,如何解密?
  • 【java】获取当前年份
  • 前端面试话术集锦第一篇
  • NeRFMeshing - 精确提取NeRF中的3D网格
  • 后端面试话术集锦第五篇:rabbitmq面试话术
  • Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【一】
  • vue3之reactive和ref学习篇
  • 【推荐】Spring与Mybatis集成整合
  • listdir, makedirs, shuffle, exists, webdriver.Chrome, roll方法快速查阅
  • java.nio.ByteBuffer 学习笔记
  • 自动化实时在线静电监控系统的构成
  • Windows 转 mac 记录
  • Linux_4_文本处理工具和正则表达式
  • [Unity]VSCode无代码提示
  • 画流程图都可以用哪些工具?
  • Elasticsearch中倒排索引、分词器、DSL语法使用介绍
  • rabbitmq笔记-rabbitmq进阶-数据可靠性,rabbitmq高级特性
  • 【笔记】判断两个String字符串是否相同(考虑字符串为null的情况)
  • 【校招VIP】java语言考点之多线程NIO
  • JVM知识点(一)
  • 网页接口导入postman进行接口请求
  • 【Leetcode】124.二叉树中的最大路径和(Hard)
  • django自动创建model数据
  • vscode 远程连接
  • Error running ‘Tomcat 8.5.29‘ Address localhost:1099 is already in use
  • 后端面试话术集锦第 七 篇:nginx面试话术
  • leetcode算法题--使子序列的和等于目标的最少操作次数
  • 服务器部署前后端项目-SQL Father为例
  • LiveNVR监控流媒体Onvif/RTSP功能-支持语音对讲支持非国标摄像头SDK语音对讲GB28181级联国标平台非国标转国标语音对讲
  • 爬虫selenium获取元素定位方法总结(动态获取元素)