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 ...
随机推荐
- 大数据学习之HDFS的工作机制07
1:namenode+secondaryNameNode工作机制 2:datanode工作机制 3:HDFS中的通信(代理对象RPC) 下面用代码来实现基本的原理 1:服务端代码 package it ...
- Oracle DataGuard启动与关闭顺序
(一)Active DataGuard启动顺序(1)启动监听,先启从库再起主库 lsnrctl start (2)启动数据库,先启动备库在启主库 --先启备库 sql>startup nomou ...
- K3CLOUD开发-动态表单树形单据体实现银行交易对账
背景:系统手机开单生成销售单据,通过银行pos机收款,系统收款流水与银行流水可能存在差异,所以通过获取银行接口,获取消费信息自动插入到生产系统数据库,开发对账报表,实现差异汇总! 展示效果如下: 开发 ...
- Java并发编程(十)死锁
哲学家进餐问题 并发执行带来的最棘手的问题莫过于死锁了,死锁问题中最经典的案例就是哲学家进餐问题:5个哲学家坐在一个桌子上,桌子上有5根筷子,每个哲学家的左手边和右手边各有一根筷子.示意图如下: 哲学 ...
- PHP+jQuery实现双击修改table表格
<td signs="name"> <input type="text" disabled="disabled" read ...
- Centos6.5中如何用sqlite3命令打开’.db’后缀的数据库执行sql
1. 简单sql语句使用: 在任意目录下新建一个数据库,比如student . 命令: sqlite3 student.db 出现如下提示: 输入sql语句create table user(us ...
- 学习html的第一天
HTML 第一章: webde 运行环境: 1. 什么是HTML HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言:HyperText Markup Languge 超文本 就是网 ...
- nginx 开启phpinfo
在nginx配置文件中加 location / { //如果是资源文件,则不走phpinfo模式 if (!-e $request_filename){ ewrite ^/(.*)$ /index.p ...
- kbmMW功能 - kbmMWProcess单元(转帖)
此贴为转发红鱼儿的文章,原贴地址: https://www.cnblogs.com/kinglandsoft/p/kbmmw-features-5-kbmmwprocess-unit.html 在新的 ...
- Linux多进程CS服务器简单测试
Linux多进程CS服务器简单实现 server端 多进程实现多用户连接,即每个用户一个连接,这里仍然用server将收到的字符串转大写后返回给客户端. 代码实现 #include <stdio ...