Redis Sentinel
 
sentinel的功能:
监控:sentinel节点定期检测redis数据节点,其余sentinel节点是否可达。
通知:sentinel 节点会将故障转移结果通知给应用方
主节点故障转移:实现从节点晋升为主节点
配置提供者:在redis sentinel结构中,客户端在初始化的时候连接的是sentinel节点集合。从中取得主节点信息。
 
 
 
多个sentinel节点之间相互独立,如何发现彼此呢?:
1 sentinel通过订阅主节点(主节点即我们加入sentinel高可用的节点:如sentinel monitor jia2 127.0.0.1 4014 2 。黑体为主节点 )的 _sentinel_:hello (PUBSUB CHANNELS 命令可以查到该订阅)了解其他 sentinel 节点信息。如果是新加入的sentinel节点。就将该节点信息保存起来。
 
2 sentinel节点之间交换主节点的状态。作为客观下线的依据。
注意:其实一个sentinel节点和那些sentinel节点通讯由 他连接的 master决定。 一个sentinel会和 他master 下的  slave 。master连接的其他sentinel 通信。
建议:一个业务一套sentinel。一套sentinel 3个节点。方便管理。
 
sentinel 节点的publish格式如下:
<sentinel 节点ip> <sentinel节点端口> <sentinel runid> <sentinel节点配置版本><主节点名字><主节点ip><主节点端口><主节点配置版本>
<主节点名字><主节点ip><主节点端口> :构成唯一的高可用。任何一个可以在同个网络内的sentinel如果设置了相同的 seninel monitor <主节点名字> <主节点ip><主节点端口> 会成为同一个高可用。
 
 
redis sentinel 客户端基本实现:
1、遍历所有提供的sentinel节点,获取一个可用的sentinel节点。通过 sentinel get-master-addr-by-name master-name  找到主节点。
当然也可以找到从节点(但是sentinel只对主节点高可用。如果要发现从节点。建议故障转移完了且定时执行sentinel reset <master-name>,这样可以保证得到可用的slave。)。
2、redis sentinel 客户端只有在初始化的时候和切换主节点时候需要和sentinel节点集合进行交互来获取主节点。所以在设计客户端时候需要将sentinel 节点集合配置成发现服务。(sentinel下面master发生变化才通知客户端重新获取连接。即监控》通知
 
故障转移:
主观下线sdown:单个sentinel认为master挂了。告知其他sentinel节点检查该master。
客观下线odown:超过quorum个sentinel认为master挂了》使用Raft算法选举领导者sentinel进行故障转移
故障转移:下线当前master》选择slave-priority优先级高的slave节点提升为新主节点(slaveof no one)》其他节点执行slaveof 新主节点》告知client(client端的API订阅)
注意:下线后可能没有马上更新master的信息。可设置脚本sentinel reset <master-name> 。语句必须对所有sentinel执行。(因为可能老的主节点已死。但是sentinel把它列入为新主节点的从。所以如果要把这节点下线不用。一定要对所有sentinel reset <master-name> 。不然下次旧主节点起来依然被sentinel拉入作为从。)
 
相关命令:
sentinel monitor <master-name> <ip> <port> <quorum>  加入sentinel
sentinel remove <master-name> 移除master
sentinel client-reconfig-script <master-name> <script> 故障转移后执行的脚本 。参考故障转以后提供给脚本的对应参数。
sentinel masters 
sentinel master <master-name>
sentinel  slaves <master-name>
sentinel sentinels <master-name>  查看一个master的所有sentinels
sentinel flushconfig
sentinel reset   <master> 更新sentinel的信息。

Redis Sentinel 介绍的更多相关文章

  1. redis sentinel介绍

    目录 配置redis主从复制 使用ping命令检查是否启动 主节点查看链接信息 开始部署sentinel 节点 部署sentinel 启动sentinel 演示下故障转移 查看当前sentinel监控 ...

  2. Redis Sentinel基本介绍(翻译以及总结)

    目录 Redis Sentinel介绍 分布式的Redis Sentinel 快速开始 获取Sentinel 启动Sentinel 部署Sentinel的基本要求 配置Sentinel 其他的Sent ...

  3. (转)基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案

    转载自:http://warm-breeze.iteye.com/blog/2020413 本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedi ...

  4. 基于Redis Sentinel的Redis集群(主从Sharding)高可用方案(转)

    本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在 ...

  5. 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案

    本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在 ...

  6. Redis Sentinel 高可用部署实践集群

    一.Redis Sentinel 介绍    1.Sentinel     数据库环境搭建,从单机版到主备.再到多数据库集群,我们需要一个高可用的监控:比如Mysql中,我们可能会采用MHA来搭建我们 ...

  7. 【Redis】Redis Sentinel 哨兵模式搭建

    Redis Sentinel介绍 Redis Sentinel是Redis的官方高可用性解决方案 Redis Sentinel为Redis提供高可用性.实际上,这意味着使用Sentinel可以创建一个 ...

  8. Redis Sentinel 高可用实现说明

    背景:      前面介绍了Redis 复制.Sentinel的搭建和原理说明,通过这篇文章大致能了解Sentinel的原理和实现方法以及相关的搭建.这篇文章就针对Redis Sentinel的搭建做 ...

  9. Redis Sentinel高可用架构

    Redis目前高可用的架构非常多,比如keepalived+redis,redis cluster,twemproxy,codis,这些架构各有优劣,今天暂且不说这些架构,今天主要说说redis se ...

随机推荐

  1. 02_NIO简单实例

    [一个用NIO实现的客户端向服务端单向通信的例子] [服务端程序] package com.nio.test; import java.io.IOException; import java.net. ...

  2. Android解析ActivityManagerService(二)ActivityTask和Activity栈管理

    前言 关于AMS,原计划是只写一篇文章来介绍,但是AMS功能繁多,一篇文章的篇幅远远不够.这一篇我们接着来学习与AMS相关的ActivityTask和Activity栈管理. 1.ActivitySt ...

  3. python(day1-11)

    day1:Python入门 day2:数字类型字符编码 day3:函数 day4:模块与包 day5:常用模块 day6:面向对象 day8:异常处理 day9:网络编程 day10:并发编程 day ...

  4. Windows ->> Windows下一代文件系统 -- Resilient file system(ReFS)

    Comming soon!!! 参考文献: Building the next generation file system for Windows: ReFS ReFS: What you need ...

  5. jQuery的事件绑定和解绑

    1.绑定事件 $('获取的标签对象').bind('要操作的方法,  {操作的内容  是字典的形式},function(){} ') 语法: bind(type,data,fn) 描述:为每一个匹配元 ...

  6. 贴现力 (force of discount)

    一.定义 用贴现函数a-1(t) 代替累积函数,在 t 时刻的贴现力为 增加一个负号使得贴现力为正. 二.重要的公式

  7. 微软在线 VSTS/TFS 使用简介,如何删除项目,帐号,获取git地址等

    名称:微软 VSTS 全称: Visual Studio Team Services 地址:https://www.visualstudio.com/zh-hans/ 说明:注册就可以了使用了(如何使 ...

  8. ZT 3.1 依赖倒置原则的定义

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码http://www.mscenter.edu.cn/blog/k_eckelP58 Template 模式获得一种反向控制结构效果,这也是 ...

  9. Celery+redis实现异步

    目录 Celery+redis实现异步 安装redis 安装celery-with-redis 添加celery相关配置 创建异步运行任务tasks.py 启动 Celery+redis实现异步 安装 ...

  10. 利物浦VS热刺,我努力不去想,但利物浦真的在争冠

      用这张图作为开头吧,早餐的时候打开网易,苏神破门红军4-0登榜首的新闻,习惯性的点进去看看KOP的评论,有一句回复『利物浦该夺冠了,多少年了.喜欢利物浦比喜欢老婆还早,老婆都成黄脸婆了.现在带着女 ...