Redis 哨兵 Sentinel
Redis Sentinel:redis集群应用,分布式系统。
- 多个Sentinal进程之间通过 gossip 协议来接收主服务器是否下线的信息,通过 Raft 一致性协议来决定故障转移及转移服务器。
- 监控(monitoring):PING消息检查主从服务器运行状态
- 通知(notification):通知问题服务器信息
- 故障迁移(automatic failover):提升失效主服务器的从服务器为新的主服务器,其它从属服务器从新的主服务器复制信息,集群向客户端返回新的主服务器地址,
1、启动命令:
redis-server /path/to/sentinel.conf --sentinel
配置文件:
sentinel monitor mymaster 127.0.0.1 6379 2 //主服务器名称 ip port 判定失效投票数
sentinel down-after-milliseconds mymaster 60000 //sentinel判定服务器失效所需的毫秒数
sentinel failover-timeout mymaster 180000 //故障转移时限
sentinel parallel-syncs mymaster 1 //故障转移时,最多可以有多少个从服务器对新的主服务器请求同步 同一时间只让一个从服务器置于不可用状态
2、自动发现Sentinel实例及从服务器:
sentinel实例发现:监视相同主机的sentinel实例,通过订阅发布功能实现相互发现,频道: _sentinel_:hello
从服务器发现:sentinel实例通过询问主服务来获取其下从属服务器信息:
发现流程:
3、下线:
主观下线(SDOWN):单个sentinel判定服务器下线
客观下线(ODOWN):多个sentinel判定服务器SDOWN,并通过SENTINEL is-master-down-by-addr命令相互交互后,得出服务器下线判断。只适用于主服务器
判定流程:
- sentinel PING消息;服务器回复 +PONG -LOADING -MASTERDOWN
- 服务器在master-down-after-milliseconds内连续回复无效信息 认定主观下线
- 发现主服务器客观下线的sentinel进行故障迁移操作
- sentinel 实例 只提供了订阅功能的redis服务器,订阅相应的频道获取监控服务器的相关信息。
- Raft协议领导者选举。
4、故障转移过程:
主服务器客观下线
sentinel epoch自增,试图当选执行故障转移
Raft协议选择一个从属服务器为新的主服务器
发送SLAVEOF NO ONE 使其转变为主服务器
通过订阅发布向其它sentinel发送最新的主服务器配置信息。
向原来的从服务器发送SLAVEOF命令,使他们向心的主服务器请求信息复制同步
当所有从服务器想新的主服务器请求数据复制同步事,sentinel终止故障转移
4、附注:
- Redis Sentinel严重依赖系统时间,例配置
- lua脚本执行超时,redis返回-BUSY状态,Sentinel会在故障转移前杀死脚本。
- 哨兵是为了解决单点故障问题
Redis 哨兵 Sentinel的更多相关文章
- redis单点、redis主从、redis哨兵sentinel,redis集群cluster配置搭建与使用
目录 redis单点.redis主从.redis哨兵 sentinel,redis集群cluster配置搭建与使用 1 .redis 安装及配置 1.1 redis 单点 1.1.2 在命令窗口操作r ...
- redis哨兵(Sentinel)、虚拟槽分区(cluster)和docker入门
一.Redis-Sentinel(哨兵) 1.介绍 Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,r ...
- Redis哨兵(sentinel)模式搭建
一.Sentinel介绍 之前骚了一波Redis的简介及应用场景,今天试了下他的哨兵模式: Sentinel是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成的Sentine ...
- redis哨兵sentinel.conf文件
关闭保护模式 //17行 protected-mode no 端口号 //21 port 26379 后台启动 //26 daemonize yes //84行 主机的ip加端口号 2 为票数 sen ...
- Redis容灾部署(哨兵Sentinel)
Redis容灾部署(哨兵Sentinel) 哨兵的作用 1. 监控:监控主从是否正常2. 通知:出现问题时,可以通知相关人员3. 故障迁移:自动主从切换4. 统一的配置管理:连接者询问sentinel ...
- SpringBoot进阶教程(三十)整合Redis之Sentinel哨兵模式
Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案时,假如master宕机了,redis本身(以及其很多客户端)都没有实现自动进行主备切换,而 ...
- redis cluster + sentinel详细过程和错误处理三主三备三哨兵
redis cluster + sentinel详细过程和错误处理三主三备三哨兵1.基本架构192.168.70.215 7001 Master + sentinel 27001192.168.70. ...
- Redis哨兵模式(sentinel)学习总结及部署记录(主从复制、读写分离、主从切换)
Redis的集群方案大致有三种:1)redis cluster集群方案:2)master/slave主从方案:3)哨兵模式来进行主从替换以及故障恢复. 一.sentinel哨兵模式介绍Sentinel ...
- redis 哨兵(sentinel)
redis哨兵 哨兵自动故障转移 自动通知应用最新master信息 无需担心,master挂了,程序不需要修改IP啥的,由哨兵自动完成 修改sentinel.conf protected-mode n ...
随机推荐
- utils.js文件;一些常用方法的备份
一些常用方法备份: function _(value) { value = '0' + value; return value.substr(value.length - 2); } Date.pro ...
- 切换ubuntu-18.04启动方式
默认命令行形式启动 sudo systemctl set-default multi-user.target reboot 临时使用一次图形界面进入 sudo systemctl start ligh ...
- RabbitMQ镜像模式双节点部署时故障转移过程中队列中消息的状态
场景 现有节点Node1和Node2,建立Exchange:yu.exchange,创建队列yu1.queue镜像队列master位于Node1,yu2.queue镜像队列位于Node2,使用topi ...
- 位图索引对于DML操作的影响
位图索引相对于常规的B-tree 索引,有着体积更加小的优势,节省空间.对于重复率特别高的字段,比如性别,比如省份.查询效率要优于B-tree 索引.那为什么我们总被告知在业务库中不要使用呢? 业务库 ...
- node.js中用户密码的加密
crypro实现用户密码的加密 在实际的项目中,只要涉及到用户的信息,就是十分重要的.设想一下数据库里面存放的用户的密码是明文的形式,后果是有多严重.所以今天给大家分享一下express中怎样实现用户 ...
- 1005. Spell It Right(20)—PAT 甲级
Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output e ...
- 微信JSSDK的使用
微信JS-SDK 1.在微信公众平台(https://mp.weixin.qq.com/)注册个公众号,获取APPID和AppSecret 2.获取access_token(需要在公众平台中设置获取a ...
- Python + 百度Api 通过地址关键字获得格式化的地址信息
由于用户输入是千奇百怪的,除了格式语法不合要求之外的,即便是所谓的合法数据也是五花八门.尤其是地址,所有才由此文. 百度Api注册一个账号,创建一个应用后就会有一个`ak`的参数,就够了. Pytho ...
- Python2.6与Python2.7的format用法区别
Python2.6不支持format(123456L, ",")或format(123, ",")的format用法,会报下面的错误 ValueError: U ...
- 树莓派3B+学习笔记:9、更改软件源
树莓派系统安装完成后,由于默认软件源服务器访问速度慢,安装软件耗时会很长,可以通过更改软件源来加快软件的安装速度. 系统安装完成后默认软件源如下: 更改镜像源前需要自行查找镜像源,并记下网址: 1.阿 ...